Files
gemini-nexus/src/server/modules/proxy/interfaces/request-interfaces.ts
T

142 lines
2.7 KiB
TypeScript

export interface OpenAIChatRequest {
model: string;
messages: OpenAIMessage[];
temperature?: number;
top_p?: number;
max_tokens?: number;
stream?: boolean;
size?: string;
quality?: string;
extra?: Record<string, any>;
}
export interface OpenAIMessage {
role: string;
content: string | OpenAIContentPart[];
name?: string;
}
export interface OpenAIContentPart {
type: 'text' | 'image_url';
text?: string;
image_url?: {
url: string;
};
}
export interface AnthropicChatRequest {
model: string;
messages: AnthropicMessage[];
system?: string | AnthropicSystemBlock[];
max_tokens?: number;
metadata?: any;
stop_sequences?: string[];
stream?: boolean;
temperature?: number;
top_p?: number;
top_k?: number;
}
export interface AnthropicMessage {
role: string;
content: string | AnthropicContent[];
}
export interface AnthropicSystemBlock {
type: string;
text: string;
}
export type AnthropicContent =
| { type: 'text'; text: string }
| { type: 'thinking'; thinking: string; signature?: string }
| { type: 'image'; source: AnthropicImageSource };
export interface AnthropicImageSource {
type: 'base64';
media_type: string;
data: string;
}
export interface GeminiContent {
role: string;
parts: GeminiPart[];
}
export interface GeminiPart {
text?: string;
inlineData?: GeminiInlineData;
thoughtSignature?: string;
}
export interface GeminiInlineData {
mimeType: string;
data: string;
}
export interface GeminiRequest {
contents: GeminiContent[];
systemInstruction?: { parts: GeminiPart[] };
generationConfig?: GeminiGenerationConfig;
}
export interface GeminiGenerationConfig {
temperature?: number;
maxOutputTokens?: number;
topP?: number;
topK?: number;
}
export interface GeminiResponse {
candidates?: GeminiCandidate[];
usageMetadata?: GeminiUsageMetadata;
}
export interface GeminiCandidate {
content?: GeminiContent;
finishReason?: string;
index?: number;
}
export interface GeminiUsageMetadata {
promptTokenCount?: number;
candidatesTokenCount?: number;
totalTokenCount?: number;
}
export interface OpenAIChatResponse {
id: string;
object: string;
created: number;
model: string;
choices: OpenAIChoice[];
usage: {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
};
}
export interface OpenAIChoice {
index: number;
message: {
role: string;
content: string;
};
finish_reason: string;
}
export interface AnthropicChatResponse {
id: string;
type: string;
role: string;
model: string;
content: AnthropicContent[];
stop_reason: string | null;
stop_sequence: string | null;
usage: {
input_tokens: number;
output_tokens: number;
};
}