กำหนดค่าและปรับใช้ บริการเว็บแชทบอทที่โฮสต์เองโดยสมบูรณ์ได้ อย่างง่ายดายโดยใช้ Large Language Models (LLM) แบบโอเพ่นซอร์ส เช่น 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
คุณสามารถเริ่มบริการแชทบนเว็บใหม่ รวมถึง UI และ API ได้อย่างง่ายดายโดยใช้เทอร์มินัลของคุณ:
libre-chat start
ระบุไฟล์กำหนดค่าเฉพาะ:
libre-chat start config/chat-vectorstore-qa.yml
สำหรับการสร้าง vectorstore ใหม่:
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