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