ChATPDF-GPT เป็นโครงการที่เป็นนวัตกรรมที่ควบคุมพลังของกรอบ Langchain ซึ่งเป็นเครื่องมือที่เปลี่ยนแปลงสำหรับการพัฒนาแอพพลิเคชั่นที่ขับเคลื่อนด้วยแบบจำลองภาษา แอปพลิเคชันที่ไม่ซ้ำกันนี้ใช้ Langchain เพื่อนำเสนออินเทอร์เฟซแชทที่สื่อสารกับเอกสาร PDF ซึ่งขับเคลื่อนด้วยความสามารถของโมเดลภาษาของ OpenAI
ในโครงการนี้รูปแบบภาษาเชื่อมต่อกับแหล่งข้อมูลอื่น ๆ และอนุญาตให้มีปฏิสัมพันธ์กับสภาพแวดล้อมของมันดังนั้นจึงเป็นการรวบรวมหลักการของกรอบ Langchain ผู้ใช้สามารถอัปโหลดเอกสาร PDF ซึ่งจะถูกประมวลผลและบันทึกใน Pinecone ฐานข้อมูลเวกเตอร์และที่เก็บข้อมูล Supabase จากนั้นผู้ใช้สามารถแชทกับ PDF ที่อัปโหลดได้โดย AI ใช้เนื้อหาของเอกสารเพื่อมีส่วนร่วมในการสนทนาที่มีความหมาย
โครงการขึ้นอยู่กับ Framework Next.js ซึ่งเป็นตัวเลือกชั้นนำสำหรับการสร้างเว็บแอปพลิเคชันที่แข็งแกร่งและเต็มไปด้วยสแต็ค ส่วนประกอบ UI นั้นถูกสร้างขึ้นอย่างสวยงามโดยใช้ไลบรารี Radix UI และสไตล์ด้วย Tailwind CSS ตามเทมเพลตที่สง่างามที่จัดทำโดย Shadcn/UI
ChATPDF-GPT มีตัวอย่างที่แสดงให้เห็นถึงการดำเนินการต่าง ๆ เช่น:
ในการทดสอบการทำงานของโครงการนี้โดยใช้การสาธิตคุณจะต้องให้ข้อมูลประจำตัวของคุณเองสำหรับ OpenAI, Supabase และ Pinecone สำหรับ Supabase คุณสามารถทำตามคำแนะนำทีละขั้นตอนที่ให้ไว้ด้านล่างเพื่อตั้งค่าและดึงข้อมูลรับรองที่จำเป็น สำหรับการรับข้อมูลรับรองสำหรับ OpenAI และ Pinecone โปรดปรึกษาเอกสารประกอบที่เกี่ยวข้องเป็นคู่มือแบบทีละขั้นตอน ตรวจสอบให้แน่ใจเสมอว่าคุณจะทำตามคำแนะนำล่าสุดที่ให้บริการโดยบริการที่เกี่ยวข้อง
Openai
การสร้างโครงการใหม่ใน Supabase :
การดึง URL การเชื่อมต่อฐานข้อมูล :
สตริงการเชื่อมต่อนี้จะใช้สำหรับตัวแปรสภาพแวดล้อม DATABASE_URL ในแอปพลิเคชันของคุณ
URL นี้จะใช้สำหรับตัวแปรสภาพแวดล้อม DIRECT_URL ในแอปพลิเคชันของคุณ
SUPABASE_URL และ SUPABASE_KEY ของคุณ คัดลอกค่าเหล่านี้ SUPABASE_URL เป็น URL สำหรับโครงการของคุณในขณะที่ SUPABASE_KEY เป็นคีย์นิรนามสาธารณะสำหรับโครงการของคุณ
การตั้งค่าถัง supabase :
SUPABASE_BUCKET ในแอปพลิเคชันของคุณการตั้งค่าตัวแปรสภาพแวดล้อมในแอปพลิเคชันของคุณ :
DATABASE_URLDIRECT_URLSUPABASE_KEYSUPABASE_URLSUPABASE_BUCKETคีย์เหล่านี้จะช่วยให้แอปพลิเคชันของคุณโต้ตอบกับบริการ Supabase
โปรดทราบว่าในขณะที่เป็นไปได้ที่จะกำหนดนโยบายที่ทำให้ถังเก็บข้อมูลของคุณสามารถเข้าถึงได้อย่างเปิดเผยต่อสาธารณะคุณควรทำสิ่งนี้ด้วยความระมัดระวัง การทำให้ถังของคุณเข้าถึงได้อย่างเปิดเผยหมายความว่าทุกคนที่มี URL ไปยังวัตถุสามารถเข้าถึงได้ สิ่งนี้อาจเป็นประโยชน์สำหรับการทดสอบ แต่สำหรับแอปพลิเคชันการผลิตคุณควรพิจารณานโยบายที่เข้มงวดมากขึ้นเพื่อให้แน่ใจว่าข้อมูลความปลอดภัยของคุณ ปรึกษาเอกสาร Supabase หรือผู้เชี่ยวชาญด้านความปลอดภัยเสมอเพื่อทำความเข้าใจกับผลกระทบของนโยบายที่แตกต่างกัน
ด้วยสิ่งนี้คุณควรจะสามารถตั้งค่า Supabase สำหรับโครงการของคุณและจัดการนโยบายการจัดเก็บตามความต้องการของคุณ
Pinecone
ในการตั้งค่าและเรียกใช้ chatpdf-gpt บนเครื่องในเครื่องของคุณทำตามขั้นตอนด้านล่าง:
โคลนพื้นที่เก็บข้อมูลโครงการ:
git clone https://github.com/anis-marrouchi/chatpdf-gpt.git
นำทางไปยังไดเรกทอรีโครงการและติดตั้งการอ้างอิงโดยใช้ PNPM:
cd chatpdf-gpt
pnpm install
สร้างไฟล์ .env ในไดเรกทอรีรูทและกรอกข้อมูลในข้อมูลรับรองของคุณ (openai, pinecone, supabase) ตามที่ระบุไว้ในไฟล์. .env.example
สร้างสคีมาฐานข้อมูลโดยใช้ PRISMA คุณต้องทำให้คุณเรียกใช้ prisma สร้างคำสั่ง prisma generate
npx prisma migrate dev --name init
เริ่มต้นเซิร์ฟเวอร์:
npm run dev
ChATPDF-GPT เป็นโครงการโอเพ่นซอร์สและเรายินดีต้อนรับการมีส่วนร่วมอย่างอบอุ่นจากทุกคน โปรดอ่านคู่มือการสนับสนุนของเราสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเริ่มต้น
โครงการนี้ตั้งอยู่บนไหล่ของยักษ์ งานของเราจะเป็นไปไม่ได้หากไม่มีห้องสมุดกรอบและเครื่องมือที่ชุมชนโอเพ่นซอร์สได้ผลิต โดยเฉพาะเราต้องการแสดงความขอบคุณต่อ:
ทีม Langchain สำหรับกรอบการทำงานที่ก้าวล้ำสำหรับแอพพลิเคชั่นที่ขับเคลื่อนด้วยโมเดลภาษา
OpenAI สำหรับโมเดลภาษาที่ทันสมัยซึ่งทำให้ฟังก์ชั่นการแชทเป็นไปได้
Supabase สำหรับทางเลือก Firebase โอเพนซอร์สซึ่งเราใช้ในการสร้างแบ็กเอนด์ที่ปลอดภัยและมีประสิทธิภาพ
Pinecone สำหรับฐานข้อมูลเวกเตอร์ของพวกเขาที่ช่วยให้การจัดเก็บที่ง่ายและมีประสิทธิภาพและการดึงเวกเตอร์ฝังตัว
Next.js และ Vercel สำหรับกรอบการทำงานที่ครอบคลุมซึ่งทำให้เราสามารถสร้างเว็บแอปพลิเคชันเต็มรูปแบบนี้ได้อย่างง่ายดาย
Shadcn สำหรับส่วนประกอบ UI ที่สง่างามซึ่งเราสร้างขึ้นเพื่อสร้างอินเทอร์เฟซที่สวยงามและใช้งานง่าย
Radix UI สำหรับไลบรารีส่วนประกอบที่แข็งแกร่งเข้าถึงได้และปรับแต่งได้ซึ่งเป็นกระดูกสันหลังของ UI ของเรา
@React-PDF-Viewer สำหรับส่วนประกอบ React ที่ทรงพลังซึ่งช่วยให้ผู้ใช้ดูตัวอย่างเอกสาร PDF จริงที่พวกเขากำลังโต้ตอบกับ
และการพึ่งพาอื่น ๆ ทั้งหมดทั้งในรายการและไม่ได้ระบุไว้ซึ่งมีส่วนทำให้เกิดการตระหนักถึงโครงการนี้ การบริจาคของเรานั้นเรียบง่ายเมื่อเทียบกับความพยายามร่วมกันของพวกเขา
ChATPDF-GPT เป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับอนุญาตภายใต้ใบอนุญาต MIT