DeepSeek 适配器
使用 DeepSeek 适配器连接 DeepSeek Chat 和 DeepSeek Coder 模型
DeepSeek 适配器提供了与 DeepSeek API 的集成。DeepSeek API 完全兼容 OpenAI 格式,提供高性价比的 AI 服务。
安装
pnpm add @amux.ai/llm-bridge @amux.ai/adapter-deepseek基本使用
import { createBridge } from '@amux.ai/llm-bridge'
import { deepseekAdapter } from '@amux.ai/adapter-deepseek'
const bridge = createBridge({
inbound: deepseekAdapter,
outbound: deepseekAdapter,
config: {
apiKey: process.env.DEEPSEEK_API_KEY
}
})
const response = await bridge.chat({
model: 'deepseek-chat',
messages: [
{ role: 'system', content: '你是一个有帮助的助手。' },
{ role: 'user', content: '什么是 Amux?' }
]
})
console.log(response.choices[0].message.content)支持的模型
| 模型 | 描述 | 特点 |
|---|---|---|
deepseek-chat | 通用对话模型 | 高性价比,适合日常对话 |
deepseek-coder | 代码专用模型 | 专注于代码生成和理解 |
deepseek-reasoner | 推理模型 | 高级推理能力 |
DeepSeek Reasoner 限制: 使用 deepseek-reasoner 模型时:
- 不支持系统消息,系统消息会被静默跳过。如果包含系统消息,API 会返回错误。
- 输入消息中不能包含
reasoning_content字段,否则 API 会返回 400 错误。 max_tokens会被限制在 1-8192 范围内。
主要功能
代码生成
DeepSeek Coder 专门优化了代码能力:
const response = await bridge.chat({
model: 'deepseek-coder',
messages: [
{
role: 'user',
content: '用 TypeScript 写一个快速排序函数'
}
],
temperature: 0.3 // 降低温度以获得更确定的代码
})
console.log(response.choices[0].message.content)推理能力 (DeepSeek Reasoner)
DeepSeek Reasoner 支持深度推理,通过 reasoning_content 字段返回推理过程:
const response = await bridge.chat({
model: 'deepseek-reasoner',
messages: [
// 注意:reasoner 模型不支持系统消息
{ role: 'user', content: '请逐步求解:如果 3x + 7 = 22,x 是多少?' }
]
})
// 访问推理内容
console.log('推理过程:', response.choices[0].message.reasoning_content)
console.log('最终回答:', response.choices[0].message.content)也可以通过 thinking 参数显式启用思考模式:
const response = await bridge.chat({
model: 'deepseek-chat',
messages: [{ role: 'user', content: '复杂分析...' }],
thinking: { type: 'enabled' }
})流式推理:
const stream = bridge.chatStreamRaw({
model: 'deepseek-reasoner',
messages: [{ role: 'user', content: '证明根号 2 是无理数。' }],
stream: true
})
for await (const event of stream) {
if (event.type === 'reasoning') {
process.stdout.write(`[思考] ${event.reasoning?.delta}`)
} else if (event.type === 'content') {
process.stdout.write(event.content?.delta ?? '')
}
}函数调用
const response = await bridge.chat({
model: 'deepseek-chat',
messages: [
{ role: 'user', content: '北京现在几点?' }
],
tools: [{
type: 'function',
function: {
name: 'get_current_time',
description: '获取指定城市的当前时间',
parameters: {
type: 'object',
properties: {
city: { type: 'string' }
},
required: ['city']
}
}
}]
})流式传输
const stream = bridge.chatStream({
model: 'deepseek-chat',
messages: [
{ role: 'user', content: '讲一个故事' }
],
stream: true
})
for await (const chunk of stream) {
if (chunk.choices[0]?.delta?.content) {
process.stdout.write(chunk.choices[0].delta.content)
}
}配置选项
const bridge = createBridge({
inbound: deepseekAdapter,
outbound: deepseekAdapter,
config: {
apiKey: process.env.DEEPSEEK_API_KEY,
baseURL: 'https://api.deepseek.com', // 默认值
timeout: 60000
}
})与 OpenAI 互转
DeepSeek 完全兼容 OpenAI 格式:
import { openaiAdapter } from '@amux.ai/adapter-openai'
import { deepseekAdapter } from '@amux.ai/adapter-deepseek'
// OpenAI 格式 → DeepSeek API
const bridge = createBridge({
inbound: openaiAdapter,
outbound: deepseekAdapter,
config: {
apiKey: process.env.DEEPSEEK_API_KEY
}
})
// 使用 OpenAI 格式发送请求
const response = await bridge.chat({
model: 'gpt-4', // 会被映射到 deepseek-chat
messages: [{ role: 'user', content: '你好' }]
})功能支持
| 功能 | 支持 | 说明 |
|---|---|---|
| 聊天补全 | ✅ | 完全支持 |
| 流式传输 | ✅ | 完全支持 |
| 函数调用 | ✅ | 完全支持 |
| 视觉 | ❌ | 不支持 |
| 系统提示 | ✅ | deepseek-reasoner 模型不支持 |
| 推理能力 | ✅ | deepseek-reasoner 模型,reasoning_content 字段 |
| 思考模式 | ✅ | thinking: { type: 'enabled' | 'disabled' } |
| JSON 模式 | ✅ | 仅支持 json_object(不支持 json_schema) |
| Logprobs | ✅ | 完全支持 |
| 缓存 Token | ✅ | usage 中包含 prompt_cache_hit_tokens / prompt_cache_miss_tokens |
优势
- 高性价比:价格远低于 GPT-4,性能接近
- 代码能力强:DeepSeek Coder 在代码任务上表现优异
- OpenAI 兼容:可以无缝替换 OpenAI API
- 中文友好:对中文支持良好
最佳实践
1. 选择合适的模型
// 日常对话使用 deepseek-chat
const chatResponse = await bridge.chat({
model: 'deepseek-chat',
messages: [{ role: 'user', content: '介绍一下你自己' }]
})
// 代码任务使用 deepseek-coder
const codeResponse = await bridge.chat({
model: 'deepseek-coder',
messages: [{ role: 'user', content: '写一个二分查找算法' }]
})
// 复杂推理使用 deepseek-reasoner
const reasoningResponse = await bridge.chat({
model: 'deepseek-reasoner',
// 注意:reasoner 模型不支持系统消息
messages: [{ role: 'user', content: '请解决这个复杂的问题...' }]
})2. 优化代码生成
const response = await bridge.chat({
model: 'deepseek-coder',
messages: [
{
role: 'system',
content: '你是一个专业的程序员。生成简洁、高效、有注释的代码。'
},
{
role: 'user',
content: '用 Python 实现一个 LRU 缓存'
}
],
temperature: 0.2, // 低温度获得更确定的代码
max_tokens: 1000
})