Skip to content
ShakaRoverPublic

About

OpenAI 协议转换器

Resources

Stars

17 stars

Watchers

1 watching

Forks

Repository files navigation

OpenCC 协议转换器

License: MIT Node.js Version TypeScript

OpenCC 是一个高性能的协议转换器,实现 Anthropic Claude API 和 OpenAI API 之间的双向转换。允许用户以 Anthropic 格式发送请求,自动转换为 OpenAI 格式与 OpenAI 服务器通信,然后将响应转换回 Anthropic 格式。

✨ 核心特性

  • 🔄 协议统一: 完整的 Anthropic Claude API 到 OpenAI API 协议转换
  • 🚀 高性能: 基于 Express.js 和 TypeScript 构建,支持流式响应
  • 🛡️ 安全可靠: 内置认证、速率限制、错误处理和日志记录
  • 🎯 功能保真: 智能转换策略,最大化保持原始 API 的功能特性
  • 📊 监控完善: 内置健康检查、指标收集和调试信息
  • 🔧 配置灵活: 支持环境变量配置和模型映射自定义

🚫 重要限制

注意: 根据设计要求,以下功能被明确禁用:

  • ❌ 音频输入: 不支持 input_audio 类型内容
  • ❌ 文件上传: 不支持 file 类型内容
  • ❌ Redis 缓存: 项目不使用 Redis,采用内存缓存

此协议转换器主要用于测试和比较模型能力,不建议作为生产环境的长期解决方案。

📋 系统要求

  • Node.js: ≥ 18.0.0
  • npm: ≥ 9.0.0 或 yarn: ≥ 1.22.0
  • OpenAI API Key: 有效的 OpenAI API 密钥

🚀 快速开始

1. 克隆项目

git clone https://github.com/your-org/opencc.git
cd opencc

2. 安装依赖

npm install
# 或
yarn install

3. 配置环境

cp .env.example .env

编辑 .env 文件,设置必要的环境变量:

# 必需配置
OPENAI_API_KEY=your_openai_api_key_here
PORT=3000

# 可选配置
NODE_ENV=development
LOG_LEVEL=info

4. 启动服务

qwen-cli 模式(默认)

# 开发模式(热重载)
npm run dev

# 生产模式
npm run build
npm start

通用 OpenAI 模式

# 使用自定义 OpenAI API
npm start -- --openai-api-key sk-your-key-here --openai-base-url https://api.your-provider.com

# 或通过环境变量
export OPENAI_API_KEY=sk-your-key-here
export OPENAI_BASE_URL=https://api.your-provider.com
npm start

DeepSeek 支持说明

  • DeepSeek官网的直接支持工具调用,你用官网的API忽略这条
  • 只测试了 DeepSeek V3.1,起它版本未测试
  • DeepSeek 需要在CC中添加 deepseek-v3.1-code-agent 提示词。 复制这个文件到 .claude 目录下,在CLAUDE.md 中添加 @deepseek-v3.1-code-agent.md
  • 所以不建议DeepSeek和其他模型混用,混用切换的时候记得去掉 CLAUDE.md 中 @deepseek-v3.1-code-agent.md,然和 /clear 以便恢复效果。
  • 其实可以把这个提示词放到选项菜单中,但是我懒了,就到这结束吧,等我自己用的时候再来改。

支持的命令行参数

  • --openai-api-key <key>: OpenAI API 密钥
  • --openai-base-url <url>: OpenAI API 端点 URL
  • --qwen-oauth-file <path>: qwen OAuth 认证文件路径
  • --model <model>: 默认使用的模型
  • --model-mapping <file|json>: 模型映射文件或 JSON 数据,参考 model-mapping.example.json

5. 验证服务

curl http://localhost:3000/health

⚙️ 配置选项

环境变量

变量名 默认值 描述
PORT 3000 服务端口
HOST localhost 服务主机
NODE_ENV development 运行环境
OPENAI_API_KEY 必需 OpenAI API 密钥
OPENAI_BASE_URL https://api.openai.com/v1 OpenAI API 基础URL
OPENAI_TIMEOUT 30000 请求超时时间(毫秒)
RATE_LIMIT_WINDOW_MS 900000 速率限制窗口期(15分钟)
RATE_LIMIT_MAX_REQUESTS 100 最大请求数
LOG_LEVEL info 日志级别
LOG_FORMAT json 日志格式
CORS_ORIGIN * CORS 允许的源
REQUEST_TIMEOUT 60000 请求超时时间
MAX_REQUEST_SIZE 10mb 最大请求体大小

模型映射配置

可以通过修改 config/model-mapping.json 文件自定义模型映射:

{
  "claude-custom-model": {
    "openaiModel": "gpt-4",
    "contextLength": 8192,
    "maxTokens": 4096,
    "capabilities": ["text", "tools"]
  }
}

🧪 开发和测试

开发模式

# 启动开发服务器(热重载)
npm run dev

# 类型检查
npm run typecheck

# 代码格式化
npm run format

# 代码检查
npm run lint
npm run lint:fix

运行测试

# 运行所有测试
npm test

# 监视模式
npm run test:watch

# 覆盖率报告
npm run test:coverage

构建项目

# 构建生产版本
npm run build

# 启动生产服务
npm start

📊 监控和调试

健康检查

# 基础健康检查
curl http://localhost:3000/health

# 详细健康信息
curl http://localhost:3000/health/detailed

# 指标信息
curl http://localhost:3000/health/metrics

日志配置

# 设置详细日志
VERBOSE_LOGGING=true npm run dev

# 设置调试模式
DEBUG_MODE=true npm run dev

🔒 安全注意事项

  1. API 密钥管理: 确保 OpenAI API 密钥安全存储,不要提交到版本控制
  2. 速率限制: 根据使用情况调整速率限制配置
  3. CORS 配置: 生产环境中限制 CORS 源
  4. 认证: 确保客户端使用有效的 API 密钥
  5. 网络安全: 使用 HTTPS 部署,考虑反向代理

🐛 错误处理

常见错误代码

状态码 错误类型 描述
400 invalid_request_error 请求参数无效
401 authentication_error 认证失败
429 rate_limit_error 速率限制
500 api_error 服务器内部错误

错误响应格式

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "Missing required parameter: max_tokens"
  }
}

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支: git checkout -b feature/amazing-feature
  3. 提交更改: git commit -m 'Add amazing feature'
  4. 推送分支: git push origin feature/amazing-feature
  5. 提交 Pull Request

代码规范

  • 使用 TypeScript 严格模式
  • 遵循 ESLint 和 Prettier 配置
  • 编写测试用例
  • 更新文档

📚 文档链接


📝 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢

📞 支持

  • 📚 没有支持,自己看着办

⚠️ 免责声明: 此项目仅用于技术研究和测试目的。在生产环境中使用前,请仔细评估其适用性和安全性。

DeepSeek 效果图

dp001 dp002 dp003 dp004 dp005

About

OpenAI 协议转换器

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages