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
Metadata
Release files for xinhou-openai-framework 20250228001
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xinhou_openai_framework-20250228001-py3-none-any.whl | Python 3 | none | any | Details |
Release files / xinhou_openai_framework-20250228001-py3-none-any.whl
| Download URL | xinhou_openai_framework-20250228001-py3-none-any.whl |
|---|---|
| Size | 119.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b79f73e855bf8df4c9679524fbf75e43900c10218d5153dae54f6ce11cc0358
|
|
BLAKE2b-256 checksum How to use checksums |
6d19f5b9fd455e4d5223b89a9421139d988ee854a352b521fb2cdf5c6c3413b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.7
|