mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 13:25:18 +00:00
feat: more llm provider options (google, mistral) (#28)
* feat: add google provider * fix: default for google model * feat: multiple providers * fix: defaults from env for login form * fix: add mistral to env files * chore: delete unused code * chore: revert database url to original * fix: render default value for api key from env on server * fix: type errors during compilation --------- Co-authored-by: Vasily Zubarev <me@vas3k.ru>
This commit is contained in:
@@ -6,6 +6,10 @@ const envSchema = z.object({
|
||||
SELF_HOSTED_MODE: z.enum(["true", "false"]).default("true"),
|
||||
OPENAI_API_KEY: z.string().optional(),
|
||||
OPENAI_MODEL_NAME: z.string().default("gpt-4o-mini"),
|
||||
GOOGLE_API_KEY: z.string().optional(),
|
||||
GOOGLE_MODEL_NAME: z.string().default("gemini-2.5-flash"),
|
||||
MISTRAL_API_KEY: z.string().optional(),
|
||||
MISTRAL_MODEL_NAME: z.string().default("mistral-medium-latest"),
|
||||
BETTER_AUTH_SECRET: z
|
||||
.string()
|
||||
.min(16, "Auth secret must be at least 16 characters")
|
||||
@@ -50,7 +54,11 @@ const config = {
|
||||
},
|
||||
ai: {
|
||||
openaiApiKey: env.OPENAI_API_KEY,
|
||||
modelName: env.OPENAI_MODEL_NAME,
|
||||
openaiModelName: env.OPENAI_MODEL_NAME,
|
||||
googleApiKey: env.GOOGLE_API_KEY,
|
||||
googleModelName: env.GOOGLE_MODEL_NAME,
|
||||
mistralApiKey: env.MISTRAL_API_KEY,
|
||||
mistralModelName: env.MISTRAL_MODEL_NAME,
|
||||
},
|
||||
auth: {
|
||||
secret: env.BETTER_AUTH_SECRET,
|
||||
|
||||
47
lib/llm-providers.ts
Normal file
47
lib/llm-providers.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
export const PROVIDERS = [
|
||||
{
|
||||
key: "openai",
|
||||
label: "OpenAI",
|
||||
apiKeyName: "openai_api_key",
|
||||
modelName: "openai_model_name",
|
||||
defaultModelName: "gpt-4o-mini",
|
||||
apiDoc: "https://platform.openai.com/settings/organization/api-keys",
|
||||
apiDocLabel: "OpenAI Platform Console",
|
||||
placeholder: "sk-...",
|
||||
help: {
|
||||
url: "https://platform.openai.com/settings/organization/api-keys",
|
||||
label: "OpenAI Platform Console"
|
||||
},
|
||||
logo: "/logo/openai.svg"
|
||||
},
|
||||
{
|
||||
key: "google",
|
||||
label: "Google",
|
||||
apiKeyName: "google_api_key",
|
||||
modelName: "google_model_name",
|
||||
defaultModelName: "gemini-2.5-flash",
|
||||
apiDoc: "https://aistudio.google.com/apikey",
|
||||
apiDocLabel: "Google AI Studio",
|
||||
placeholder: "...",
|
||||
help: {
|
||||
url: "https://aistudio.google.com/apikey",
|
||||
label: "Google AI Studio"
|
||||
},
|
||||
logo: "/logo/google.svg"
|
||||
},
|
||||
{
|
||||
key: "mistral",
|
||||
label: "Mistral",
|
||||
apiKeyName: "mistral_api_key",
|
||||
modelName: "mistral_model_name",
|
||||
defaultModelName: "mistral-medium-latest",
|
||||
apiDoc: "https://admin.mistral.ai/organization/api-keys",
|
||||
apiDocLabel: "Mistral Admin Console",
|
||||
placeholder: "...",
|
||||
help: {
|
||||
url: "https://admin.mistral.ai/organization/api-keys",
|
||||
label: "Mistral Admin Console"
|
||||
},
|
||||
logo: "/logo/mistral.svg"
|
||||
},
|
||||
]
|
||||
Reference in New Issue
Block a user