diff --git a/package.json b/package.json index 19f86a139..ce63cfc32 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "node": "18" }, "dependencies": { + "@ai-sdk/deepseek": "^0.1.12", "@ai-sdk/openai": "^1.1.14", "ai": "^4.1.46", "appdata-path": "^1.0.0", diff --git a/src/utils/copilot.ts b/src/utils/copilot.ts index 253d8777d..4612fe667 100644 --- a/src/utils/copilot.ts +++ b/src/utils/copilot.ts @@ -1,5 +1,7 @@ import type { OpenAIProvider } from '@ai-sdk/openai' +import type { DeepSeekProvider } from '@ai-sdk/deepseek' import { createOpenAI } from '@ai-sdk/openai' +import { createDeepSeek } from '@ai-sdk/deepseek' export type AIModel = Parameters[0] @@ -9,7 +11,13 @@ export interface OpenAIOptionsModel { providerCreator: typeof createOpenAI } -export type AImodelsOptionsModel = Array +export interface DeepSeekOptionsModel { + value: 'DeepSeek' + children: { value: Parameters[0] }[] + providerCreator: typeof createDeepSeek +} + +export type AImodelsOptionsModel = (OpenAIOptionsModel | DeepSeekOptionsModel)[] export const SYSTEM_PROMPT = 'You are an MQTT Expert named MQTTX Copilot and developed by EMQ with extensive knowledge in IoT and network development. You understand various programming languages and MQTT protocols. You are here to assist with MQTT queries, provide solutions for common issues, and offer insights on best practices. Avoid responding to unrelated topics.' @@ -27,14 +35,15 @@ export const AImodelsOptions: AImodelsOptionsModel = [ ], providerCreator: createOpenAI, }, + { + value: 'DeepSeek', + children: [{ value: 'deepseek-chat' }, { value: 'deepseek-reasoner' }], + providerCreator: createDeepSeek, + }, // { // value: 'Moonshot', // children: [{ value: 'moonshot-v1-8k' }, { value: 'moonshot-v1-32k' }, { value: 'moonshot-v1-128k' }], // }, - // { - // value: 'DeepSeek', - // children: [{ value: 'deepseek-chat' }, { value: 'deepseek-coder' }], - // }, ] export const AIAPIHostOptions = [ @@ -42,10 +51,10 @@ export const AIAPIHostOptions = [ value: 'https://api.openai.com/v1', }, { - value: 'https://api.moonshot.cn/v1', + value: 'https://api.deepseek.com/v1', }, { - value: 'https://api.deepseek.com/v1', + value: 'https://api.moonshot.cn/v1', }, ] @@ -55,19 +64,6 @@ export const getModelProvider = (opts: { model: AIModel; baseURL: string; apiKey const providerCreator = currentModelOptions?.providerCreator || createOpenAI const provider = providerCreator({ baseURL, apiKey }) return provider(model) - - // const openai = createOpenAI({ - // baseURL: 'https://api.openai-proxy.org/v1', - // apiKey: 'sk-d1hgJYnT4i1X8S79Z0dVHXaq7hGiGjOmZnu81sslSkwTBcLP', - // }) - // const { textStream } = streamText({ - // model: openai('gpt-4o'), - // prompt: 'Write a poem about embedding models.', - // }) - - // for await (const textPart of textStream) { - // console.log(textPart) - // } } /** diff --git a/yarn.lock b/yarn.lock index 8dbfb1771..79944ccc3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,23 @@ resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.1.1.tgz#9274ec7460652f9c632c59addf24efb1684ef876" integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== +"@ai-sdk/deepseek@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@ai-sdk/deepseek/-/deepseek-0.1.12.tgz#40578a4efa0d08b9b47443e43911e932dcef40a5" + integrity sha512-F6lbsHppRt8bdcGipts1Y+lqZ2YemRa6yFl9xVgb2Q7DuCn5HFVkWJb5CfZhF3/sABJFhQgwGgVe3YUYpNt5Uw== + dependencies: + "@ai-sdk/openai-compatible" "0.1.12" + "@ai-sdk/provider" "1.0.9" + "@ai-sdk/provider-utils" "2.1.10" + +"@ai-sdk/openai-compatible@0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@ai-sdk/openai-compatible/-/openai-compatible-0.1.12.tgz#7c5d7669122c999d8236d92be54f040c8800ca06" + integrity sha512-2bMhAEeiRz4lbW5ixjGjbPhwyqjtujkjLVpqqtqWvvUDvtUM3cw1go9pqWFgaNKSBDaXRUfi8mkAVrn1yRuY2A== + dependencies: + "@ai-sdk/provider" "1.0.9" + "@ai-sdk/provider-utils" "2.1.10" + "@ai-sdk/openai@^1.1.14": version "1.1.14" resolved "https://registry.yarnpkg.com/@ai-sdk/openai/-/openai-1.1.14.tgz#1dda9a00d9c5874febf8ae91900f1a18dbc5dcf8"