Spaces:
Sleeping
Sleeping
| from typing import List, Dict, Any, Literal, Optional | |
| from pydantic import BaseModel, Field | |
| class OpenAIToolCallFunction(BaseModel): | |
| """工具调用函数""" | |
| name: str | None = Field(None, description="函数名称") | |
| arguments: str | None = Field(None, description="JSON格式的函数参数") | |
| class OpenAIDeltaToolCall(BaseModel): | |
| index: int | None = Field(None, description="工具调用索引") | |
| id: str | None = Field(None, description="工具调用ID") | |
| type: Literal["function"] | None = Field(None, description="调用类型") | |
| function: OpenAIToolCallFunction | None = Field(None, description="函数详情增量") | |
| class OpenAIMessageContent(BaseModel): | |
| """OpenAI消息内容项""" | |
| type: Literal["text", "image_url"] = Field(description="内容类型") | |
| text: str | None = Field(None, description="文本内容") | |
| image_url: dict[str, str] | None = Field(None, description="图像URL配置") | |
| class Message(BaseModel): | |
| role: str | |
| content: str | list[OpenAIMessageContent] | None = Field( | |
| None, description="消息内容" | |
| ) | |
| tool_call_id: str | None = Field(None) | |
| tool_calls: list[dict[str, Any]] | None = Field( | |
| None, description="工具调用信息(当role为assistant时)" | |
| ) | |
| class OpenAIToolFunction(BaseModel): | |
| """OpenAI工具函数定义""" | |
| name: str = Field(description="函数名称") | |
| description: str | None = Field(None, description="函数描述") | |
| parameters: dict[str, Any] | None = Field( | |
| None, description="JSON Schema格式的函数参数" | |
| ) | |
| class OpenAITool(BaseModel): | |
| """OpenAI工具定义""" | |
| type: Literal["function"] = Field("function", description="工具类型") | |
| function: OpenAIToolFunction = Field(description="函数定义") | |
| class ChatCompletionRequest(BaseModel): | |
| messages: List[Message] | |
| stream: Optional[bool] = False | |
| model: Optional[str] = "gpt-4o" | |
| tools: list[OpenAITool] | None = Field(None, description="可用工具定义") | |
| class Model(BaseModel): | |
| id: str | |
| object: str | |
| created: int | |
| owned_by: str | |
| class ModelsResponse(BaseModel): | |
| object: str | |
| data: List[Model] | |
| class Choice(BaseModel): | |
| index: int | |
| message: Optional[Dict[str, Any]] = None | |
| delta: Optional[Dict[str, Any]] = None | |
| finish_reason: Optional[str] = None | |
| class Usage(BaseModel): | |
| prompt_tokens: int | |
| completion_tokens: int | |
| total_tokens: int | |
| class ChatCompletionResponse(BaseModel): | |
| id: str | |
| object: str | |
| created: int | |
| model: str | |
| choices: List[Choice] | |
| usage: Optional[Usage] = None | |