นี่คือซอร์สโค้ดของ www.gptflix.ai
เราจะสร้างบอท GPTFLIX ด้วย OpenAI, Pinecone DB และ Streamlit คุณจะได้เรียนรู้วิธีการเตรียมข้อความเพื่อส่งไปยังรูปแบบการฝัง คุณจะจับภาพการฝังและข้อความที่ส่งคืนจากโมเดลเพื่ออัปโหลดไปยัง Pinecone DB หลังจากนั้นคุณจะตั้งค่าดัชนี Pinecone DB และอัปโหลด OpenAI Embeddings ไปยัง DB สำหรับ BOT เพื่อค้นหา Embeddings
ในที่สุดเราจะตั้งค่าแอพแชทส่วนหน้าของ QA Bot ด้วย Streamlit เมื่อผู้ใช้ถามคำถามบอทบอทจะค้นหาข้อความภาพยนตร์ใน DB Pinecone ของคุณ มันจะตอบคำถามของคุณเกี่ยวกับภาพยนตร์ตามข้อความจากฐานข้อมูล
นี่หมายถึงการนั่งร้านพื้นฐานเพื่อสร้างระบบการแก้ปัญหาความรู้ของคุณเองมันเป็นพื้นฐานที่ยอดเยี่ยมสำหรับตอนนี้!
repo นี้มีซอร์สโค้ด gptflix และคู่มือการปรับใช้ Streamlit
repo นี้ถูกตั้งค่าสำหรับการปรับใช้บน Streamlit คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อมของคุณใน Streamlit เช่นนี้:
แยก Gptflix repo ไปยังบัญชี GitHub ของคุณ
ตั้งค่าบัญชีบน pinecone.io
ตั้งค่าบัญชีบนคลาวด์ Streamlit
สร้างแอพใหม่บน Streamlit เชื่อมโยงไปยังส้อม repo ของคุณบน GitHub จากนั้นชี้แอปไปที่ /chat/main.py
เป็นปฏิบัติการหลัก
ไปที่การตั้งค่าแอปของคุณและนำทางไปยังความลับ ตั้งค่าความลับเช่นนี้:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
ในรูทของโครงการด้วยคีย์ OpenAI API ของคุณบนเครื่องในเครื่องของคุณ PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
สิ่งเหล่านั้นจะต้องเป็นปุ่ม Pinecone และ OpenAi API ของคุณแน่นอน;)
repo นี้ถูกตั้งค่าให้เดินผ่านการสาธิตโดยใช้ข้อมูล MPST ใน /data_samples นี่คือขั้นตอน:
p1.generate_index_mpst.py
เพื่อเตรียมข้อความจาก ./data_sample/d0.mpst_1k_raw.csv
ในรูปแบบที่เราสามารถฉีดเข้าไปในโมเดลและรับการฝัง python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
เพื่อแปลงไฟล์ d1.mpst_1k_converted.csv
ใหม่ของคุณเป็นไฟล์ JSONL พร้อมคำแนะนำในการเรียกใช้คำขอ EMBEDDINGS กับ OpenAI API python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
บนไฟล์ jsonl จาก (2) เพื่อรับการฝัง python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
ด้วยไฟล์ JSONL ใหม่เพื่อสร้าง CSV สวยด้วยข้อความและการฝัง python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
ด้วยการตั้งค่า API และการตั้งค่าฐานข้อมูลของคุณเพื่ออัปโหลดข้อมูลข้อความทั้งหมดและการฝัง python p5.upload_to_pinecone.py
คุณสามารถเรียกใช้แอพได้ในพื้นที่ แต่คุณจะต้องลบภาพ (เส้นทางจะแตกต่างกันใน Streamlit Cloud)
ในขณะนี้มีข้อมูลบางอย่างใน sample_data ทั้งหมดที่นำมาจาก Kaggle เป็นตัวอย่าง
[] เพิ่มหน่วยความจำ: สรุปคำถาม / คำตอบก่อนหน้านี้และเตรียมล่วงหน้าเพื่อให้พร้อม
[] เพิ่มโหมดที่แตกต่างกัน: การค้นหาที่กว้างขึ้นในฐานข้อมูล
[] เพิ่มโหมดที่แตกต่างกัน: โทนเสียง / อักขระ AI สำหรับการตอบกลับ
[] เอกสารที่ดีกว่า
เอกสารที่ดีกว่าเร็ว ๆ นี้! อย่าลังเลที่จะมีส่วนร่วมพวกเขา :)
#ใบอนุญาต
ใบอนุญาต MIT
ลิขสิทธิ์ (c) 2023 Stephan Sturges
ได้รับอนุญาตโดยไม่ต้องเสียค่าใช้จ่ายสำหรับบุคคลใด ๆ ที่ได้รับสำเนาซอฟต์แวร์นี้และไฟล์เอกสารที่เกี่ยวข้อง ("ซอฟต์แวร์") เพื่อจัดการในซอฟต์แวร์โดยไม่มีการ จำกัด รวมถึง แต่ไม่ จำกัด เฉพาะสิทธิ์ในการใช้สำเนาดัดแปลงผสานเผยแพร่เผยแพร่
ประกาศลิขสิทธิ์ข้างต้นและประกาศการอนุญาตนี้จะรวมอยู่ในสำเนาทั้งหมดหรือส่วนสำคัญของซอฟต์แวร์
ซอฟต์แวร์มีให้ "ตามสภาพ" โดยไม่มีการรับประกันใด ๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยรวมถึง แต่ไม่ จำกัด เฉพาะการรับประกันความสามารถในการค้าการออกกำลังกายสำหรับวัตถุประสงค์เฉพาะและการไม่เข้าร่วม ไม่ว่าในกรณีใดผู้เขียนหรือผู้ถือลิขสิทธิ์จะต้องรับผิดชอบต่อการเรียกร้องความเสียหายหรือความรับผิดอื่น ๆ ไม่ว่าจะเป็นการกระทำของสัญญาการละเมิดหรืออื่น ๆ ที่เกิดขึ้นจากหรือเกี่ยวข้องกับซอฟต์แวร์หรือการใช้งานหรือการติดต่ออื่น ๆ ในซอฟต์แวร์