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 安全團隊成員可以將其修改為最終的人類可讀報告。
我如何找到使用 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 呼叫已主機的服務?
這會因服務而異,但基本步驟如下
- 建立一位客戶
- 組裝一則訊息傳送給該模型
- 這則訊息會包含一個提示,詢問一個問題或告訴服務要執行什麼操作
- 這則訊息可以有不同的部分
- 傳送訊息給客戶端
- 收到一則回覆
以下是一個 使用 Google AI 服務的完整小範例。
我該如何用 Go 呼叫下載的服務?
Ollama 提供了一個良好的架構,可以用來使用下載的服務。Ollama 執行在當地機器上,但會在 localhost 上開啟一個埠,以提供一個 REST API。在那個時刻 Ollama 可以當作是一個已主機服務處理,但實際的 AI 運算將在當地機器上進行。
以下是一個 使用 Go 從 Ollama 呼叫的完整小範例。
我該如何用 Go 建立由 LLM 驅動的應用程式?
若要瞭解如何用不同的 LLM 架構建立一個應用程式,請參考 如何使用不同的 LLM 架構建立一個 RAG 伺服器。
我該如何用 Go 管理提示?
傳送給 LLM 服務的訊息稱為提示。在很多情況下,一個程式將會有一個根據使用者輸入來填寫變數的一般性提示。在 Go 中,實作此功能的自然方式是使用 text/template 套件。
此內容是 Go Wiki 的一部分。