يمكنك بسهولة تكوين ونشر خدمة ويب chatbot مستضافة ذاتيًا بالكامل استنادًا إلى نماذج اللغات الكبيرة مفتوحة المصدر (LLMs)، مثل Mixtral أو Llama 2، دون الحاجة إلى المعرفة في التعلم الآلي.
pip
؟ أو صورة docker
؟LangChain
و llama.cpp
لإجراء الاستدلال محليًا.لمزيد من التفاصيل حول كيفية استخدام Libre Chat، راجع الوثائق على vemonet.github.io/libre-chat
تحذير
هذا المشروع قيد التقدم، استخدمه بحذر.
نقاط التفتيش هذه هي ميزات نخطط للعمل عليها في المستقبل، فلا تتردد في إخبارنا بالمشاكل إذا كان لديك أي تعليق أو طلب.
إذا كنت ترغب فقط في نشره بسرعة باستخدام النموذج المُدرب مسبقًا Mixtral-8x7B-Instruct
، فيمكنك استخدام عامل الإرساء:
docker run -it -p 8000:8000 ghcr.io/vemonet/libre-chat:main
يمكنك تكوين النشر باستخدام متغيرات البيئة. للقيام بذلك، يعد استخدام docker compose
وملف .env
أسهل، قم أولاً بإنشاء ملف 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
وقم بإنشاء ملف chat.yml
بالإعدادات الخاصة بك في نفس المجلد مثل 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
أخيرًا ابدأ خدمة الدردشة الخاصة بك مع:
docker compose up
تتطلب هذه الحزمة Python >=3.8، ما عليك سوى تثبيتها باستخدام pipx
أو pip
:
pip install libre-chat
يمكنك بسهولة بدء خدمة ويب جديدة للدردشة بما في ذلك واجهة المستخدم وواجهة برمجة التطبيقات (API) باستخدام جهازك الطرفي:
libre-chat start
قم بتوفير ملف تكوين محدد:
libre-chat start config/chat-vectorstore-qa.yml
لإعادة بناء متجر المتجهات:
libre-chat build --vector vectorstore/db_faiss --documents documents
احصل على ملخص كامل للخيارات المتاحة مع:
libre-chat --help
أو يمكنك استخدام هذه الحزمة في نصوص بايثون:
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 )
مستوحاة من:
أيقونات اللاما التي أنشأتها Freepik - Flaticon