แชทกับเอกสาร PDF ส่วนตัวของคุณ

ภาพรวมระดับสูงของแอพ streamlit นี้ตามไฟล์
คลิกที่นี่เพื่อข้ามไปยังคำแนะนำการติดตั้ง



Huxley.py ฟังก์ชั่น main() รับผิดชอบในการจัดการส่วนต่อประสานผู้ใช้และประมวลผลไฟล์ PDF ที่อัปโหลด นี่คือรายละเอียดของรหัส:
ฟังก์ชั่น render_header() ถูกเรียกให้แสดงส่วนส่วนหัวของแอปพลิเคชัน มันมีชื่อเรื่องคำอธิบายและภาพ
ฟังก์ชั่น sidebar() ถูกเรียกให้แสดงส่วนแถบด้านข้างของแอปพลิเคชัน มันมีข้อมูลเกี่ยวกับ huxleypdf, คำแนะนำเกี่ยวกับวิธีการใช้งานและฟิลด์อินพุตสำหรับคีย์ OpenAI API
ฟังก์ชั่น setup_environment() ถูกเรียกให้ตั้งค่าสภาพแวดล้อม ขณะนี้พิมพ์ข้อความเท่านั้นที่ระบุว่าการตั้งค่ากำลังดำเนินการ
ฟังก์ชั่น st.file_uploader() ใช้เพื่ออัปโหลดไฟล์ PDF ผู้ใช้จะได้รับแจ้งให้เลือกไฟล์พร้อมคำอธิบาย "อัปโหลด PDF ของคุณ" และตัวกรองประเภทไฟล์ที่ตั้งค่าเป็น "PDF"
จากนั้นรหัสจะดึงไฟล์ PDF ระยะไกลโดยใช้คลาส OnlinePDFLoader จากไลบรารีที่ไม่มีโครงสร้าง นี่คือความคิดเห็นในตอนนี้
หากอัปโหลดไฟล์ PDF รหัสจะแยกข้อความจาก PDF โดยใช้คลาส PdfReader จากไลบรารี PYMUPDF
ข้อความที่แยกออกมาจะถูกแบ่งออกเป็นชิ้นโดยใช้คลาส CharacterTextSplitter จากไลบรารี Langchain ขนาดก้อนถูกตั้งค่าเป็น 400 อักขระและการทับซ้อนระหว่างชิ้นถูกตั้งค่าเป็น 80 อักขระ
คลาส OpenAIEmbeddings ใช้เพื่อสร้าง embeddings สำหรับชิ้นข้อความ
ฟังก์ชั่น FAISS.from_texts() ใช้เพื่อสร้างดัชนี FAISS จากชิ้นข้อความและการฝังตัวของพวกเขา นี่คือความคิดเห็นในตอนนี้
ผู้ใช้ได้รับแจ้งให้ป้อนคำถามเกี่ยวกับ PDF โดยใช้ฟังก์ชัน st.text_input()
หากมีการป้อนคำถามรหัสจะดึงเอกสารจากดัชนี FAISS ที่คล้ายกับคำถามของผู้ใช้มากที่สุดโดยใช้วิธีการ similarity_search()
คลาส OpenAI() ใช้เพื่อสร้างอินสแตนซ์ของ OpenAI API
ฟังก์ชั่น load_qa_chain() ใช้เพื่อสร้างห่วงโซ่การตอบคำถามโดยใช้ OpenAI API และประเภทโซ่ "สิ่งของ"
ตัวจัดการบริบท get_openai_callback() ใช้เพื่อบันทึกข้อมูลการโทรกลับจาก OpenAI API
วิธี chain.run() ใช้ในการเรียกใช้ห่วงโซ่การตอบคำถามบนเอกสารอินพุตและคำถามของผู้ใช้ พิมพ์คำตอบ
การตอบสนองจะปรากฏขึ้นโดยใช้ฟังก์ชัน st.write()
โดยรวมแล้วรหัสภายในฟังก์ชั่น main() จัดการส่วนต่อประสานผู้ใช้ประมวลผลไฟล์ PDF ที่อัปโหลดและดำเนินการตอบคำถามโดยใช้ OpenAI API และไลบรารี Langchain