readme
โดยปกติแล้ว readme นี้จะจัดทำเอกสารทุกขั้นตอนที่จำเป็นเพื่อให้แอปพลิเคชันของคุณทำงานได้
สแต็คเทคโนโลยี
- Python 3.9
- Fastapi
- faiss-cpu == 1.7.4
- langchain == 0.0.207
- Pinecone-client
- pgvector
การบูรณาการของบุคคลที่สาม
- SendGrid - ส่งอีเมล
- youtube-transcript-api-รับข้อความ youtube url
- docx2txt - รับข้อความจากไฟล์ docx
- pypdf - รับข้อความจากไฟล์ pdf
- ซีลีเนียม -รับข้อความจากไฟล์ URL
- ตัวโหลดเอกสารอื่น ๆ และการแยกวิเคราะห์ข้อมูล Librarires
การตั้งค่าโครงการ
ติดตั้งการพึ่งพาในไฟล์ข้อกำหนด
- PIP Install -r rechent.txt
เพิ่ม OpenAI และคีย์ API อื่น ๆ ในไฟล์ Env
ดูตัวอย่าง env สำหรับชื่อตัวแปรและใช้ backend.env เป็นไฟล์ env จริง
กำหนดค่าตัวแปรคงที่ในค่าคงที่ py ตามกรณีการใช้งานของคุณ
การกำหนดค่าฐานข้อมูลเวกเตอร์:
- กำหนดค่าแอปพลิเคชันตามฐานข้อมูลเวกเตอร์ของคุณ
แนวทางเพิ่มเติม:
- เปลี่ยนวิธีการแยกวิเคราะห์ข้อมูลตามความต้องการที่กำหนดเองของคุณ
- เปลี่ยนตัวแปรคงที่ตามกรณีการใช้งาน
- แก้ไขรหัสหม้อไอน้ำสำหรับกรณีการใช้งานเฉพาะโครงการของคุณ
คุณสมบัติ
- จุดสิ้นสุดและประโยชน์สำหรับฟังก์ชั่นทั่วไป
- สร้าง Embeddings Vector - จากวิดีโอ YouTube, หน้า html, sitemaps, url, pdf, docx, json, ไฟล์ข้อความ, CSV หรือฐานข้อมูลเชิงสัมพันธ์
- คำถามและคำตอบตามข้อมูลที่กำหนดเองด้วยแหล่งข้อมูลที่แน่นอน
- จำนวนโทเค็นและโทเค็นเกินกว่าการจัดการข้อผิดพลาดกับ tiktoken
- การรองรับ DB เวกเตอร์ที่แตกต่างกันสำหรับจุดสิ้นสุดที่แตกต่างกัน
การปรับปรุงในอนาคต
- สตรีมการตอบสนอง OpenAI แบบเรียลไทม์
- เพิ่มฟังก์ชั่นสาธารณูปโภคและปรับปรุงการทำงานของโปรแกรมที่มีอยู่
- ทำให้รหัสมากขึ้นและกำหนดค่าได้
ความผิด
- pycharm
- รหัส VS
- ข้อความประเสริฐ
การตั้งค่าโครงการ
- สรุปการตั้งค่า
- การกำหนดค่า
- การพึ่งพาอาศัยกัน
- การกำหนดค่าฐานข้อมูล
- วิธีเรียกใช้การทดสอบ
- คำแนะนำการปรับใช้
การเขียนโค้ด
- pep8
- เขียนโค้ดแบบแยกส่วนและกำหนดค่าได้
- อย่าใส่รหัสความคิดเห็นหรือการนำเข้าที่ไม่ได้ใช้ในรหัสหลัก
- ควรใช้การนำเข้าสัมบูรณ์แทนการนำเข้าสัมพัทธ์
- การใช้ f-strings แทน. format () หรือ %s
- ชื่อคลาสควรอยู่ในแคมเคลเคส
- ชื่อฟังก์ชั่นและชื่อตัวแปรควรอยู่ใน Snake_case
- การใช้คำแนะนำประเภท
- การใช้เอกสาร
- การใช้การบันทึก
แนวทางการบริจาค
- การเขียนแบบทดสอบ
- รีวิวรหัส
- แนวทางอื่น ๆ
Redis Integation
- ติดตั้ง Redis: PIP ติดตั้ง Redis Aioredis
- ตรึงข้อกำหนด: pip freeze> ข้อกำหนด. txt
- เพิ่ม redis_host_url ในไฟล์. env
- อินสแตนซ์ Redis ถูกสร้างขึ้นในไฟล์ main.py ในเหตุการณ์ on_startup
การบูรณาการขึ้นฉ่าย
- ติดตั้งคื่นฉ่าย: PIP ติดตั้งคื่นฉ่าย
- ตรึงข้อกำหนด: pip freeze> ข้อกำหนด. txt
- เพิ่ม celery_broker_url ในไฟล์. env
- อินสแตนซ์ขึ้นฉ่ายถูกสร้างขึ้นใน Core Module ใน Celery_App
- งานขึ้นฉ่ายถูกสร้างขึ้นในโมดูลคนงานในไดเรกทอรีราก
- คนงานคื่นฉ่ายเริ่มใช้คำสั่ง: คื่นฉ่าย -a app.worker worker -l info -c 1
คื่นฉ่าย Beat Beat Integration
- ติดตั้งคื่นฉ่าย: PIP ติดตั้งคื่นฉ่าย
- ตรึงข้อกำหนด: pip freeze> ข้อกำหนด. txt
- อินสแตนซ์ Celery Beat ถูกสร้างขึ้นในโมดูลคนงานในไดเรกทอรีรูทไดเรกทอรี
- ในขณะที่เพิ่มงานใหม่ให้เพิ่มในโมดูลคนงานในไดเรกทอรีรากด้วยเวลาที่กำหนดไว้ในไม่กี่วินาที
- Celery Beat เริ่มใช้คำสั่ง: คื่นฉ่าย -a app.worker beat -l ข้อมูล
การรวมยาม
- ติดตั้ง Sentry SDK: PIP ติดตั้ง Sentry-SDK
- ตรึงข้อกำหนด: pip freeze> ข้อกำหนด. txt
- อินสแตนซ์ Sentry ถูกสร้างขึ้นในไฟล์ main.py