クリーンで効果的な、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の中心には、ユーザーが自律エージェントを構築できるようにするという目標があります。チャット インターフェイスから複雑なデータ分析まで、あらゆる範囲の生成 AI アプリケーションに最適ですが、私たちのライブラリの最終目標は、自律型 AI システムの作成を簡素化することです。個別のアシスタントを構築している場合でも、エージェントの群れを調整している場合でも、 agencyこれらの高度なコンセプトを簡単かつ効率的に実現するために必要なツールと柔軟性を提供します。
生成 AI の世界では、Go ベースのライブラリはまれです。最も注目に値するのは、Python LangChain の Go ポートである LangChainGo です。ただし、Python を Go に変換するのは扱いにくい場合があり、Go の慣用的なスタイルにうまく適合しない可能性があります。さらに、Python であっても LangChain の設計を疑問視する人もいます。この状況は、慣用的な Go の代替手段が明らかに必要であることを明らかにしています。
私たちの目標は、クリーンでシンプルなコードを重視し、不必要な複雑さを回避する Go 中心のライブラリでこのギャップを埋めることです。 agency 、小さくて堅牢なコアを使用して設計されており、拡張が容易で、静的型付けとパフォーマンスにおける Go の強みに完全に適合しています。これは、生成 AI における Go ネイティブ ソリューションの欠如に対する私たちの答えです。
次のバージョンでは: