chat-with-your-doc เป็นแอปพลิเคชั่นสาธิตที่ใช้ประโยชน์จากความสามารถของ CHATGPT/GPT-4 และ Langchain เพื่อให้ผู้ใช้สามารถแชทกับเอกสารของพวกเขา ที่เก็บนี้เป็นโฮสต์ codebase คำแนะนำและทรัพยากรที่จำเป็นในการตั้งค่าและเรียกใช้แอปพลิเคชัน
เป้าหมายหลักของโครงการนี้คือการทำให้การโต้ตอบกับเอกสารง่ายขึ้นและแยกข้อมูลที่มีค่าด้วยการใช้ภาษาธรรมชาติ โครงการนี้สร้างขึ้นโดยใช้ Langchain และ GPT-4/ChatGPT เพื่อมอบประสบการณ์การสนทนาที่ราบรื่นและเป็นธรรมชาติให้กับผู้ใช้โดยสนับสนุนทั้ง Azure OpenAI Services และ OpenAI

Azure OpenAI Services และ OpenAI
แนะนำให้ติดตั้งบน Ubuntu แทน centos/debian ดูปัญหา #12
ในการเริ่มต้นด้วย Chat-with-your-doc ทำตามขั้นตอนเหล่านี้:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docสร้างสภาพแวดล้อมเสมือนจริง:
python3 -m venv .venv
source .venv/bin/activateติดตั้ง Depenancies:
pip install -r requirements.txtในโครงการนี้เราสนับสนุนทั้ง API จาก Openai และ Azure Openai Service มีตัวแปร Environmnet บางตัวที่พบได้ทั่วไปสำหรับ API ทั้งสองในขณะที่บางตัวไม่ซ้ำกัน ตารางต่อไปนี้แสดงรายการ env vars ทั้งหมดที่รองรับ:
| ตัวแปรสภาพแวดล้อม | Azure Openai Service | Openai |
|---|---|---|
| openai_api_base | ||
| openai_api_key | ||
| openai_gpt_deployment_name | ||
| openai_embedding_deployment_name | ||
| chat_model_name | ||
| request_timeout | ||
| vectordb_path | ||
| อุณหภูมิ | ||
| chunk_size | ||
| chunk_overlap |
.env ในรูท DIR และตั้งค่าตัวแปรสภาพแวดล้อมในไฟล์: OPENAI_API_BASE=https://your-endpoint.openai.azure.com
OPENAI_API_KEY=your-key-here
OPENAI_GPT_DEPLOYMENT_NAME=your-gpt-deployment-name
OPENAI_EMBEDDING_DEPLOYMENT_NAME=your-embedding-deployment-name
ที่นี่คุณสามารถค้นหาชื่อการปรับใช้สำหรับ GPT และฝัง: 
.env ในรูท DIR และตั้งค่าตัวแปรสภาพแวดล้อมในไฟล์: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
สิ่งนี้จะเริ่มต้นแอปพลิเคชันตาม Streamlit และเปิดอินเทอร์เฟซผู้ใช้ในเว็บเบราว์เซอร์เริ่มต้นของคุณ ตอนนี้คุณสามารถอัปโหลดเอกสารเพื่อสร้างฐานความรู้และเริ่มการสนทนาด้วย
$ streamlit run chat_web_st.py --server.address ' 0.0.0.0 '
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.
You can now view your Streamlit app in your browser.
URL: http://0.0.0.0:8501 ` ` `โปรดทราบว่า Web UI ก่อนหน้าที่สร้างขึ้นโดยใช้ Gradio นั้นเลิกใช้แล้วและไม่ได้รับการดูแลอีกต่อไป คุณสามารถค้นหารหัสในไฟล์ chat_web.py
แอปพลิเคชัน CLI ถูกสร้างขึ้นเพื่อรองรับทั้งคำสั่ง ingest และ chat Python Library typer ใช้เพื่อสร้างอินเทอร์เฟซบรรทัดคำสั่ง
คำสั่งนี้จะใช้เอกสารเป็นอินพุตแยกข้อความสร้าง embeddings และจัดเก็บใน FAISS ที่เก็บเวกเตอร์ ร้านค้าเวกเตอร์จะเป็นร้านค้าในเครื่องสำหรับใช้ในภายหลังสำหรับการแชท

ตัวอย่างเช่นหากคุณต้องการใส่ PDF ทั้งหมดในไดเรกทอรีลงในร้านค้าเวกเตอร์เดียวชื่อ surface คุณสามารถเรียกใช้:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfaceโปรดทราบว่าเส้นทางควรปิดล้อมด้วยเครื่องหมายคำพูดสองครั้งเพื่อหลีกเลี่ยงการขยายตัวของเปลือก
คำสั่งนี้จะเริ่มการแชทแบบโต้ตอบโดยมีเอกสารเป็นฐานความรู้ภายนอกในร้านค้าเวกเตอร์ คุณสามารถเลือกฐานความรู้ที่จะโหลดสำหรับการแชท

เอกสารตัวอย่างสองฉบับเกี่ยวกับพื้นผิวได้รับการจัดเตรียมไว้ในไดเรกทอรี Data/Source_Document และนำเข้าสู่ index การจัดเก็บเวกเตอร์เริ่มต้นที่เก็บไว้ใน Data/Vector_store คุณสามารถเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มการแชทด้วยเอกสาร:
$ python chat_cli.py chatหรือคุณสามารถระบุร้านค้าเวกเตอร์เพื่อโหลดสำหรับการแชท:
$ python chat_cli.py chat --name surface Langchain ใช้ประโยชน์จากการสร้างเวิร์กโฟลว์ที่มีปฏิสัมพันธ์กับ Azure GPT-4 อย่างรวดเร็ว ConversationalRetrievalChain ใช้ในกรณีการใช้งานนี้เพื่อสนับสนุนประวัติการแชท คุณอาจอ้างถึงลิงค์นี้เพื่อดูรายละเอียดเพิ่มเติม
สำหรับ chaintype โดยใช้ stuff เริ่มต้น สำหรับรายละเอียดเพิ่มเติมโปรดดูลิงค์นี้
chat-with-your-doc ได้รับการปล่อยตัวภายใต้ใบอนุญาต MIT ดูไฟล์ LICENSE สำหรับรายละเอียดเพิ่มเติม