Skip to main content

XINHOU-OPENAI-FRAMEWORK基础框架,主要提供应用服务的底层支持技术代码支撑,通过该框架可以快速实现单服务、微服务、消息队列、ORM的快速开发!

Project description

Xinhou OpenAI Framework V1 项目文档

介绍

本项目基于 FastAPI 框架开发的后台管理系统,该版本已升级到Python 3.10版本,旨在为多语言开发者(Java、Kotlin、Python、PHP、Rust)提供一个统一的后台管理系统的模板,屏蔽个语言的编程差异,尽可能的简化快速构建微服务系统。

更新情况

2024.04.01 开发需求

2024.03.27 开发需求

  • [P0] 支持打包版本号,使用 年月日编号方式,2024032701【完成】
  • [P0] 增加Http请求入参过滤器日志中间件【完成】
    • 支持请求header、cookies、body、query、path等入参过滤
    • 增加接口执行时间统计
  • [P0] 加入TraceID的header中间件支持【完成】
  • [P0] 优化AppManager启动管理类【完成】
    • 增加AppManager启动管理类,用于统一管理启动的模块,方便后续的扩展

2024.03.20 开发需求

  • [P0] 解决Nacos的Client调用时掉线的情况【完成】
  • [P0] 优化Nacos的Client调用,支持Http&Client两种方式,可以自定义service_name设置服务名【完成】
    • 加入注解参数可以自定义service_name设置服务名
    • 解决在调用请求时取不到nacos返回的hosts数据的问题
    • 增加服务发现的心跳频率beat_interval的yml配置,可以设置频率字段值来控制,默认7秒
  • [P0] 优化解决线上异步线程的卡死问题,通过设置启动项参数加入异步执行【完成】
  • [P2] 加入dockerfile样例【完成】
  • [P1] 加入Skywalking的监控支持【完成】

2024.03.07 开发需求

  • [P1]优化支持logger配置时,可以不填日志输出路径,默认当前项目下logs目录,如果填写则使用配置中的路径输出日志文件;【完成】
  • [P1]优化初始化时使用的常量,统一使用全局常量类配置;【完成】
  • [P1]优化初始化流程,将manager纳入到framework框架中维护【完成】
  • [P1]优化初始化流程,将manager纳入到framework框架中维护【完成】

2024.02.23 开发需求

  • [P0]新增Nacos注册中心&配置中心支持【完成】
    • 新增框架启动时初始化配置中心获取配置;
    • 新增初始化阶段支持 服务注册到Nacos,并提供异步心跳通信;
    • 新增Nacos服务调用类,支持注册服务的远程调用;实现重试、超时、降级等功能;
  • [P0]修改Context上下文解析,支持Nacos部分,并取消自定义模型接收;实现动态解析对象属性;【完成】
  • [P0]新增HTTP工具注解,支持接口直接注解远程调用【完成】
  • [P0]新增全局常量设置类AppContents【完成】
  • [P0]优化manager管理器加载流程【完成】
  • [P0]新增setup包生成工具【完成】
    • 加入打包工具setup.py
    • 加入py私服包管理
    • 新增deploy.sh 打包部署工具脚本,已支持 build、rebuild、clean、upload、deploy等命令

内置功能

  • 应用分层管理:系统框架支持多apps应用场景聚合、微服务场景、单项目场景业务;同时支持通用业务逻辑common共享;
    • 支持多模块apps应用集成调用;
    • 支持Controller & ParamsModel 自定义接口模型;
    • 支持Common通用业务逻辑开发,支持MVC模式;
    • 支持注解Remote远程调用,同时实现重试、降级、超时异常处理;
    • 支持统一返回泛型&业务逻辑调用ResModel泛型支持;
    • Swagger接口文档编写,支持入参出参泛型;
  • 框架提供YML配置文件管理:支持YML配置,实现逻辑与springboot方式相似;
  • Nacos集成管理:使用Nacos的注册中心&配置中心,同时实现微服务注册&心跳&调用、支持接口的重试、降级、超时的处理;
  • 全局自动化路由管理:系统框架可以自动扫描项目下的apps下所有Controller接口;
  • 全局上下文管理:提供系统级别的全局上下文支持;
  • 全局ORM支持:框架支持ORM面向对象的持久化操作,只需要简单继承即可实现CRUD操作;同时支持事务处理;
  • 全局操作日志:系统提供日志配置&自动生成。
  • 全局异常处理支持:提供了全局的异常处理、业务异常处理、自定义异常处理;同时全局拦截异常&验证错误,并提供统一错误码;
  • 全局装饰器:提供全局装饰器,可以使接口、函数等实现 AOP 支持;
  • 全局数据库&连接池管理:支持MySQL、PgSQL、Oracle等数据库,并内置连接池;
  • 全局缓存&连接池管理:系统初始化支持配置缓存&连接池,也支持Utils调用;
  • 全局消息队列支持:通过使用Redis队列,实现消息队列同时支持 生产者&消费者 通过继承实现逻辑调用;同时支持消费失败补偿机制;
  • 文件上传:图片、表格、文档等文件上传下载 & OSS 上传存储 示例;
  • Excel文件:excel&cvs数据文件导入导出下载示例;
  • Word文件:文档的模板生成及下载示例;
  • PDF文件:模板生成PDF及下载示例;
  • 代码生成:提供代码自动生成,支持Entity、Dao、Service、Controller 及 前端页面模板生成;
  • docker&k8s:支持docker镜像生成 & k8s部署 及 docker镜像&docer-compose部署;
  • 支持服务器代理访问;

依赖包

  • 编译打包
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % sh deploy.py build # 编译打包
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % sh deploy.py rebuild # 清理&编译打包
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % sh deploy.py clean # 清理编译代码
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % sh deploy.py upload # 上传私服
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % sh deploy.py deploy # 清理&编译打包&上传私服
  • 命令行启动项目
(venv) shenpeng@MacBook-Pro-2023 xinhou_openai_framework % uvicorn main:app --host 0.0.0.0 --port 8000 --reload --workers 1 --loop asyncio --proxy-headers

Pip私服配置

注:需要在当前用户的目录下创建 .pip文件夹,并创建pip.conf配置文件,同时将配置写入文件;私服账号密码由运维提供;

(venv) MacBook-Pro-3:marmot-framework shenpeng$ mkdir ~/.pip
(venv) MacBook-Pro-3:marmot-framework shenpeng$ cd ~/.pip
(venv) MacBook-Pro-3:marmot-framework shenpeng$ vi pip.conf # 将配置内容复制粘贴到pip.conf文件
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
trusted-host = mirrors.aliyun.com
[install]
extra-index-url = https://账号:密码@nexus.xinhouai.com/repository/pip3/simple
trusted-host = nexus.xinhouai.com

(venv) shenpeng@Mac-Studio xinhou-openai-admin % pip install --upgrade pip # 通过更新pip版本测试结果
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/, https://sp_hrz%40qq.com:****@nexus.xinhouai.com/repository/pip3/simple
Requirement already satisfied: pip in ./backend/venv/lib/python3.9/site-packages (23.3.1)
Collecting pip
  Downloading https://nexus.xinhouai.com/repository/pip3/packages/pip/23.3.2/pip-23.3.2-py3-none-any.whl (2.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 617.0 kB/s eta 0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 23.3.1
    Uninstalling pip-23.3.1:
      Successfully uninstalled pip-23.3.1
Successfully installed pip-23.3.2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

xinhou_openai_framework-2024091401-py3-none-any.whl (121.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page