embedchain adalah kerangka kerja untuk dengan mudah membuat bot bertenaga LLM pada kumpulan data apa pun. embedchainjs adalah versi Javascript dari embedchain. Jika Anda menginginkan versi python, lihat embedchain-python
Jadwalkan Sesi Umpan Balik dengan Taranjeet, sang pendiri, untuk mendiskusikan masalah apa pun, memberikan umpan balik, atau menjajaki perbaikan.
Ini mengabstraksi seluruh proses memuat kumpulan data, membaginya, membuat penyematan, dan kemudian menyimpannya dalam database vektor.
Anda dapat menambahkan satu atau beberapa kumpulan data menggunakan fungsi .add
dan .addLocal
lalu menggunakan fungsi .query
untuk menemukan jawaban dari kumpulan data yang ditambahkan.
Jika Anda ingin membuat bot Naval Ravikant yang memiliki 2 postingan blognya, serta pasangan tanya jawab yang Anda berikan, yang perlu Anda lakukan hanyalah menambahkan tautan ke postingan blog tersebut dan pasangan QnA serta embedchain akan membuat a bot untukmu.
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
Saat ini hanya kompatibel dengan openai 3.X, bukan versi terbaru 4.X. Harap pastikan untuk menggunakan versi yang benar, jika tidak, Anda akan melihat kesalahan ChromaDB
TypeError: OpenAIApi.Configuration is not a constructor
Pastikan paket dotenv diinstal dan OPENAI_API_KEY
Anda ada di file bernama .env
di folder root. Anda dapat menginstal dotenv dengan
npm install dotenv
Unduh dan instal Docker di perangkat Anda dengan mengunjungi tautan ini. Anda memerlukan ini untuk menjalankan database vektor Chroma di mesin Anda.
Jalankan perintah berikut untuk menyiapkan wadah Chroma di Docker
git clone https://github.com/chroma-core/chroma.git
cd chroma
docker-compose up -d --build
Kami menggunakan model penyematan OpenAI untuk membuat penyematan pada potongan dan API ChatGPT sebagai LLM untuk mendapatkan jawaban berdasarkan dokumen yang relevan. Pastikan Anda memiliki akun OpenAI dan kunci API. Jika Anda belum memiliki kunci API, Anda dapat membuatnya dengan mengunjungi tautan ini.
Setelah Anda memiliki kunci API, atur kunci tersebut ke dalam variabel lingkungan bernama OPENAI_API_KEY
// Set this inside your .env file
OPENAI_API_KEY = "sk-xxxx" ;
const dotenv = require ( "dotenv" ) ;
dotenv . config ( ) ;
App
dari embedchain dan gunakan fungsi .add
untuk menambahkan kumpulan data apa pun..query
untuk mendapatkan jawaban atas pertanyaan apa pun. 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" ) ;
Kami mendukung format berikut:
Untuk menambahkan file pdf apa pun, gunakan data_type sebagai pdf_file
. Misalnya:
await app . add ( "pdf_file" , "a_valid_url_where_pdf_file_can_be_accessed" ) ;
Untuk menambahkan halaman web apa pun, gunakan data_type sebagai web_page
. Misalnya:
await app . add ( "web_page" , "a_valid_web_page_url" ) ;
Untuk menyediakan pasangan QnA Anda sendiri, gunakan data_type sebagai qna_pair
dan masukkan tupel. Misalnya:
await app . addLocal ( "qna_pair" , [ "Question" , "Answer" ] ) ;
Sebelum menggunakan token yang berharga, Anda harus memastikan bahwa penyematan yang telah Anda lakukan berhasil dan menerima dokumen yang benar dari database.
Untuk ini Anda bisa menggunakan metode dryRun
.
Mengikuti contoh di atas, tambahkan ini ke skrip Anda:
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 :
'' '
Penyematan dipastikan berfungsi sesuai harapan. Ini mengembalikan dokumen yang benar, meskipun pertanyaan yang diajukan sedikit berbeda. Tidak ada token cepat yang dikonsumsi.
Uji coba masih akan menggunakan token untuk menyematkan kueri Anda, tetapi ini hanya ~1/15 dari perintah.
Membuat bot obrolan pada kumpulan data apa pun memerlukan langkah-langkah berikut agar dapat dilakukan
Setiap kali pengguna menanyakan pertanyaan apa pun, proses berikut terjadi untuk menemukan jawaban atas pertanyaan tersebut
Proses memuat kumpulan data dan kemudian melakukan kueri melibatkan beberapa langkah dan setiap langkah memiliki nuansa tersendiri.
Pertanyaan-pertanyaan ini mungkin sepele bagi sebagian orang, tetapi bagi banyak dari kita, pertanyaan ini memerlukan penelitian, eksperimen, dan waktu untuk menemukan jawaban yang akurat.
embedchain adalah kerangka kerja yang menangani semua nuansa ini dan menyediakan antarmuka sederhana untuk membuat bot pada kumpulan data apa pun.
Pada rilis pertama, kami mempermudah siapa pun untuk menyiapkan dan menjalankan chatbot atas kumpulan data apa pun dalam waktu kurang dari satu menit. Yang perlu Anda lakukan hanyalah membuat instance aplikasi, menambahkan kumpulan data menggunakan fungsi .add
, lalu menggunakan fungsi .query
untuk mendapatkan jawaban yang relevan.
embedchain dibangun di tumpukan berikut:
Jika Anda menggunakan repositori ini, mohon pertimbangkan untuk mengutipnya dengan:
@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}},
}