Konfigurieren und implementieren Sie ganz einfach einen vollständig selbst gehosteten Chatbot-Webdienst, der auf Open-Source-LLMs (Large Language Models) wie Mixtral oder Llama 2 basiert, ohne dass Kenntnisse im maschinellen Lernen erforderlich sind.
pip
Paket? oder docker
Image?LangChain
und llama.cpp
zur lokalen Durchführung von Inferenzen.Weitere Informationen zur Verwendung von Libre Chat finden Sie in der Dokumentation unter vemonet.github.io/libre-chat
Warnung
Dieses Projekt ist noch in Arbeit und sollte daher mit Vorsicht verwendet werden.
Bei diesen Kontrollpunkten handelt es sich um Funktionen, an denen wir in Zukunft arbeiten möchten. Wenn Sie Kommentare oder Wünsche haben, teilen Sie uns dies bitte in den Ausgaben mit.
Wenn Sie es nur schnell mit dem vorab trainierten Modell Mixtral-8x7B-Instruct
bereitstellen möchten, können Sie Docker verwenden:
docker run -it -p 8000:8000 ghcr.io/vemonet/libre-chat:main
Sie können die Bereitstellung mithilfe von Umgebungsvariablen konfigurieren. Um dies einfacher zu machen, ist die Verwendung von docker compose
und einer .env
Datei erforderlich. Erstellen Sie zunächst die Datei docker-compose.yml
:
version : " 3 "
services :
libre-chat :
image : ghcr.io/vemonet/libre-chat:main
volumes :
# ️ Share folders from the current directory to the /data dir in the container
- ./chat.yml:/data/chat.yml
- ./models:/data/models
- ./documents:/data/documents
- ./embeddings:/data/embeddings
- ./vectorstore:/data/vectorstore
ports :
- 8000:8000
Und erstellen Sie eine chat.yml
Datei mit Ihrer Konfiguration im selben Ordner wie docker-compose.yml
:
llm :
model_path : ./models/mixtral-8x7b-instruct-v0.1.Q2_K.gguf
model_download : https://huggingface.co/TheBloke/Mixtral-8x7B-Instruct-v0.1-GGUF/resolve/main/mixtral-8x7b-instruct-v0.1.Q2_K.gguf
temperature : 0.01 # Config how creative, but also potentially wrong, the model can be. 0 is safe, 1 is adventurous
max_new_tokens : 1024 # Max number of words the LLM can generate
# Always use input for the human input variable with a generic agent
prompt_variables : [input, history]
prompt_template : |
Your are an assistant, please help me
{history}
User: {input}
AI Assistant:
vector :
vector_path : null # Path to the vectorstore to do QA retrieval, e.g. ./vectorstore/db_faiss
# Set to null to deploy a generic conversational agent
vector_download : null
embeddings_path : ./embeddings/all-MiniLM-L6-v2 # Path to embeddings used to generate the vectors, or use directly from HuggingFace: sentence-transformers/all-MiniLM-L6-v2
embeddings_download : https://public.ukp.informatik.tu-darmstadt.de/reimers/sentence-transformers/v0.2/all-MiniLM-L6-v2.zip
documents_path : ./documents # Path to documents to vectorize
chunk_size : 500 # Maximum size of chunks, in terms of number of characters
chunk_overlap : 50 # Overlap in characters between chunks
chain_type : stuff # Or: map_reduce, reduce, map_rerank. More details: https://docs.langchain.com/docs/components/chains/index_related_chains
search_type : similarity # Or: similarity_score_threshold, mmr. More details: https://python.langchain.com/docs/modules/data_connection/retrievers/vectorstore
return_sources_count : 2 # Number of sources to return when generating an answer
score_threshold : null # If using the similarity_score_threshold search type. Between 0 and 1
info :
title : " Libre Chat "
version : " 0.1.0 "
description : |
Open source and free chatbot powered by [LangChain](https://python.langchain.com) and [llama.cpp](https://github.com/ggerganov/llama.cpp)
examples :
- What is the capital of the Netherlands?
- Which drugs are approved by the FDA to mitigate Alzheimer symptoms?
- How can I create a logger with timestamp using python logging?
favicon : https://raw.github.com/vemonet/libre-chat/main/docs/docs/assets/logo.png
repository_url : https://github.com/vemonet/libre-chat
public_url : https://chat.semanticscience.org
contact :
name : Vincent Emonet
email : [email protected]
license_info :
name : MIT license
url : https://raw.github.com/vemonet/libre-chat/main/LICENSE.txt
Starten Sie schließlich Ihren Chat-Dienst mit:
docker compose up
Dieses Paket erfordert Python >=3.8, installieren Sie es einfach mit pipx
oder pip
:
pip install libre-chat
Sie können über Ihr Terminal ganz einfach einen neuen Chat-Webdienst inklusive Benutzeroberfläche und API starten:
libre-chat start
Geben Sie eine bestimmte Konfigurationsdatei an:
libre-chat start config/chat-vectorstore-qa.yml
Zum Neuaufbau des Vectorstores:
libre-chat build --vector vectorstore/db_faiss --documents documents
Erhalten Sie einen vollständigen Überblick über die verfügbaren Optionen mit:
libre-chat --help
Oder Sie können dieses Paket in Python-Skripten verwenden:
import logging
import uvicorn
from libre_chat import ChatConf , ChatEndpoint , Llm
logging . basicConfig ( level = logging . getLevelName ( "INFO" ))
conf = ChatConf (
model_path = "./models/mixtral-8x7b-instruct-v0.1.Q2_K.gguf" ,
vector_path = None
)
llm = Llm ( conf = conf )
print ( llm . query ( "What is the capital of the Netherlands?" ))
# Create and deploy a FastAPI app based on your LLM
app = ChatEndpoint ( llm = llm , conf = conf )
uvicorn . run ( app )
Inspiriert von:
Lama-Symbole erstellt von Freepik – Flaticon