该库专为渴望通过干净、有效且 Go 语言惯用的方法探索大型语言模型 (LLM) 和其他生成式 AI 潜力的开发人员而设计。
欢迎来到agency ! ♂️
安装包:
go get github.com/neurocult/ agency
聊天示例:
package main
import (
"bufio"
"context"
"fmt"
"os"
_ "github.com/joho/godotenv/autoload"
"github.com/neurocult/ agency "
"github.com/neurocult/ agency /providers/openai"
)
func main () {
assistant := openai .
New (openai. Params { Key : os . Getenv ( "OPENAI_API_KEY" )}).
TextToText (openai. TextToTextParams { Model : "gpt-3.5-turbo" }).
SetPrompt ( "You are helpful assistant." )
messages := [] agency . Message {}
reader := bufio . NewReader ( os . Stdin )
ctx := context . Background ()
for {
fmt . Print ( "User: " )
text , err := reader . ReadString ( 'n' )
if err != nil {
panic ( err )
}
input := agency . UserMessage ( text )
answer , err := assistant . SetMessages ( messages ). Execute ( ctx , input )
if err != nil {
panic ( err )
}
fmt . Println ( "Assistant: " , answer )
messages = append ( messages , input , answer )
}
}
就是这样!
查看示例以了解更复杂的用例,包括 RAG 和多模式操作。
Pure Go :快速、轻量级、静态类型,无需搞乱 Python 或 JavaScript
通过将业务逻辑与具体实现分离来编写干净的代码并遵循干净的架构
通过实现简单的界面轻松创建自定义操作
将操作组合成流程,并能够通过拦截器观察每个步骤
OpenAI API 绑定(可用于任何兼容 openai 的 API:文本到文本(补全)、文本到图像、文本到语音、语音到文本
agency的核心是让用户能够构建自主代理的雄心。虽然非常适合从聊天界面到复杂数据分析的所有生成人工智能应用程序,但我们库的最终目标是简化自主人工智能系统的创建。无论您是构建个人助理还是协调代理群, agency都能提供所需的工具和灵活性,帮助您轻松高效地将这些先进概念变为现实。
在生成人工智能领域,基于 Go 的库很少见。最值得注意的是 LangChainGo,Python LangChain 的 Go 移植版。然而,将 Python 翻译成 Go 可能很笨拙,并且可能不太适合 Go 的惯用风格。另外,一些人质疑 LangChain 的设计,即使是用 Python 编写的。这种情况表明显然需要一种惯用的 Go 替代方案。
我们的目标是通过一个以 Go 为中心的库来填补这一空白,该库强调干净、简单的代码并避免不必要的复杂性。 agency设计有一个小而强大的核心,易于扩展,非常适合 Go 在静态类型和性能方面的优势。这是我们对生成型人工智能缺乏 Go-native 解决方案的答案。
在接下来的版本中: