Skip to content

Commit d62124b

Browse files
authored
Bump ai sdk (#503)
* Bump ai sdk * Remove useless file
1 parent c7a52cc commit d62124b

8 files changed

Lines changed: 117 additions & 951 deletions

File tree

packages/api/ai/config.mts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ export async function getModel(): Promise<LanguageModel> {
1919
throw new Error('OpenAI API key is not set');
2020
}
2121
const openai = createOpenAI({
22-
compatibility: 'strict', // strict mode, enabled when using the OpenAI API
2322
apiKey: config.openaiKey,
2423
});
25-
return openai(model);
24+
return openai.chat(model);
2625

2726
case 'anthropic':
2827
if (!config.anthropicKey) {
@@ -43,32 +42,29 @@ export async function getModel(): Promise<LanguageModel> {
4342
throw new Error('Xai API key is not set');
4443
}
4544
const xai = createOpenAI({
46-
compatibility: 'compatible',
4745
baseURL: 'https://api.x.ai/v1',
4846
apiKey: config.xaiKey,
4947
});
50-
return xai(model);
48+
return xai.chat(model);
5149

5250
case 'openrouter':
5351
if (!config.openrouterKey) {
5452
throw new Error('OpenRouter API key is not set');
5553
}
5654
const openrouter = createOpenAI({
57-
compatibility: 'compatible',
5855
baseURL: 'https://openrouter.ai/api/v1',
5956
apiKey: config.openrouterKey,
6057
});
61-
return openrouter(model);
58+
return openrouter.chat(model);
6259

6360
case 'custom':
6461
if (typeof aiBaseUrl !== 'string') {
6562
throw new Error('Local AI base URL is not set');
6663
}
6764
const openaiCompatible = createOpenAI({
68-
compatibility: 'compatible',
6965
apiKey: config.customApiKey || 'bogus', // use custom API key if set, otherwise use a bogus key
7066
baseURL: aiBaseUrl,
7167
});
72-
return openaiCompatible(model);
68+
return openaiCompatible.chat(model);
7369
}
7470
}

packages/api/ai/generate.mts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { generateText, type GenerateTextResult } from 'ai';
1+
import { generateText } from 'ai';
22
import { getModel } from './config.mjs';
33
import {
44
type CodeLanguageType,
@@ -108,7 +108,6 @@ ${query}
108108
return prompt;
109109
};
110110

111-
type NoToolsGenerateTextResult = GenerateTextResult<{}>;
112111
/*
113112
* Given a user request, which is free form text describing their intent,
114113
* generate a srcbook using an LLM.
@@ -118,7 +117,7 @@ type NoToolsGenerateTextResult = GenerateTextResult<{}>;
118117
* In the future, we can parameterize this with different models, to allow
119118
* users to use different providers like Anthropic or local ones.
120119
*/
121-
export async function generateSrcbook(query: string): Promise<NoToolsGenerateTextResult> {
120+
export async function generateSrcbook(query: string): Promise<string> {
122121
const model = await getModel();
123122
const result = await generateText({
124123
model,
@@ -130,7 +129,7 @@ export async function generateSrcbook(query: string): Promise<NoToolsGenerateTex
130129
if (result.finishReason !== 'stop') {
131130
console.warn('Generated a srcbook, but finish_reason was not "stop":', result.finishReason);
132131
}
133-
return result;
132+
return result.text;
134133
}
135134

136135
export async function healthcheck(): Promise<string> {

packages/api/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
},
2424
"dependencies": {
2525
"@ai-sdk/anthropic": "catalog:",
26-
"@ai-sdk/google": "^1.0.3",
26+
"@ai-sdk/google": "catalog:",
2727
"@ai-sdk/openai": "catalog:",
28-
"@ai-sdk/provider": "^1.0.1",
28+
"@ai-sdk/provider": "catalog:",
2929
"@srcbook/shared": "workspace:^",
30-
"ai": "^3.4.33",
30+
"ai": "catalog:",
3131
"better-sqlite3": "^11.3.0",
3232
"cors": "^2.8.5",
3333
"depcheck": "^1.4.7",

packages/api/server/http.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ router.post('/generate', cors(), async (req, res) => {
150150
try {
151151
posthog.capture({ event: 'user generated srcbook with AI', properties: { query } });
152152
const result = await generateSrcbook(query);
153-
const srcbookDir = await importSrcbookFromSrcmdText(result.text);
153+
const srcbookDir = await importSrcbookFromSrcmdText(result);
154154
return res.json({ error: false, result: { dir: srcbookDir } });
155155
} catch (e) {
156156
const error = e as unknown as Error;

packages/shared/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"prepublishOnly": "npm run build"
1414
},
1515
"dependencies": {
16-
"@ai-sdk/google": "1.0.1",
16+
"@ai-sdk/google": "catalog:",
1717
"@scure/base": "^1.1.8",
1818
"zod": "catalog:"
1919
},

0 commit comments

Comments
 (0)