Descripción general del repositorio
Este repositorio demuestra la integración de Chroma DB, una base de datos de vectores, con modelos de incrustación para desarrollar un sistema de generación aumentada de recuperación (RAG) robusta.
Incrusco de opciones de modelo
Integración de re-ranker (HTTP, GRPC)
Para mejorar la precisión de RAG, podemos incorporar modelos de re-rankers de Huggingface. Estos modelos evalúan la similitud entre una consulta y los resultados de la consulta retenidos de VectordB, el re-ranker clasifica los resultados mediante el índice asegurando que la información recuperada sea relevante y contextualmente precisa.
Example:
query := " What is Deep Learning? "
retrievedResults := []string{ " Tomatos are fruits... " , " Deep Learning is not... " , " Deep learning is... " }
Response: [{ " index " :2, " score " :0.9987814},{ " index " :1, " score " :0.022949383},{ " index " :0, " score " :0.000076250595}]Este repositorio demuestra cómo combinar la incrustación y la reorganización para desarrollar un sistema RAG.
Configurar la base de datos Vector :
Documentos de preprocesamiento :
Store incrustaciones :
Procesamiento de consultas :
Integrar con el proveedor de LLM :
Crear plantilla de inmediato :
Proceso con LLM :
Esto permite mejorar las tareas de procesamiento del lenguaje aprovechando el poder de las bases de datos vectoriales y los modelos de incrustación avanzados.
<|user|> what is mirostat_tau?</s>:-
Based on the provided content, I can answer your query.
** Query Result: ** Mirostat_tau Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)
** Document Content: **
mirostat_tau Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text. (Default: 5.0)
float
mirostat_tau 5.0
** Additional Information on this Topic: **
Here are three main points related to Mirostat_tau:
1. ** Coherence vs Diversity: ** Mirostat_tau controls the balance between coherence and diversity of the output, which means it determines how focused or creative the generated text will be.
2. ** Lower Values Mean More Focus: ** A lower value for mirostat_tau results in more focused and coherent text, while a higher value allows for more diverse and potentially less coherent output.
3. ** Default Value: ** The default value for Mirostat_tau is 5.0, which means that if no specific value is provided, the model will generate text with a balance between coherence and diversity.
Please note that these points are based solely on the provided content and do not go beyond it.% git clone https://github.com/yourusername/chroma-db.git
cd chroma-dbgo build -o chroma-db cmd/main.go Asegúrese de que se instalen Docker y Docker Compose. Use docker-compose.yaml para configurar el servicio Chroma DB.
docker-compose up -d./chroma-db
Usage
-load
Load and embed the data in vectordb
Provide the path to file Eg: " test/model_params.txt "
-query
Query the embedded data and rerank the results
Provide the query Eg: " what is the difference between mirostat_tau and mirostat_eta? " CMD/ :
internas/ constantes/ :
Docker-compose.yaml : Docker Compose Archue de configuración para configurar el servicio DB Chroma.
Ajuste los valores de configuración en internal/constants/constants.go . Esto incluye configuraciones como:
URL de DB de Chroma, nombre del inquilino, base de datos y espacio de nombres. Tipo de modelo Ollama y URL.
< | system | > {{ . SystemPrompt }} < / s >
< | content | > {{ . Content }} < / s >
< | user | > {{ . Prompt }} < / s > Inicie el vectordb con el siguiente comando:
docker compose upEjecutar operaciones relacionadas con el chat:
go run ./cmd/main.go Los valores de configuración predeterminados se proporcionan en internal/constants/constants.go Algunos de estos incluyen:
ChromaUrl , TenantName , Database , NamespaceOllamaModel y OllamaUrlEste proyecto tiene licencia bajo la licencia BSD 3 cláusula: consulte el archivo de licencia para obtener más detalles.
Para cualquier problema o contribución, abra un problema o envíe una solicitud de extracción en GitHub.