Merge remote-tracking branch 'upstream/main' into linting
Browse files- app/lib/.server/llm/model.ts +4 -4
- app/lib/.server/llm/stream-text.ts +3 -4
- app/routes/api.chat.ts +3 -4
- app/utils/constants.ts +42 -0
- app/utils/logger.ts +1 -1
- package.json +1 -1
app/lib/.server/llm/model.ts
CHANGED
@@ -10,9 +10,12 @@ import { ollama } from 'ollama-ai-provider';
|
|
10 |
import { createOpenRouter } from '@openrouter/ai-sdk-provider';
|
11 |
import { createMistral } from '@ai-sdk/mistral';
|
12 |
import { createCohere } from '@ai-sdk/cohere';
|
|
|
13 |
|
14 |
export const DEFAULT_NUM_CTX = process.env.DEFAULT_NUM_CTX ? parseInt(process.env.DEFAULT_NUM_CTX, 10) : 32768;
|
15 |
|
|
|
|
|
16 |
export function getAnthropicModel(apiKey: OptionalApiKey, model: string) {
|
17 |
const anthropic = createAnthropic({
|
18 |
apiKey,
|
@@ -20,9 +23,6 @@ export function getAnthropicModel(apiKey: OptionalApiKey, model: string) {
|
|
20 |
|
21 |
return anthropic(model);
|
22 |
}
|
23 |
-
|
24 |
-
type OptionalApiKey = string | undefined;
|
25 |
-
|
26 |
export function getOpenAILikeModel(baseURL: string, apiKey: OptionalApiKey, model: string) {
|
27 |
const openai = createOpenAI({
|
28 |
baseURL,
|
@@ -85,7 +85,7 @@ export function getHuggingFaceModel(apiKey: OptionalApiKey, model: string) {
|
|
85 |
export function getOllamaModel(baseURL: string, model: string) {
|
86 |
const ollamaInstance = ollama(model, {
|
87 |
numCtx: DEFAULT_NUM_CTX,
|
88 |
-
});
|
89 |
|
90 |
ollamaInstance.config.baseURL = `${baseURL}/api`;
|
91 |
|
|
|
10 |
import { createOpenRouter } from '@openrouter/ai-sdk-provider';
|
11 |
import { createMistral } from '@ai-sdk/mistral';
|
12 |
import { createCohere } from '@ai-sdk/cohere';
|
13 |
+
import type { LanguageModelV1 } from 'ai';
|
14 |
|
15 |
export const DEFAULT_NUM_CTX = process.env.DEFAULT_NUM_CTX ? parseInt(process.env.DEFAULT_NUM_CTX, 10) : 32768;
|
16 |
|
17 |
+
type OptionalApiKey = string | undefined;
|
18 |
+
|
19 |
export function getAnthropicModel(apiKey: OptionalApiKey, model: string) {
|
20 |
const anthropic = createAnthropic({
|
21 |
apiKey,
|
|
|
23 |
|
24 |
return anthropic(model);
|
25 |
}
|
|
|
|
|
|
|
26 |
export function getOpenAILikeModel(baseURL: string, apiKey: OptionalApiKey, model: string) {
|
27 |
const openai = createOpenAI({
|
28 |
baseURL,
|
|
|
85 |
export function getOllamaModel(baseURL: string, model: string) {
|
86 |
const ollamaInstance = ollama(model, {
|
87 |
numCtx: DEFAULT_NUM_CTX,
|
88 |
+
}) as LanguageModelV1 & { config: any };
|
89 |
|
90 |
ollamaInstance.config.baseURL = `${baseURL}/api`;
|
91 |
|
app/lib/.server/llm/stream-text.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
*/
|
5 |
import { streamText as _streamText, convertToCoreMessages } from 'ai';
|
6 |
import { getModel } from '~/lib/.server/llm/model';
|
7 |
import { MAX_TOKENS } from './constants';
|
|
|
1 |
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
2 |
+
// @ts-nocheck – TODO: Provider proper types
|
3 |
+
|
|
|
4 |
import { streamText as _streamText, convertToCoreMessages } from 'ai';
|
5 |
import { getModel } from '~/lib/.server/llm/model';
|
6 |
import { MAX_TOKENS } from './constants';
|
app/routes/api.chat.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
4 |
-
*/
|
5 |
import { type ActionFunctionArgs } from '@remix-run/cloudflare';
|
6 |
import { MAX_RESPONSE_SEGMENTS, MAX_TOKENS } from '~/lib/.server/llm/constants';
|
7 |
import { CONTINUE_PROMPT } from '~/lib/.server/llm/prompts';
|
|
|
1 |
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
2 |
+
// @ts-nocheck – TODO: Provider proper types
|
3 |
+
|
|
|
4 |
import { type ActionFunctionArgs } from '@remix-run/cloudflare';
|
5 |
import { MAX_RESPONSE_SEGMENTS, MAX_TOKENS } from '~/lib/.server/llm/constants';
|
6 |
import { CONTINUE_PROMPT } from '~/lib/.server/llm/prompts';
|
app/utils/constants.ts
CHANGED
@@ -167,6 +167,48 @@ const PROVIDER_LIST: ProviderInfo[] = [
|
|
167 |
provider: 'HuggingFace',
|
168 |
maxTokenAllowed: 8000,
|
169 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
],
|
171 |
getApiKeyLink: 'https://huggingface.co/settings/tokens',
|
172 |
},
|
|
|
167 |
provider: 'HuggingFace',
|
168 |
maxTokenAllowed: 8000,
|
169 |
},
|
170 |
+
{
|
171 |
+
name: 'Qwen/Qwen2.5-Coder-32B-Instruct',
|
172 |
+
label: 'Qwen2.5-Coder-32B-Instruct (HuggingFace)',
|
173 |
+
provider: 'HuggingFace',
|
174 |
+
maxTokenAllowed: 8000,
|
175 |
+
},
|
176 |
+
{
|
177 |
+
name: 'Qwen/Qwen2.5-72B-Instruct',
|
178 |
+
label: 'Qwen2.5-72B-Instruct (HuggingFace)',
|
179 |
+
provider: 'HuggingFace',
|
180 |
+
maxTokenAllowed: 8000,
|
181 |
+
},
|
182 |
+
{
|
183 |
+
name: 'meta-llama/Llama-3.1-70B-Instruct',
|
184 |
+
label: 'Llama-3.1-70B-Instruct (HuggingFace)',
|
185 |
+
provider: 'HuggingFace',
|
186 |
+
maxTokenAllowed: 8000,
|
187 |
+
},
|
188 |
+
{
|
189 |
+
name: 'meta-llama/Llama-3.1-405B',
|
190 |
+
label: 'Llama-3.1-405B (HuggingFace)',
|
191 |
+
provider: 'HuggingFace',
|
192 |
+
maxTokenAllowed: 8000,
|
193 |
+
},
|
194 |
+
{
|
195 |
+
name: '01-ai/Yi-1.5-34B-Chat',
|
196 |
+
label: 'Yi-1.5-34B-Chat (HuggingFace)',
|
197 |
+
provider: 'HuggingFace',
|
198 |
+
maxTokenAllowed: 8000,
|
199 |
+
},
|
200 |
+
{
|
201 |
+
name: 'codellama/CodeLlama-34b-Instruct-hf',
|
202 |
+
label: 'CodeLlama-34b-Instruct (HuggingFace)',
|
203 |
+
provider: 'HuggingFace',
|
204 |
+
maxTokenAllowed: 8000,
|
205 |
+
},
|
206 |
+
{
|
207 |
+
name: 'NousResearch/Hermes-3-Llama-3.1-8B',
|
208 |
+
label: 'Hermes-3-Llama-3.1-8B (HuggingFace)',
|
209 |
+
provider: 'HuggingFace',
|
210 |
+
maxTokenAllowed: 8000,
|
211 |
+
},
|
212 |
],
|
213 |
getApiKeyLink: 'https://huggingface.co/settings/tokens',
|
214 |
},
|
app/utils/logger.ts
CHANGED
@@ -11,7 +11,7 @@ interface Logger {
|
|
11 |
setLevel: (level: DebugLevel) => void;
|
12 |
}
|
13 |
|
14 |
-
let currentLevel: DebugLevel =
|
15 |
|
16 |
const isWorker = 'HTMLRewriter' in globalThis;
|
17 |
const supportsColor = !isWorker;
|
|
|
11 |
setLevel: (level: DebugLevel) => void;
|
12 |
}
|
13 |
|
14 |
+
let currentLevel: DebugLevel = import.meta.env.VITE_LOG_LEVEL ?? import.meta.env.DEV ? 'debug' : 'info';
|
15 |
|
16 |
const isWorker = 'HTMLRewriter' in globalThis;
|
17 |
const supportsColor = !isWorker;
|
package.json
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
"test": "vitest --run",
|
13 |
"test:watch": "vitest",
|
14 |
"lint": "eslint --cache --cache-location ./node_modules/.cache/eslint app",
|
15 |
-
"lint:fix": "
|
16 |
"start": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings",
|
17 |
"dockerstart": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings --ip 0.0.0.0 --port 5173 --no-show-interactive-dev-session",
|
18 |
"dockerrun": "docker run -it -d --name bolt-ai-live -p 5173:5173 --env-file .env.local bolt-ai",
|
|
|
12 |
"test": "vitest --run",
|
13 |
"test:watch": "vitest",
|
14 |
"lint": "eslint --cache --cache-location ./node_modules/.cache/eslint app",
|
15 |
+
"lint:fix": "npm run lint -- --fix && prettier app --write",
|
16 |
"start": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings",
|
17 |
"dockerstart": "bindings=$(./bindings.sh) && wrangler pages dev ./build/client $bindings --ip 0.0.0.0 --port 5173 --no-show-interactive-dev-session",
|
18 |
"dockerrun": "docker run -it -d --name bolt-ai-live -p 5173:5173 --env-file .env.local bolt-ai",
|