Documentation
¶
Overview ¶
Package deepseek 为 Google ADK Go v2 提供 DeepSeek 模型适配器。
DeepSeek API 兼容 OpenAI Chat Completion 协议,本包实现 model.LLM 接口, 在 ADK 内部格式(genai.Content)与 OpenAI 格式之间自动转换, 支持流式和非流式两种调用模式。
快速开始 ¶
设置环境变量:
export DEEPSEEK_API_KEY="sk-xxx"
一行接入:
import deepseek "github.com/Linsugar/adk-deepseek"
llm := deepseek.New("deepseek-v4-flash")
agent, _ := llmagent.New(llmagent.Config{Model: llm, ...})
支持的模型 ¶
deepseek-v4-pro — 旗舰模型(最强推理能力) deepseek-v4-flash — 快速推理(推荐日常使用)
自定义配置 ¶
llm := deepseek.New(deepseek.Config{
ModelName: "deepseek-v4-pro",
APIKey: os.Getenv("DEEPSEEK_API_KEY"),
BaseURL: "https://api.deepseek.com/v1",
})
实现细节 ¶
本包将以下 ADK 类型转换为 OpenAI Chat Completion 格式:
- genai.Content(对话历史) → messages 数组
- genai.Schema(工具 JSON Schema) → tools 数组
- genai.FunctionCall(工具调用) ← tool_calls 字段
- genai.FunctionResponse(工具结果) → tool 角色消息
- model.LLMRequest.Config → temperature, max_tokens 等参数
流式模式下,工具调用的函数名和参数可能分多个 SSE chunk 返回, 本包自动累积碎片,流结束后合并为完整的 FunctionCall 事件。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// ModelName DeepSeek 模型名称,如 "deepseek-v4-flash"、"deepseek-v4-pro"。
ModelName string
// APIKey 从 DeepSeek 平台获取的 API Key。
// 若为空,自动从环境变量 DEEPSEEK_API_KEY 读取。
APIKey string
// BaseURL API 端点地址,默认 "https://api.deepseek.com/v1"。
// 可用于代理、私有部署等场景。
BaseURL string
// HTTPClient 自定义 HTTP 客户端,nil 使用 http.DefaultClient。
HTTPClient *http.Client
}
Config 配置 DeepSeek 客户端。
type LLM ¶
type LLM struct {
// contains filtered or unexported fields
}
LLM 实现 model.LLM 接口,连接 DeepSeek API。
func New ¶
New 创建一个 DeepSeek 模型客户端(便捷方法)。
API Key 读取优先级:参数传入 > 环境变量 DEEPSEEK_API_KEY
// 方式 1:自动从环境变量读取(Linux/macOS/Windows 均支持)
llm := deepseek.New("deepseek-v4-flash")
// 方式 2:直接传入 API Key(无需设环境变量,Windows 友好)
llm := deepseek.New("deepseek-v4-flash", "sk-xxxxxxxxxxxxxxxx")
// 方式 3:完整配置
llm := deepseek.NewWithConfig(deepseek.Config{...})
func (*LLM) GenerateContent ¶
func (m *LLM) GenerateContent(ctx context.Context, req *model.LLMRequest, stream bool) iter.Seq2[*model.LLMResponse, error]
GenerateContent 实现 model.LLM 接口。
将 ADK 的 LLMRequest 转换为 OpenAI Chat Completion 格式, 调用 DeepSeek API,然后将响应转回 LLMResponse。
stream=false: 一次性返回完整响应 stream=true: 通过 iter.Seq2 逐个返回 SSE chunk