xinhou-openai-framework 20250408001
XINHOU-OPENAI-FRAMEWORK基础框架，主要提供应用服务的底层支持技术代码支撑，通过该框架可以快速实现单服务、微服务、消息队列、ORM的快速开发！
Requires Python: >=3.9

# 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等命令


    

## 内置功能

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

## 依赖包

- 编译打包
~~~shell
(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 # 清理&编译打包&上传私服
~~~

- 命令行启动项目
~~~shell
(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配置文件，同时将配置写入文件；私服账号密码由运维提供；

~~~shell
(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

~~~