Meet Patel
commited on
Commit
·
8bcd82c
1
Parent(s):
9666b2a
feat: added perplexity model
Browse files- .env.example +5 -0
- app/commit.json +1 -1
- app/lib/.server/llm/api-key.ts +2 -0
- app/lib/.server/llm/model.ts +11 -0
- app/utils/constants.ts +24 -0
- worker-configuration.d.ts +1 -0
.env.example
CHANGED
|
@@ -70,6 +70,11 @@ LMSTUDIO_API_BASE_URL=
|
|
| 70 |
# You only need this environment variable set if you want to use xAI models
|
| 71 |
XAI_API_KEY=
|
| 72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 73 |
# Include this environment variable if you want more logging for debugging locally
|
| 74 |
VITE_LOG_LEVEL=debug
|
| 75 |
|
|
|
|
| 70 |
# You only need this environment variable set if you want to use xAI models
|
| 71 |
XAI_API_KEY=
|
| 72 |
|
| 73 |
+
# Get your Perplexity API Key here -
|
| 74 |
+
# https://www.perplexity.ai/settings/api
|
| 75 |
+
# You only need this environment variable set if you want to use Perplexity models
|
| 76 |
+
PERPLEXITY_API_KEY=
|
| 77 |
+
|
| 78 |
# Include this environment variable if you want more logging for debugging locally
|
| 79 |
VITE_LOG_LEVEL=debug
|
| 80 |
|
app/commit.json
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{ "commit": "
|
|
|
|
| 1 |
+
{ "commit": "9666b2ab67d25345542722ab9d870b36ad06252e" }
|
app/lib/.server/llm/api-key.ts
CHANGED
|
@@ -39,6 +39,8 @@ export function getAPIKey(cloudflareEnv: Env, provider: string, userApiKeys?: Re
|
|
| 39 |
return env.TOGETHER_API_KEY || cloudflareEnv.TOGETHER_API_KEY;
|
| 40 |
case 'xAI':
|
| 41 |
return env.XAI_API_KEY || cloudflareEnv.XAI_API_KEY;
|
|
|
|
|
|
|
| 42 |
case 'Cohere':
|
| 43 |
return env.COHERE_API_KEY;
|
| 44 |
case 'AzureOpenAI':
|
|
|
|
| 39 |
return env.TOGETHER_API_KEY || cloudflareEnv.TOGETHER_API_KEY;
|
| 40 |
case 'xAI':
|
| 41 |
return env.XAI_API_KEY || cloudflareEnv.XAI_API_KEY;
|
| 42 |
+
case 'Perplexity':
|
| 43 |
+
return env.PERPLEXITY_API_KEY || cloudflareEnv.PERPLEXITY_API_KEY;
|
| 44 |
case 'Cohere':
|
| 45 |
return env.COHERE_API_KEY;
|
| 46 |
case 'AzureOpenAI':
|
app/lib/.server/llm/model.ts
CHANGED
|
@@ -128,6 +128,15 @@ export function getXAIModel(apiKey: OptionalApiKey, model: string) {
|
|
| 128 |
return openai(model);
|
| 129 |
}
|
| 130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 131 |
export function getModel(
|
| 132 |
provider: string,
|
| 133 |
model: string,
|
|
@@ -170,6 +179,8 @@ export function getModel(
|
|
| 170 |
return getXAIModel(apiKey, model);
|
| 171 |
case 'Cohere':
|
| 172 |
return getCohereAIModel(apiKey, model);
|
|
|
|
|
|
|
| 173 |
default:
|
| 174 |
return getOllamaModel(baseURL, model);
|
| 175 |
}
|
|
|
|
| 128 |
return openai(model);
|
| 129 |
}
|
| 130 |
|
| 131 |
+
export function getPerplexityModel(apiKey: OptionalApiKey, model: string) {
|
| 132 |
+
const perplexity = createOpenAI({
|
| 133 |
+
baseURL: 'https://api.perplexity.ai/',
|
| 134 |
+
apiKey,
|
| 135 |
+
});
|
| 136 |
+
|
| 137 |
+
return perplexity(model);
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
export function getModel(
|
| 141 |
provider: string,
|
| 142 |
model: string,
|
|
|
|
| 179 |
return getXAIModel(apiKey, model);
|
| 180 |
case 'Cohere':
|
| 181 |
return getCohereAIModel(apiKey, model);
|
| 182 |
+
case 'Perplexity':
|
| 183 |
+
return getPerplexityModel(apiKey, model);
|
| 184 |
default:
|
| 185 |
return getOllamaModel(baseURL, model);
|
| 186 |
}
|
app/utils/constants.ts
CHANGED
|
@@ -292,6 +292,30 @@ const PROVIDER_LIST: ProviderInfo[] = [
|
|
| 292 |
],
|
| 293 |
getApiKeyLink: 'https://api.together.xyz/settings/api-keys',
|
| 294 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 295 |
];
|
| 296 |
|
| 297 |
export const DEFAULT_PROVIDER = PROVIDER_LIST[0];
|
|
|
|
| 292 |
],
|
| 293 |
getApiKeyLink: 'https://api.together.xyz/settings/api-keys',
|
| 294 |
},
|
| 295 |
+
{
|
| 296 |
+
name: 'Perplexity',
|
| 297 |
+
staticModels: [
|
| 298 |
+
{
|
| 299 |
+
name: 'llama-3.1-sonar-small-128k-online',
|
| 300 |
+
label: 'Sonar Small Online',
|
| 301 |
+
provider: 'Perplexity',
|
| 302 |
+
maxTokenAllowed: 8192,
|
| 303 |
+
},
|
| 304 |
+
{
|
| 305 |
+
name: 'llama-3.1-sonar-large-128k-online',
|
| 306 |
+
label: 'Sonar Large Online',
|
| 307 |
+
provider: 'Perplexity',
|
| 308 |
+
maxTokenAllowed: 8192,
|
| 309 |
+
},
|
| 310 |
+
{
|
| 311 |
+
name: 'llama-3.1-sonar-huge-128k-online',
|
| 312 |
+
label: 'Sonar Huge Online',
|
| 313 |
+
provider: 'Perplexity',
|
| 314 |
+
maxTokenAllowed: 8192,
|
| 315 |
+
},
|
| 316 |
+
],
|
| 317 |
+
getApiKeyLink: 'https://www.perplexity.ai/settings/api',
|
| 318 |
+
},
|
| 319 |
];
|
| 320 |
|
| 321 |
export const DEFAULT_PROVIDER = PROVIDER_LIST[0];
|
worker-configuration.d.ts
CHANGED
|
@@ -14,4 +14,5 @@ interface Env {
|
|
| 14 |
GOOGLE_GENERATIVE_AI_API_KEY: string;
|
| 15 |
MISTRAL_API_KEY: string;
|
| 16 |
XAI_API_KEY: string;
|
|
|
|
| 17 |
}
|
|
|
|
| 14 |
GOOGLE_GENERATIVE_AI_API_KEY: string;
|
| 15 |
MISTRAL_API_KEY: string;
|
| 16 |
XAI_API_KEY: string;
|
| 17 |
+
PERPLEXITY_API_KEY: string;
|
| 18 |
}
|