Skip to content

Commit

Permalink
feat(copilot): add DeepSeek provider integration and update dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
Red-Asuka committed Feb 26, 2025
1 parent 4aa6cac commit 2726d50
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 20 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
36 changes: 16 additions & 20 deletions src/utils/copilot.ts
Original file line number Diff line number Diff line change
@@ -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<OpenAIProvider['chat']>[0]

Expand All @@ -9,7 +11,13 @@ export interface OpenAIOptionsModel {
providerCreator: typeof createOpenAI
}

export type AImodelsOptionsModel = Array<OpenAIOptionsModel>
export interface DeepSeekOptionsModel {
value: 'DeepSeek'
children: { value: Parameters<DeepSeekProvider['chat']>[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.'
Expand All @@ -27,25 +35,26 @@ 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 = [
{
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',
},
]

Expand All @@ -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)
// }
}

/**
Expand Down
17 changes: 17 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]":
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"
Expand Down

0 comments on commit 2726d50

Please sign in to comment.