Mengobrol dengan dokumen PDF pribadi Anda.

Tinjauan HighLevel dari aplikasi streamlit ini dengan file.
Klik di sini untuk melewatkan instruksi instalasi



Huxley.py Fungsi main() bertanggung jawab untuk menangani antarmuka pengguna dan memproses file PDF yang diunggah. Berikut ini rincian kode:
Fungsi render_header() dipanggil untuk menampilkan bagian header aplikasi. Ini termasuk judul, deskripsi, dan gambar.
Fungsi sidebar() dipanggil untuk menampilkan bagian sidebar dari aplikasi. Ini termasuk informasi tentang huxleypdf, instruksi tentang cara menggunakannya, dan bidang input untuk kunci API OpenAI.
Fungsi setup_environment() dipanggil untuk mengatur lingkungan. Saat ini, hanya mencetak pesan yang menunjukkan bahwa pengaturan sedang berlangsung.
Fungsi st.file_uploader() digunakan untuk mengunggah file PDF. Pengguna diminta untuk memilih file dengan deskripsi "Unggah PDF Anda" dan filter jenis file diatur ke "PDF".
Kode kemudian mengambil file PDF jarak jauh menggunakan kelas OnlinePDFLoader dari perpustakaan yang tidak terstruktur. Ini dikomentari untuk saat ini.
Jika file PDF diunggah, kode mengekstrak teks dari PDF menggunakan kelas PdfReader dari pustaka PYMUPDF.
Teks yang diekstraksi dibagi menjadi potongan -potongan menggunakan kelas CharacterTextSplitter dari pustaka Langchain. Ukuran chunk diatur ke 400 karakter, dan tumpang tindih antara potongan diatur ke 80 karakter.
Kelas OpenAIEmbeddings digunakan untuk membuat embeddings untuk potongan teks.
Fungsi FAISS.from_texts() digunakan untuk membuat indeks FAISS dari potongan teks dan embedding mereka. Ini dikomentari untuk saat ini.
Pengguna diminta untuk memasukkan pertanyaan tentang PDF menggunakan fungsi st.text_input() .
Jika sebuah pertanyaan dimasukkan, kode tersebut mengambil dokumen dari indeks FAISS yang paling mirip dengan pertanyaan pengguna menggunakan metode similarity_search() .
Kelas OpenAI() digunakan untuk membuat instance dari API OpenAI.
Fungsi load_qa_chain() digunakan untuk membuat rantai pertanyaan-imbalan menggunakan API OpenAI dan jenis rantai "Stuff".
Manajer konteks get_openai_callback() digunakan untuk menangkap informasi panggilan balik dari API OpenAI.
Metode chain.run() digunakan untuk menjalankan rantai pertanyaan pada dokumen input dan pertanyaan pengguna. Respons dicetak.
Respons ditampilkan menggunakan fungsi st.write() .
Secara keseluruhan, kode dalam fungsi main() menangani antarmuka pengguna, memproses file PDF yang diunggah, dan melakukan tugas yang dianugerahi pertanyaan menggunakan API OpenAI dan Perpustakaan Langchain.