Metadata-Version: 2.1
Name: xinhou-openai-framework
Version: 20250408001
Summary: XINHOU-OPENAI-FRAMEWORK基础框架，主要提供应用服务的底层支持技术代码支撑，通过该框架可以快速实现单服务、微服务、消息队列、ORM的快速开发！
Home-page: http://gitlab.xinhouai.com/openai/xinhou-openai-framework.git
Author: shenpeng
Author-email: sp_hrz@qq.com
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: MacOS
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: aiohttp ==3.9.3
Requires-Dist: aioredis ==1.3.1
Requires-Dist: aiosignal ==1.3.1
Requires-Dist: aliyun-python-sdk-core ==2.14.0
Requires-Dist: aliyun-python-sdk-kms ==2.16.2
Requires-Dist: annotated-types ==0.6.0
Requires-Dist: anyio ==3.7.1
Requires-Dist: APScheduler ==3.10.4
Requires-Dist: async-timeout ==4.0.3
Requires-Dist: attrs ==23.2.0
Requires-Dist: cffi ==1.16.0
Requires-Dist: charset-normalizer ==3.3.2
Requires-Dist: click ==8.1.7
Requires-Dist: colorlog ==6.8.2
Requires-Dist: crcmod ==1.7
Requires-Dist: cryptography ==42.0.2
Requires-Dist: decorator ==4.4.2
Requires-Dist: docutils ==0.20.1
Requires-Dist: docx ==0.2.4
Requires-Dist: et-xmlfile ==1.1.0
Requires-Dist: exceptiongroup ==1.2.0
Requires-Dist: fastapi ==0.110.3
Requires-Dist: frozenlist ==1.4.1
Requires-Dist: grpcio ==1.58.0
Requires-Dist: grpcio-tools ==1.58.0
Requires-Dist: h11 ==0.14.0
Requires-Dist: hiredis ==2.3.2
Requires-Dist: httpcore ==1.0.2
Requires-Dist: httpx ==0.27.2
Requires-Dist: idna ==3.6
Requires-Dist: importlib-metadata ==7.0.1
Requires-Dist: itsdangerous ==2.1.2
Requires-Dist: jaraco.classes ==3.3.0
Requires-Dist: Jinja2 ==3.1.3
Requires-Dist: jmespath ==0.10.0
Requires-Dist: keyring ==24.3.0
Requires-Dist: loguru ==0.7.2
Requires-Dist: lxml ==5.1.0
Requires-Dist: markdown-it-py ==3.0.0
Requires-Dist: MarkupSafe ==2.1.5
Requires-Dist: mdurl ==0.1.2
Requires-Dist: more-itertools ==10.2.0
Requires-Dist: multidict ==6.0.5
Requires-Dist: nacos-sdk-python-customer ==0.1.15
Requires-Dist: nh3 ==0.2.15
Requires-Dist: numpy ==1.26.4
Requires-Dist: openpyxl ==3.1.2
Requires-Dist: oss2 ==2.18.4
Requires-Dist: packaging ==24.0
Requires-Dist: pandas ==2.2.0
Requires-Dist: pillow ==10.2.0
Requires-Dist: pkginfo ==1.9.6
Requires-Dist: protobuf ==4.21.6
Requires-Dist: psutil ==5.9.8
Requires-Dist: py ==1.11.0
Requires-Dist: pycparser ==2.21
Requires-Dist: pycryptodome ==3.20.0
Requires-Dist: Pygments ==2.17.2
Requires-Dist: PyMySQL ==1.1.0
Requires-Dist: python-dateutil ==2.8.2
Requires-Dist: python-docx ==1.1.0
Requires-Dist: python-multipart ==0.0.9
Requires-Dist: pytz ==2024.1
Requires-Dist: PyYAML ==6.0.1
Requires-Dist: readme-renderer ==42.0
Requires-Dist: redis ==5.0.1
Requires-Dist: requests ==2.32.3
Requires-Dist: requests-toolbelt ==1.0.0
Requires-Dist: retry ==0.9.2
Requires-Dist: rfc3986 ==2.0.0
Requires-Dist: rich ==13.7.0
Requires-Dist: six ==1.16.0
Requires-Dist: sniffio ==1.3.0
Requires-Dist: SQLAlchemy ==2.0.25
Requires-Dist: starlette ==0.37.2
Requires-Dist: twine ==4.0.2
Requires-Dist: typing-extensions ==4.12.2
Requires-Dist: tzdata ==2023.4
Requires-Dist: tzlocal ==5.2
Requires-Dist: urllib3 ==2.2.0
Requires-Dist: uvicorn ==0.27.0.post1
Requires-Dist: wrapt ==1.16.0
Requires-Dist: yarl ==1.9.4
Requires-Dist: zipp ==3.17.0

# 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

~~~

