欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 使用 Go-DeepSeek 轻松调用 DeepSeek 模型:从在线 API 到本地部署

使用 Go-DeepSeek 轻松调用 DeepSeek 模型:从在线 API 到本地部署

2025/2/21 3:17:27 来源:https://blog.csdn.net/m0_74823471/article/details/145661568  浏览:    关键词:使用 Go-DeepSeek 轻松调用 DeepSeek 模型:从在线 API 到本地部署

在这里插入图片描述

引言

DeepSeek 是一个强大的 AI 模型平台,支持多种自然语言处理任务,如对话生成、代码补全和函数调用。为了方便 Go 开发者快速集成 DeepSeek 的功能,我开发了一个非官方的 Go 客户端库:go-deepseek。本文将详细介绍如何使用该库,从在线 API 调用到本地模型部署,帮助你快速上手。

项目简介

go-deepseek 是一个 Go 语言编写的客户端库,支持以下功能:

  • Chat Completion:对话生成
  • FIM (Fill-in-Middle) Completion:代码补全
  • Function Calling:函数调用
  • Embeddings:文本嵌入

此外,go-deepseek 还支持通过 Ollama 调用本地模型(如 deepseek-r1),为开发者提供更灵活的部署选项。

安装

使用以下命令安装 go-deepseek:

go get github.com/p9966/go-deepseek

注意:该库需要 Go 1.23 或更高版本。

快速开始

1. 使用 DeepSeek API 进行对话生成

以下是一个简单的示例,展示如何使用go-deepseek调用 DeepSeek 的在线 API 进行对话生成:

package mainimport ("context""fmt""log""os""github.com/p9966/go-deepseek"
)func main() {client := deepseek.NewClient(os.Getenv("DEEPSEEK_API_KEY"))request := deepseek.ChatCompletionRequest{Model: deepseek.DeepSeekChat,Messages: []deepseek.ChatCompletionMessage{{Role:    deepseek.ChatMessageRoleUser,Content: "Hello!",},},}ctx := context.Background()resp, err := client.CreateChatCompletion(ctx, &request)if err != nil {log.Fatalf("ChatCompletion failed: %v", err)}if len(resp.Choices) == 0 {log.Fatal("No response choices available")}fmt.Println(resp.Choices[0].Message.Content)
}

使用 Ollama 调用本地模型

如果你想在本地运行模型,可以通过 Ollama 部署 deepseek-r1,并使用以下代码调用:

package mainimport ("context""fmt""log""github.com/p9966/go-deepseek"
)func main() {client := deepseek.Client{BaseUrl: "http://localhost:11434",}request := deepseek.OllamaChatRequest{Model: "deepseek-r1:7b",Messages: []deepseek.OllamaChatMessage{{Role:    "user",Content: "Hello!",},},}response, err := client.CreateOllamaChatCompletion(context.TODO(), &request)if err != nil {log.Fatalf("Error: %v", err)}fmt.Println(response.Message.Content)
}

获取 DeepSeek API Key

  1. 访问 DeepSeek 官网。
  2. 注册或登录你的账户。
  3. 进入 API Key 管理页面。
  4. 点击 “Create new secret key”。
  5. 输入 Key 的名称并确认。
  6. 生成的 API Key 将显示在页面上,请妥善保管。

注意:API Key 是敏感信息,请勿泄露。

本地模型部署

如果你想在本地运行模型,可以按照以下步骤操作:

  1. 访问 Ollama 官网。

  2. 下载并安装 Ollama。

  3. 在终端中运行以下命令下载模型:

    ollama run deepseek-r1

现在你可以通过 go-deepseek 调用本地模型了。

提示:你还可以从Ollama 模型库下载其他模型,使用方法类似。

更多示例

FIM (Fill-in-Middle) Completion

package mainimport ("context""fmt""log""os""github.com/p9966/go-deepseek"
)func main() {client := deepseek.NewClient(os.Getenv("DEEPSEEK_API_KEY"))request := deepseek.FINCompletionRequest{Model:  deepseek.DeepSeekChat,Prompt: "What is the weather like today?",}ctx := context.Background()resp, err := client.CreateFINCompletion(ctx, &request)if err != nil {log.Fatalf("Error creating completion: %v", err)}if len(resp.Choices) == 0 {log.Fatal("No response choices available")}fmt.Println(resp.Choices[0].Text)
}

Function Calling

package mainimport ("context""fmt""log""os""github.com/p9966/go-deepseek"
)func main() {client := deepseek.NewClient(os.Getenv("DEEPSEEK_API_KEY"))request := deepseek.ChatCompletionRequest{Model: deepseek.DeepSeekChat,Messages: []deepseek.ChatCompletionMessage{{Role:    deepseek.ChatMessageRoleUser,Content: "How's the weather in Hangzhou?",},},Tools: []deepseek.Tools{{Type: "function",Function: deepseek.Function{Name:        "get_weather",Description: "Get weather of an location, the user shoud supply a location first",Parameters: &deepseek.Parameters{Type: "object",Properties: map[string]interface{}{"location": map[string]interface{}{"description": "The location to get weather","type":        "string",},},Required: []string{"location"},},},},},}ctx := context.Background()resp, err := client.CreateChatCompletion(ctx, &request)if err != nil {log.Fatalf("ChatCompletion failed: %v", err)}if len(resp.Choices) == 0 {log.Fatal("No response choices available")}if len(resp.Choices[0].Message.ToolCalls) == 0 {log.Fatal("No function calls available")}fmt.Printf("Function name: %v, args:%s
", resp.Choices[0].Message.ToolCalls[0].Function.Name, resp.Choices[0].Message.ToolCalls[0].Function.Arguments)
}

项目地址与许可

  • GitHub 仓库:go-deepseek
  • 许可证:MIT License

结语

go-deepseek 是一个功能强大且易于使用的 Go 客户端库,支持从在线 API 到本地模型的多种部署方式。无论你是想快速集成 DeepSeek 的功能,还是在本地运行模型,go-deepseek 都能满足你的需求。如果你有任何问题或建议,欢迎在 GitHub 上提交 Issue 或 PR!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词