ai-platform-converter
Version:
Lossless API parameter conversion between multiple AI platforms (OpenAI, Anthropic, Gemini, DeepSeek, Wenwen, Vertex AI, Huawei, BigModel)
136 lines • 3.37 kB
TypeScript
import { Message, ToolDefinition, Usage, FinishReason, ContentPart } from './common';
/**
* OpenAI Chat Completion Request Parameters
*/
export interface OpenAIRequest {
model: string;
messages: Message[];
temperature?: number;
top_p?: number;
n?: number;
stream?: boolean;
stop?: string | string[];
max_tokens?: number;
presence_penalty?: number;
frequency_penalty?: number;
logit_bias?: Record<string, number>;
user?: string;
functions?: Array<{
name: string;
description?: string;
parameters?: Record<string, any>;
}>;
function_call?: 'none' | 'auto' | {
name: string;
};
tools?: ToolDefinition[];
tool_choice?: 'none' | 'auto' | 'required' | {
type: 'function';
function: {
name: string;
};
};
response_format?: {
type: 'text' | 'json_object';
};
seed?: number;
logprobs?: boolean;
top_logprobs?: number;
_extensions?: Record<string, any>;
}
/**
* OpenAI Message structure
*/
export interface OpenAIMessage {
role: 'system' | 'user' | 'assistant' | 'function' | 'tool';
content: string | ContentPart[] | null;
name?: string;
function_call?: {
name: string;
arguments: string;
};
tool_calls?: Array<{
id: string;
type: 'function';
function: {
name: string;
arguments: string;
};
}>;
tool_call_id?: string;
}
/**
* OpenAI Chat Completion Response
*/
export interface OpenAIResponse {
id: string;
object: 'chat.completion';
created: number;
model: string;
choices: Array<{
index: number;
message: OpenAIMessage;
finish_reason: FinishReason;
logprobs?: {
content: Array<{
token: string;
logprob: number;
bytes: number[] | null;
top_logprobs: Array<{
token: string;
logprob: number;
bytes: number[] | null;
}>;
}> | null;
} | null;
}>;
usage?: Usage;
system_fingerprint?: string;
_extensions?: Record<string, any>;
}
/**
* OpenAI Streaming Response Chunk
*/
export interface OpenAIStreamChunk {
id: string;
object: 'chat.completion.chunk';
created: number;
model: string;
choices: Array<{
index: number;
delta: {
role?: 'system' | 'user' | 'assistant' | 'function' | 'tool';
content?: string | null;
function_call?: {
name?: string;
arguments?: string;
};
tool_calls?: Array<{
index: number;
id?: string;
type?: 'function';
function?: {
name?: string;
arguments?: string;
};
}>;
};
finish_reason: FinishReason;
logprobs?: any;
}>;
usage?: Usage;
system_fingerprint?: string;
_extensions?: Record<string, any>;
}
/**
* OpenAI Error Response
*/
export interface OpenAIError {
error: {
message: string;
type: string;
param?: string | null;
code?: string | null;
};
}
//# sourceMappingURL=openai.d.ts.map