Библиотека предназначена для разработчиков, желающих изучить потенциал моделей большого языка (LLM) и другого генеративного искусственного интеллекта с помощью чистого, эффективного и идиоматического подхода Go.
Добро пожаловать в 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.
Пишите чистый код и следуйте чистой архитектуре , отделяя бизнес-логику от конкретных реализаций.
Легко создавайте собственные операции, реализуя простой интерфейс.
Объединяйте операции в процессы с возможностью наблюдения за каждым шагом через перехватчики.
Привязки API OpenAI (можно использовать для любого API, совместимого с OpenAI: текст в текст (завершение), текст в изображение, текст в речь, речь в текст).
В основе agency лежит стремление предоставить пользователям возможность создавать автономных агентов. Хотя наша библиотека идеально подходит для всего спектра генеративных приложений ИИ , от интерфейсов чата до сложного анализа данных, конечная цель нашей библиотеки — упростить создание автономных систем ИИ. Независимо от того, создаете ли вы индивидуального помощника или координируете группу агентов, agency предоставляет инструменты и гибкость, необходимые для простого и эффективного воплощения этих передовых концепций в жизнь.
В сфере генеративного искусственного интеллекта библиотеки на основе Go встречаются редко. Наиболее примечательным из них является LangChainGo, порт Python LangChain на Go. Однако перевод Python на Go может быть неуклюжим и не соответствовать идиоматическому стилю Go. Кроме того, некоторые сомневаются в дизайне LangChain, даже на Python. Эта ситуация демонстрирует явную потребность в идиоматической альтернативе Go.
Наша цель — заполнить этот пробел с помощью Go-ориентированной библиотеки, которая делает упор на чистый, простой код и избегает ненужных сложностей. agency разработано с небольшим, надежным ядром, легко расширяемым и идеально подходит для сильных сторон Go в статической типизации и производительности. Это наш ответ на отсутствие Go-native решений в области генеративного ИИ.
В следующих версиях: