?️? GoLC
Создание приложений Go с помощью LLM за счет возможности компоновки
GoLC — это инновационный проект, во многом вдохновленный проектом LangChain, направленный на создание приложений с использованием моделей большого языка (LLM) с использованием концепции компонуемости. Он предоставляет основу, которая позволяет разработчикам беспрепятственно создавать и интегрировать приложения на основе LLM. Благодаря принципам компоновки GoLC позволяет создавать модульные компоненты на основе LLM, обеспечивая гибкость и расширяемость для разработки мощных приложений обработки языка. Используя возможности LLM и возможности компоновки, GoLC открывает новые возможности для экосистемы Golang для разработки приложений для обработки естественного языка.
Функции
GoLC предлагает ряд функций для улучшения разработки приложений языковой обработки:
- ? LLM и подсказки: GoLC упрощает управление и оптимизацию подсказок и предоставляет универсальный интерфейс для работы с моделями большого языка (LLM). Это упрощает использование LLM в ваших приложениях.
- ? Цепочки: GoLC позволяет создавать последовательности вызовов LLM или других утилит. Он обеспечивает стандартизированный интерфейс для цепочек, обеспечивающий плавную интеграцию с различными инструментами. Кроме того, GoLC предлагает готовые сквозные цепочки, предназначенные для распространенных сценариев применения, что экономит время и усилия на разработку.
- Поисковая дополненная генерация (RAG): GoLC поддерживает определенные типы цепочек, которые взаимодействуют с источниками данных. Эта функция позволяет решать такие задачи, как обобщение длинного текста и ответы на вопросы на основе конкретных наборов данных. С помощью GoLC вы можете использовать возможности RAG для улучшения приложений обработки языков.
- ? Агенты: GoLC дает возможность создавать агентов, которые используют LLM для принятия обоснованных решений, действий, наблюдения за результатами и выполнения итераций до завершения. Включив агентов в свои приложения, вы можете повысить их интеллект и адаптируемость.
- ? Память: GoLC включает в себя функции памяти, которые обеспечивают сохранение состояния между вызовами цепочки или агента. Эта функция позволяет вашим приложениям поддерживать контекст и сохранять важную информацию на протяжении всего конвейера обработки. GoLC предоставляет стандартизированный интерфейс памяти, а также набор реализаций памяти для обеспечения гибкости.
- ? Оценка: GoLC упрощает оценку генеративных моделей, которые традиционно сложно оценить с помощью традиционных показателей. Используя для оценки сами языковые модели, GoLC предлагает новый подход к оценке производительности генеративных моделей.
- ? Модерация: GoLC включает в себя основные функции модерации для повышения безопасности и соответствия приложений языковой обработки. Сюда входит оперативное обнаружение инъекций, обнаружение и редактирование информации, позволяющей установить личность (PII), выявление токсичного содержимого и многое другое.
- ? Обработка документов: GoLC предоставляет комплексные возможности обработки документов, включая загрузку, преобразование и сжатие. Он предлагает универсальный набор инструментов для оптимизации задач, связанных с документами, что делает его идеальным решением для приложений языковой обработки, ориентированных на документы.
Установка
Используйте модули Go, чтобы включить golc в свой проект:
go get github.com/hupe1980/golc
Использование
package main
import (
"context"
"fmt"
"log"
"os"
"github.com/hupe1980/golc"
"github.com/hupe1980/golc/chain"
"github.com/hupe1980/golc/model/chatmodel"
)
func main () {
openai , err := chatmodel . NewOpenAI ( os . Getenv ( "OPENAI_API_KEY" ))
if err != nil {
log . Fatal ( err )
}
conversationChain , err := chain . NewConversation ( openai )
if err != nil {
log . Fatal ( err )
}
ctx := context . Background ()
result1 , err := golc . SimpleCall ( ctx , conversationChain , "What year was Einstein born?" )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result1 )
result2 , err := golc . SimpleCall ( ctx , conversationChain , "Multiply the year by 3." )
if err != nil {
log . Fatal ( err )
}
fmt . Println ( result2 )
}
Выход:
Einstein was born in 1879.
1879 multiplied by 3 equals 5637.
Дополнительные примеры использования см. в разделе примеры.
Содействие
Вклады приветствуются! Не стесняйтесь открыть проблему или отправить запрос на включение любых улучшений или новых функций, которые вы хотели бы видеть.
Ссылки
- https://github.com/langchain-ai/langchain/
- https://www.promptingguide.ai/
Лицензия
Этот проект лицензируется по лицензии MIT. Подробности смотрите в файле ЛИЦЕНЗИИ.