Go Wiki:AI
使用 Go 访问 AI(人工智能)服务的资源列表,特别是大型语言模型 (LLM) 和机器学习 (ML) 系统。
您可以使用 Go 构建哪些类型的 AI 应用程序?
Go 是一种编写使用 AI 服务的程序的优秀语言。这包括使用 LLM 服务来汇总或分类数据、根据数据库回答问题或避免重复性任务的程序。这些服务可以在互联网上访问(托管服务),或在本地运行(下载服务)。
例如,程序 golang.org/x/cmd/vulndb/vulnreport 使用 AI 来汇总漏洞报告。当 Go 安全团队的成员使用新的漏洞报告运行该程序时,vulnreport 会联系一个生成式 AI 服务(在本例中为 Google 的生成式 AI 服务)。它会将 提示 与漏洞的原始描述一起传递。AI 服务将以简洁的摘要进行回复。然后,Go 安全团队成员可以将其细化为最终的人类可读报告。
如何查找用于访问 AI 服务的 Go 软件包?
这是一个快速发展的领域,这些答案可能会发生变化。
如果您心中有特定的服务,许多服务提供商都有自己的 Go 软件包。
如果您希望对服务具有灵活性,请使用通用框架,例如 langchaingo 或 Ollama。
一些特定的服务
- Google 生成式 AI:github.com/google/generative-ai-go/genai。
- Google Cloud Vertex AI:cloud.google.com/go/vertexai/genai。
如何从 Go 调用托管服务?
它因服务而异,但基本步骤是
- 创建客户端
- 组装要发送到模型的消息
- 消息将包含一个提示,询问问题或告诉服务要做什么
- 消息可以包含不同的部分
- 将消息发送到客户端
- 接收回复
这是一个 使用 Google AI 服务的完整小型示例。
如何从 Go 调用下载的服务?
Ollama 为使用下载的服务提供了一个良好的框架。Ollama 在本地机器上运行,但在 localhost 上打开一个端口以提供 REST API。此时,Ollama 可以被视为托管服务,但实际的 AI 计算将在本地机器上完成。
这是一个 从 Go 使用 Ollama 的完整小型示例。
如何使用 Go 构建基于 LLM 的应用程序?
要了解如何使用不同的 LLM 框架构建应用程序,请查看 如何使用各种 LLM 框架构建 RAG 服务器。
如何在 Go 中管理提示?
发送到 LLM 服务的消息称为提示。在许多情况下,程序将有一个通用提示,其中包含根据用户输入填充的变量。在 Go 中,执行此操作的自然方法是使用 text/template 软件包。
此内容是 Go Wiki 的一部分。