embedchain เป็นเฟรมเวิร์กสำหรับสร้างบอทที่ขับเคลื่อนด้วย LLM บนชุดข้อมูลใดๆ ได้อย่างง่ายดาย embedchainjs คือ embedchain เวอร์ชัน Javascript หากคุณต้องการเวอร์ชัน Python ลองดูที่ embedchain-python
กำหนดเวลาเซสชันคำติชมกับ Taranjeet ผู้ก่อตั้ง เพื่อหารือเกี่ยวกับปัญหาต่างๆ ให้ข้อเสนอแนะ หรือสำรวจการปรับปรุง
โดยจะสรุปกระบวนการทั้งหมดของการโหลดชุดข้อมูล แยกเป็นชิ้น สร้างการฝัง และจัดเก็บไว้ในฐานข้อมูลเวกเตอร์
คุณสามารถเพิ่มชุดข้อมูลเดียวหรือหลายชุดได้โดยใช้ฟังก์ชัน .add
และ .addLocal
จากนั้นใช้ฟังก์ชัน .query
เพื่อค้นหาคำตอบจากชุดข้อมูลที่เพิ่มเข้ามา
หากคุณต้องการสร้างบอท Naval Ravikant ซึ่งมี 2 โพสต์ในบล็อกของเขา รวมถึงคู่คำถามและคำตอบที่คุณระบุ สิ่งที่คุณต้องทำคือเพิ่มลิงก์ไปยังโพสต์ในบล็อก จากนั้นคู่ QnA และ embedchain จะสร้าง บอทสำหรับคุณ
const dotenv = require ( "dotenv" ) ;
dotenv . config ( ) ;
const { App } = require ( "embedchain" ) ;
//Run the app commands inside an async function only
async function testApp ( ) {
const navalChatBot = await App ( ) ;
// Embed Online Resources
await navalChatBot . add ( "web_page" , "https://nav.al/feedback" ) ;
await navalChatBot . add ( "web_page" , "https://nav.al/agi" ) ;
await navalChatBot . add (
"pdf_file" ,
"https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf"
) ;
// Embed Local Resources
await navalChatBot . addLocal ( "qna_pair" , [
"Who is Naval Ravikant?" ,
"Naval Ravikant is an Indian-American entrepreneur and investor." ,
] ) ;
const result = await navalChatBot . query (
"What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts?"
) ;
console . log ( result ) ;
// answer: Naval argues that humans possess the unique capacity to understand explanations or concepts to the maximum extent possible in this physical reality.
}
testApp ( ) ;
npm
npm install embedchain && npm install -S openai@^3.3.0
ปัจจุบันใช้งานได้กับ openai 3.X เท่านั้น ไม่ใช่เวอร์ชันล่าสุด 4.X โปรดตรวจสอบให้แน่ใจว่าใช้เวอร์ชันที่ถูกต้อง ไม่เช่นนั้นคุณจะเห็นข้อผิดพลาด ChromaDB
TypeError: OpenAIApi.Configuration is not a constructor
ตรวจสอบให้แน่ใจว่าได้ติดตั้งแพ็คเกจ dotenv และ OPENAI_API_KEY
ของคุณในไฟล์ชื่อ .env
ในโฟลเดอร์รูท คุณสามารถติดตั้ง dotenv ได้โดย
npm install dotenv
ดาวน์โหลดและติดตั้ง Docker บนอุปกรณ์ของคุณโดยไปที่ลิงก์นี้ คุณจะต้องใช้สิ่งนี้เพื่อเรียกใช้ฐานข้อมูลเวกเตอร์ Chroma บนเครื่องของคุณ
เรียกใช้คำสั่งต่อไปนี้เพื่อตั้งค่าคอนเทนเนอร์ Chroma ใน Docker
git clone https://github.com/chroma-core/chroma.git
cd chroma
docker-compose up -d --build
เราใช้โมเดลการฝังของ OpenAI เพื่อสร้างการฝังสำหรับชิ้นส่วนและ ChatGPT API เป็น LLM เพื่อรับคำตอบจากเอกสารที่เกี่ยวข้อง ตรวจสอบให้แน่ใจว่าคุณมีบัญชี OpenAI และคีย์ API หากคุณไม่มีคีย์ API คุณสามารถสร้างได้โดยไปที่ลิงก์นี้
เมื่อคุณมีคีย์ API แล้ว ให้ตั้งค่าในตัวแปรสภาพแวดล้อมชื่อ OPENAI_API_KEY
// Set this inside your .env file
OPENAI_API_KEY = "sk-xxxx" ;
const dotenv = require ( "dotenv" ) ;
dotenv . config ( ) ;
App
จาก embedchain และใช้ฟังก์ชัน .add
เพื่อเพิ่มชุดข้อมูลใด ๆ.query
เพื่อรับคำตอบสำหรับคำถามใดๆ ได้ const dotenv = require ( "dotenv" ) ;
dotenv . config ( ) ;
const { App } = require ( "embedchain" ) ;
async function testApp ( ) {
const navalChatBot = await App ( ) ;
// Embed Online Resources
await navalChatBot . add ( "web_page" , "https://nav.al/feedback" ) ;
await navalChatBot . add ( "web_page" , "https://nav.al/agi" ) ;
await navalChatBot . add (
"pdf_file" ,
"https://navalmanack.s3.amazonaws.com/Eric-Jorgenson_The-Almanack-of-Naval-Ravikant_Final.pdf"
) ;
// Embed Local Resources
await navalChatBot . addLocal ( "qna_pair" , [
"Who is Naval Ravikant?" ,
"Naval Ravikant is an Indian-American entrepreneur and investor." ,
] ) ;
const result = await navalChatBot . query (
"What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts?"
) ;
console . log ( result ) ;
// answer: Naval argues that humans possess the unique capacity to understand explanations or concepts to the maximum extent possible in this physical reality.
}
testApp ( ) ;
const { App : EmbedChainApp } = require ( "embedchain" ) ;
// or
const { App : ECApp } = require ( "embedchain" ) ;
เรารองรับรูปแบบต่อไปนี้:
หากต้องการเพิ่มไฟล์ PDF ให้ใช้ data_type เป็น pdf_file
เช่น:
await app . add ( "pdf_file" , "a_valid_url_where_pdf_file_can_be_accessed" ) ;
หากต้องการเพิ่มหน้าเว็บ ให้ใช้ data_type เป็น web_page
เช่น:
await app . add ( "web_page" , "a_valid_web_page_url" ) ;
หากต้องการจัดหาคู่ QnA ของคุณเอง ให้ใช้ data_type เป็น qna_pair
และป้อนสิ่งอันดับ เช่น:
await app . addLocal ( "qna_pair" , [ "Question" , "Answer" ] ) ;
ก่อนที่คุณจะใช้โทเค็นที่มีค่า คุณควรตรวจสอบให้แน่ใจว่าการฝังที่คุณทำเสร็จแล้วนั้นใช้ได้ผลและได้รับเอกสารที่ถูกต้องจากฐานข้อมูล
สำหรับสิ่งนี้ คุณสามารถใช้วิธี dryRun
ตามตัวอย่างด้านบน เพิ่มสิ่งนี้ลงในสคริปต์ของคุณ:
let result = await naval_chat_bot . dryRun ( "What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts?" ) ; console . log ( result ) ;
'' '
Use the following pieces of context to answer the query at the end. If you don' t know the answer , just say that you don 't know, don' t try to make up an answer .
terms of the unseen . And I think that’s critical . That is what humans do uniquely that no other creature , no other computer , no other intelligence—biological or artificial—that we have ever encountered does . And not only do we do it uniquely , but if we were to meet an alien species that also had the power to generate these good explanations , there is no explanation that they could generate that we could not understand . We are maximally capable of understanding . There is no concept out there that is possible in this physical reality that a human being , given sufficient time and resources and
Query : What unique capacity does Naval argue humans possess when it comes to understanding explanations or concepts ?
Helpful Answer :
'' '
การฝังได้รับการยืนยันว่าทำงานได้ตามที่คาดไว้ ส่งคืนเอกสารที่ถูกต้อง แม้ว่าคำถามจะแตกต่างออกไปเล็กน้อยก็ตาม ไม่มีการใช้โทเค็นพร้อมท์
การทดลองเรียกใช้จะยังคงใช้โทเค็นเพื่อฝังคำค้นหาของคุณ แต่จะเป็นเพียงประมาณ 1/15 ของข้อความแจ้งเท่านั้น
การสร้างแชทบอทบนชุดข้อมูลใดๆ จำเป็นต้องมีขั้นตอนต่อไปนี้จึงจะสำเร็จ
เมื่อใดก็ตามที่ผู้ใช้ถามคำถามใดๆ กระบวนการต่อไปนี้จะเกิดขึ้นเพื่อค้นหาคำตอบสำหรับคำถามนั้น
กระบวนการโหลดชุดข้อมูลแล้วสืบค้นเกี่ยวข้องกับหลายขั้นตอน และแต่ละขั้นตอนมีความแตกต่างกันเล็กน้อย
คำถามเหล่านี้อาจเป็นเรื่องเล็กน้อยสำหรับบางคน แต่สำหรับพวกเราหลายคน จำเป็นต้องมีการวิจัย การทดลอง และเวลาเพื่อค้นหาคำตอบที่ถูกต้อง
embedchain เป็นเฟรมเวิร์กที่ดูแลความแตกต่างเหล่านี้ทั้งหมด และมอบอินเทอร์เฟซที่เรียบง่ายเพื่อสร้างบอทบนชุดข้อมูลใดๆ
ในการเปิดตัวครั้งแรก เรากำลังทำให้ทุกคนสามารถรับแชทบอทผ่านชุดข้อมูลใดๆ ที่ติดตั้งและใช้งานได้ในเวลาไม่ถึงนาทีได้ง่ายขึ้น สิ่งที่คุณต้องทำคือสร้างอินสแตนซ์ของแอป เพิ่มชุดข้อมูลโดยใช้ฟังก์ชัน .add
จากนั้นใช้ฟังก์ชัน .query
เพื่อรับคำตอบที่เกี่ยวข้อง
embedchain ถูกสร้างขึ้นบนสแต็กต่อไปนี้:
หากคุณใช้พื้นที่เก็บข้อมูลนี้ โปรดพิจารณาอ้างอิงด้วย:
@misc{embedchain,
author = {Taranjeet Singh},
title = {Embechain: Framework to easily create LLM powered bots over any dataset},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/embedchain/embedchainjs}},
}