Files
vibn-agent-runner/vibn-frontend/lib/ai/vibn-chat-model.ts

34 lines
1.1 KiB
TypeScript

/**
* Routes workspace AI chat to Gemini or an OpenAI-compatible API (e.g. DeepSeek).
*
* Env:
* VIBN_CHAT_PROVIDER=gemini | deepseek | openai_compatible
*
* Default: gemini (requires GOOGLE_API_KEY / studio key + VIBN_CHAT_MODEL).
*
* DeepSeek / OpenAI-compat:
* DEEPSEEK_API_KEY (or VIBN_OPENAI_COMPATIBLE_API_KEY)
* Optional: VIBN_OPENAI_COMPATIBLE_CHAT_URL (default https://api.deepseek.com/chat/completions)
* Optional: VIBN_OPENAI_COMPATIBLE_MODEL (default deepseek-chat)
*/
import type { ChatMessage, ToolDefinition } from './gemini-chat';
import { callGeminiChat } from './gemini-chat';
import { callOpenAiCompatibleChat } from './openai-compatible-chat';
export type VibnChatCallOpts = {
systemPrompt: string;
messages: ChatMessage[];
tools?: ToolDefinition[];
temperature?: number;
includeThoughts?: boolean;
};
export async function callVibnChat(opts: VibnChatCallOpts) {
const p = (process.env.VIBN_CHAT_PROVIDER || 'gemini').toLowerCase().trim();
if (p === 'deepseek' || p === 'openai_compatible') {
return callOpenAiCompatibleChat(opts);
}
return callGeminiChat(opts);
}