| export function getProviderConfig(provider, model) { |
| |
| const apiKey = process.env.OPENCLAW_API_KEY || |
| process.env.DEEPSEEK_API_KEY || |
| process.env.OPENAI_API_KEY || |
| process.env.ANTHROPIC_API_KEY; |
|
|
| if (!apiKey) { |
| throw new Error("API key not set. Set OPENCLAW_API_KEY, DEEPSEEK_API_KEY, or provider-specific key"); |
| } |
|
|
| switch (provider) { |
| case "openai": |
| return { |
| name: "openai", |
| baseUrl: "https://api.openai.com/v1/chat/completions", |
| model: model || "gpt-4.1-mini", |
| headers: { |
| "Authorization": `Bearer ${apiKey}`, |
| "Content-Type": "application/json" |
| } |
| }; |
|
|
| case "deepseek": |
| return { |
| name: "deepseek", |
| baseUrl: "https://api.deepseek.com/chat/completions", |
| model: model || "deepseek-chat", |
| headers: { |
| "Authorization": `Bearer ${apiKey}`, |
| "Content-Type": "application/json" |
| } |
| }; |
|
|
| case "gemini": |
| return { |
| name: "gemini", |
| baseUrl: `https://generativelanguage.googleapis.com/v1beta/models/${model || "gemini-1.5-pro"}:generateContent?key=${apiKey}`, |
| model, |
| headers: { |
| "Content-Type": "application/json" |
| } |
| }; |
|
|
| case "openrouter": |
| return { |
| name: "openrouter", |
| baseUrl: "https://openrouter.ai/api/v1/chat/completions", |
| model: model || "openai/gpt-4o-mini", |
| headers: { |
| "Authorization": `Bearer ${apiKey}`, |
| "Content-Type": "application/json", |
| "HTTP-Referer": "https://getzero11-openclaw.hf.space", |
| "X-Title": "OpenClaw Market Research Agent" |
| } |
| }; |
|
|
| case "dashscope": |
| return { |
| name: "dashscope", |
| baseUrl: "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation", |
| model: model || "qwen-plus", |
| headers: { |
| "Authorization": `Bearer ${apiKey}`, |
| "Content-Type": "application/json" |
| } |
| }; |
|
|
| default: |
| throw new Error(`Unsupported provider: ${provider}`); |
| } |
| } |
|
|