Skip to content

Conversation

@zicheng-tech
Copy link

openai_api.py`

数据模型 (Pydantic Models)

# 消息和工具模型
- ChatMessageRole (Enum) - 消息角色枚举
- ChatMessage - 消息模型
- ToolFunction - 工具函数定义
- Tool - 工具定义

# 请求模型
- ChatCompletionRequest - 完整的OpenAI请求模型
  ├─ 支持所有标准参数 (temperature, top_p, top_k, etc.)
  ├─ 支持 logprobs  top_logprobs
  ├─ 支持 tools  tool_choice
  └─ 完整的验证逻辑

# 响应模型
- ChatCompletionChoice - 选择项模型
- Usage - Token使用统计
- ChatCompletionResponse - 标准响应
- ChatCompletionStreamResponse - 流式响应
- Logprobs - Log概率结构
- TopLogprob - Top log概率项

核心函数

# 请求转换
convert_to_parallax_request() - OpenAI格式Parallax格式

# Logprobs计算
create_logprobs_from_logits() - 从模型logits计算真实logprobs
create_logprobs_from_content() - 从内容生成mock logprobs

# 响应创建
create_chat_completion_response() - 创建标准响应
create_stream_chunk() - 创建流式响应块
create_error_response() - 创建错误响应

# 请求处理
handle_chat_completion() - 主处理函数
  ├─ validate_model() - 模型验证
  ├─ handle_non_streaming_response() - 非流式响应
  │   ├─ 事件驱动等待
  │   ├─ Token计数使用tokenizer)
  │   ├─ Logprobs计算
  │   └─ 资源清理finally块)
  └─ handle_streaming_response() - 流式响应
      ├─ 事件驱动chunk生成
      ├─ 超时控制
      └─ 资源清理

# 路由设置
setup_openai_routes() - 设置API路由
  ├─ POST /v1/chat/completions - 完整API
  ├─ POST /v1/chat/completions/simple - 简单API
  ├─ GET /v1/models - 模型列表
  ├─ GET /health - 健康检查
  └─ GET / - 根端点

# 中间件
setup_middleware() - 设置中间件
  ├─ logging_middleware() - 日志记录
  ├─ rate_limit_middleware() - 限流60/分钟)
  └─ auth_middleware() - 鉴权可选

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant