Bibliothèque conçue pour les développeurs désireux d'explorer le potentiel des grands modèles linguistiques (LLM) et d'autres IA génératives grâce à une approche propre, efficace et Go-idiomatique.
Bienvenue à l' agency ! ♂️
Paquet d'installation :
go get github.com/neurocult/ agency
Exemple de discussion :
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 )
}
}
C'est ça!
Consultez des exemples pour découvrir des cas d’utilisation plus complexes, notamment les RAG et les opérations multimodales.
Pure Go : rapide et léger, typé statiquement, pas besoin de jouer avec Python ou JavaScript
Écrivez du code propre et suivez une architecture propre en séparant la logique métier des implémentations concrètes
Créez facilement des opérations personnalisées en implémentant une interface simple
Composez les opérations ensemble en processus avec la possibilité d'observer chaque étape via des intercepteurs
Liaisons de l'API OpenAI (peuvent être utilisées pour n'importe quelle API compatible openai : texte en texte (complétion), texte en image, synthèse vocale, parole en texte
Au cœur de agency se trouve l’ambition de permettre aux utilisateurs de créer des agents autonomes. Bien qu'elle soit parfaite pour toute une gamme d'applications d'IA générative , des interfaces de discussion à l'analyse de données complexes, l'objectif ultime de notre bibliothèque est de simplifier la création de systèmes d'IA autonomes. Que vous créiez des assistants individuels ou coordonniez des essaims d'agents, agency fournit les outils et la flexibilité nécessaires pour donner vie à ces concepts avancés avec facilité et efficacité.
Dans le paysage de l’IA générative, les bibliothèques basées sur Go sont rares. Le plus notable est LangChainGo, un port Go de Python LangChain. Cependant, traduire Python en Go peut s'avérer maladroit et ne pas correspondre au style idiomatique de Go. De plus, certains remettent en question la conception de LangChain, même en Python. Cette situation révèle un besoin évident d’une alternative idiomatique au Go.
Notre objectif est de combler cette lacune avec une bibliothèque centrée sur Go qui met l'accent sur un code propre et simple et évite les complexités inutiles. agency est conçue avec un noyau petit et robuste, facile à étendre et parfaitement adapté aux atouts de Go en matière de frappe statique et de performances. C'est notre réponse au manque de solutions Go-native en matière d'IA générative.
Dans les prochaines versions :