mirror of
https://github.com/willchen96/mike.git
synced 2026-06-10 20:35:12 +02:00
30 lines
1.1 KiB
TypeScript
30 lines
1.1 KiB
TypeScript
import { streamClaude, completeClaudeText } from "./claude";
|
|
import { streamGemini, completeGeminiText } from "./gemini";
|
|
import { streamOpenAI, completeOpenAIText } from "./openai";
|
|
import { providerForModel } from "./models";
|
|
import type { StreamChatParams, StreamChatResult, UserApiKeys } from "./types";
|
|
|
|
export * from "./types";
|
|
export * from "./models";
|
|
|
|
export async function streamChatWithTools(
|
|
params: StreamChatParams,
|
|
): Promise<StreamChatResult> {
|
|
const provider = providerForModel(params.model);
|
|
if (provider === "claude") return streamClaude(params);
|
|
if (provider === "openai") return streamOpenAI(params);
|
|
return streamGemini(params);
|
|
}
|
|
|
|
export async function completeText(params: {
|
|
model: string;
|
|
systemPrompt?: string;
|
|
user: string;
|
|
maxTokens?: number;
|
|
apiKeys?: UserApiKeys;
|
|
}): Promise<string> {
|
|
const provider = providerForModel(params.model);
|
|
if (provider === "claude") return completeClaudeText(params);
|
|
if (provider === "openai") return completeOpenAIText(params);
|
|
return completeGeminiText(params);
|
|
}
|