demo1984s 的个人博客 demo1984s 的个人博客

记录精彩的程序人生

目录
OpenAI API 兼容性演示项目
/  

OpenAI API 兼容性演示项目

作者:tj-scripts
邮箱:tangj1984@gmail.com
日期:2024-03-21
项目地址:https://github.com/tj-scripts/openai_compatiable_demo

一个展示如何构建与 OpenAI API 规范兼容的应用程序的演示项目,支持原生 OpenAI API 和兼容的 API 服务。

✨ 特性

  • 支持 OpenAI API 和兼容的 API 服务
  • 异步 API 调用
  • 交互式聊天界面
  • 聊天历史管理
  • 可配置的日志系统
  • 类型提示和文档
  • 错误处理和重试机制

🚀 安装

  1. 克隆仓库:
1git clone https://github.com/yourusername/openai_compatiable_demo.git
2cd openai_compatiable_demo
  1. 使用 uv 创建并激活 Python 虚拟环境:
1# 创建虚拟环境
2uv venv .venv --python=3.12
3
4# 激活虚拟环境
5# Unix/macOS 系统:
6source .venv/bin/activate
7# Windows 系统:
8.venv\Scripts\activate
  1. 安装依赖:
1# 首先安装构建工具
2uv pip install hatchling
3
4# 以可编辑模式安装包
5uv pip install -e .

如果安装过程中遇到问题,请确保:

  • 已安装 Python 3.12 或更高版本
  • uv 已正确安装并添加到系统路径
  • 在运行安装命令前已激活虚拟环境

⚙️ 配置

  1. 复制示例配置文件:
1cp config.toml.example config.toml
  1. 编辑 config.toml 设置 API 配置:
 1[api.openai]
 2api_key = "your-openai-api-key"
 3base_url = "https://api.openai.com/v1"
 4model = "gpt-3.5-turbo"
 5temperature = 0.7
 6max_tokens = 2000
 7timeout = 30
 8stream = false
 9retry_count = 3
10retry_delay = 1
11
12[logging]
13level = "INFO"
14format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
15file = "app.log"
16max_size = 10485760  # 10MB
17backup_count = 5

📝 配置说明

🔑 API 配置

  • api_key:您的 OpenAI API 密钥
  • base_url:API 端点 URL
  • model:使用的模型名称
  • temperature:控制随机性(0.0 到 1.0)
  • max_tokens:生成的最大令牌数
  • timeout:请求超时时间(秒)
  • stream:启用流式响应
  • retry_count:请求失败重试次数
  • retry_delay:重试延迟时间(秒)

📊 日志配置

  • level:日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
  • format:日志消息格式
  • file:日志文件路径
  • max_size:日志文件最大大小(字节)
  • backup_count:保留的日志文件数量

💬 使用方法

Web UI 界面

17424276964568905915568059034290.png

运行 Web UI 界面:

1python -m tj.scripts.ui

Web 界面提供以下功能:

  • 交互式聊天界面
  • 聊天历史管理
  • 可配置参数(温度、最大令牌数)
  • 清空历史按钮
  • 响应式设计

界面访问地址:

  • 本地访问:http://localhost:7860
  • 公共 URL:(将在终端中显示)

交互式聊天

运行交互式聊天演示:

1python -m tj.scripts.main

聊天界面支持以下命令:

  • 输入消息并按回车发送
  • history:显示聊天历史
  • clear:清空聊天历史
  • help:显示可用命令
  • quit:退出聊天
  • 按 Ctrl+C 随时退出

聊天会话示例:

 1Welcome to the AI Chat! Type your message and press Enter to chat.
 2Commands:
 3  - 'quit': Exit the chat
 4  - 'clear': Clear chat history
 5  - 'history': Show chat history
 6  - 'help': Show this help message
 7
 8You: 你好,请介绍一下你自己。
 9
10Assistant: 你好!我是一个 AI 助手,我可以帮助你回答问题、编写代码、分析数据等...
11
12You: 你能帮我写一个 Python 函数吗?
13
14Assistant: 当然可以!请告诉我你想要实现什么功能...
15
16You: history
17
18=== Chat History ===
19
20System: You are a helpful AI assistant.
21
22User: 你好,请介绍一下你自己。
23
24Assistant: 你好!我是一个 AI 助手,我可以帮助你回答问题、编写代码、分析数据等...
25
26User: 你能帮我写一个 Python 函数吗?
27
28Assistant: 当然可以!请告诉我你想要实现什么功能...
29
30===================
31
32## 🛠️ 开发
33
341. 确保已安装 Python 3.12 或更高版本
352. 使用虚拟环境进行开发
363. 遵循 PEP 8 编码规范
374. 为所有函数添加类型提示
385. 为所有模块、类和方法编写文档字符串
39
40### 🔧 开发工具
41
42项目在 `pyproject.toml` 中配置了多个开发工具:
43
44- `black`:代码格式化
45- `isort`:导入排序
46- `mypy`:类型检查
47- `pytest`:测试框架
48
49安装开发依赖:
50```bash
51uv pip install -e ".[dev]"

🤝 贡献指南

  1. Fork 本仓库
  2. 创建您的特性分支
  3. 提交您的更改
  4. 推送到分支
  5. 创建新的 Pull Request

📄 许可证

MIT 许可证


标题:OpenAI API 兼容性演示项目
作者:demo1984s
地址:http://www.demo1984s.com/articles/2025/03/20/1742427536211.html