Files
one-api-workers/type.d.ts
T
dreamhunter2333andClaude Opus 4.5 c75dade7df feat: 添加 Claude 到 OpenAI 协议转换支持
新增功能:
- 新增 claude-to-openai channel 类型,支持 Claude 协议请求转换为 OpenAI 协议
- 支持流式和非流式响应转换
- 完整的 SSE 事件转换 (message_start, content_block_*, message_delta, message_stop)
- 支持工具调用 (tool_use) 转换

优化:
- 统一在上层完成模型名映射,移除各 provider 重复逻辑
- 添加通配符匹配支持 (如 *claude*, claude-*)
- 简化代码,移除冗余变量

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 02:15:41 +08:00

92 lines
1.7 KiB
TypeScript

type Variables = {
lang: string | undefined | null
}
type CloudflareBindings = {
DB: D1Database;
ASSETS: Fetcher;
ADMIN_TOKEN: string;
}
type HonoCustomType = {
"Bindings": CloudflareBindings;
"Variables": Variables;
}
// 数据库表行的基础结构
type BaseDbRow = {
created_at: string;
updated_at: string;
}
// channel_config 表的行结构
type ChannelConfigRow = BaseDbRow & {
key: string;
value: string; // JSON 字符串,解析后为 ChannelConfig 类型
}
// api_token 表的行结构
type ApiTokenRow = BaseDbRow & {
key: string;
value: string; // JSON 字符串,解析后为 ApiTokenData 类型
usage: number;
}
type ChannelType =
| "azure-openai"
| "openai"
| "claude"
| "claude-to-openai"
| "openai-responses"
| "azure-openai-responses"
| undefined
| null;
type ChannelConfig = {
name: string;
type: ChannelType;
endpoint: string;
api_key: string;
api_version?: string;
deployment_mapper: Record<string, string>;
model_pricing?: Record<string, ModelPricing>;
}
type ChannelConfigMap = {
[key: string]: ChannelConfig;
}
type OpenAIResponse = {
usage?: Usage
}
type Usage = {
prompt_tokens?: number,
completion_tokens?: number,
total_tokens?: number,
cached_tokens?: number,
}
type AwslKeyPayload = {
channel_key: string;
multipler: number | undefined | null;
}
type CommonResponse = {
success?: boolean;
message?: string;
data?: any;
}
type ModelPricing = {
input: number;
output: number;
cache?: number;
}
type ApiTokenData = {
name: string;
channel_keys: string[];
total_quota: number;
}