Support LLM gateway with Dyad API key (#23)
* Do not make API key input (password) - hurts usability * Support LLM gateway (and add GPT 4.1 mini model) * Show Dyad Pro button * Fix to use auto (not dyad) for detecting dyad pro * Fix description of gpt 4.1-mini
This commit is contained in:
@@ -1,12 +1,19 @@
|
||||
import { createOpenAI } from "@ai-sdk/openai";
|
||||
import { createOpenAI, OpenAIProvider } from "@ai-sdk/openai";
|
||||
import { createGoogleGenerativeAI as createGoogle } from "@ai-sdk/google";
|
||||
import { createAnthropic } from "@ai-sdk/anthropic";
|
||||
import { createOpenRouter } from "@openrouter/ai-sdk-provider";
|
||||
import { createOllama } from "ollama-ai-provider";
|
||||
|
||||
import type { LargeLanguageModel, UserSettings } from "../../lib/schemas";
|
||||
import { PROVIDER_TO_ENV_VAR, AUTO_MODELS } from "../../constants/models";
|
||||
import {
|
||||
PROVIDER_TO_ENV_VAR,
|
||||
AUTO_MODELS,
|
||||
PROVIDERS,
|
||||
} from "../../constants/models";
|
||||
import { getEnvVar } from "./read_env";
|
||||
import log from "electron-log";
|
||||
|
||||
const logger = log.scope("getModelClient");
|
||||
export function getModelClient(
|
||||
model: LargeLanguageModel,
|
||||
settings: UserSettings
|
||||
@@ -38,6 +45,17 @@ export function getModelClient(
|
||||
throw new Error("No API keys available for any model in AUTO_MODELS");
|
||||
}
|
||||
|
||||
const dyadApiKey = settings.providerSettings?.auto?.apiKey?.value;
|
||||
if (dyadApiKey) {
|
||||
const provider = createOpenAI({
|
||||
apiKey: dyadApiKey,
|
||||
baseURL: "https://llm-gateway.dyad.sh/v1",
|
||||
});
|
||||
const providerInfo = PROVIDERS[model.provider as keyof typeof PROVIDERS];
|
||||
logger.info("Using Dyad Pro API key");
|
||||
return provider(`${providerInfo.gatewayPrefix}${model.name}`);
|
||||
}
|
||||
|
||||
const apiKey =
|
||||
settings.providerSettings?.[model.provider]?.apiKey?.value ||
|
||||
getEnvVar(PROVIDER_TO_ENV_VAR[model.provider]);
|
||||
|
||||
Reference in New Issue
Block a user