?️? GoLC
Creación de aplicaciones Go con LLM a través de la componibilidad
GoLC es un proyecto innovador fuertemente inspirado en el proyecto LangChain, cuyo objetivo es crear aplicaciones con modelos de lenguaje grandes (LLM) aprovechando el concepto de componibilidad. Proporciona un marco que permite a los desarrolladores crear e integrar aplicaciones basadas en LLM sin problemas. A través de los principios de componibilidad, GoLC permite la construcción modular de componentes basados en LLM, ofreciendo flexibilidad y extensibilidad para desarrollar potentes aplicaciones de procesamiento de lenguaje. Al aprovechar las capacidades de los LLM y adoptar la componibilidad, GoLC brinda nuevas oportunidades al ecosistema de Golang para el desarrollo de aplicaciones de procesamiento del lenguaje natural.
Características
GoLC ofrece una variedad de funciones para mejorar el desarrollo de aplicaciones de procesamiento del lenguaje:
- ? LLM y avisos: GoLC simplifica la gestión y optimización de avisos y proporciona una interfaz genérica para trabajar con modelos de lenguaje grande (LLM). Esto simplifica la utilización de LLM en sus aplicaciones.
- ? Cadenas: GoLC permite la creación de secuencias de llamadas a LLM u otras utilidades. Proporciona una interfaz estandarizada para cadenas, lo que permite una integración perfecta con varias herramientas. Además, GoLC ofrece cadenas de extremo a extremo prediseñadas diseñadas para escenarios de aplicaciones comunes, lo que ahorra tiempo y esfuerzo de desarrollo.
- Recuperación de generación aumentada (RAG): GoLC admite tipos específicos de cadenas que interactúan con fuentes de datos. Esta funcionalidad permite tareas como resumir textos extensos y responder preguntas basadas en conjuntos de datos específicos. Con GoLC, puede aprovechar las capacidades de RAG para mejorar sus aplicaciones de procesamiento de lenguaje.
- ? Agentes: GoLC permite la creación de agentes que aprovechan los LLM para tomar decisiones informadas, emprender acciones, observar resultados e iterar hasta su finalización. Al incorporar agentes a sus aplicaciones, puede mejorar su inteligencia y adaptabilidad.
- ? Memoria: GoLC incluye funcionalidad de memoria que facilita la persistencia del estado entre llamadas en cadena o de agente. Esta característica permite que sus aplicaciones mantengan el contexto y retengan información importante durante todo el proceso de procesamiento. GoLC proporciona una interfaz de memoria estandarizada junto con una selección de implementaciones de memoria para mayor flexibilidad.
- ? Evaluación: GoLC simplifica la evaluación de modelos generativos, que tradicionalmente son difíciles de evaluar utilizando métricas convencionales. Al utilizar los propios modelos de lenguaje para la evaluación, GoLC proporciona un enfoque novedoso para evaluar el desempeño de los modelos generativos.
- ? Moderación: GoLC incorpora funcionalidades de moderación esenciales para mejorar la seguridad y la idoneidad de las aplicaciones de procesamiento del lenguaje. Esto incluye detección rápida de inyecciones, detección y redacción de información de identificación personal (PII), identificación de contenido tóxico y más.
- ? Procesamiento de documentos: GoLC proporciona capacidades integrales de procesamiento de documentos, que incluyen carga, transformación y compresión. Ofrece un conjunto versátil de herramientas para optimizar las tareas relacionadas con documentos, lo que la convierte en una solución ideal para aplicaciones de procesamiento de lenguaje centradas en documentos.
Instalación
Utilice los módulos Go para incluir golc en su proyecto:
go get github.com/hupe1980/golc
Uso
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 )
}
Producción:
Einstein was born in 1879.
1879 multiplied by 3 equals 5637.
Para obtener más ejemplos de uso, consulte los ejemplos.
Contribuyendo
¡Las contribuciones son bienvenidas! No dude en abrir un problema o enviar una solicitud de extracción para conocer cualquier mejora o característica nueva que le gustaría ver.
Referencias
- https://github.com/langchain-ai/langchain/
- https://www.promptingguide.ai/
Licencia
Este proyecto está bajo la licencia MIT. Consulte el archivo de LICENCIA para obtener más detalles.