깨끗하고 효과적이며 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-native 솔루션이 부족하다는 점에 대한 우리의 대답입니다.
다음 버전에서는: