embedchain — это платформа, позволяющая легко создавать ботов на базе LLM для любого набора данных. embedchainjs — это Javascript-версия embedchain. Если вам нужна версия Python, посмотрите embedchain-python
Запланируйте сеанс обратной связи с Таранджитом, основателем, чтобы обсудить любые проблемы, оставить отзыв или изучить улучшения.
Он абстрагирует весь процесс загрузки набора данных, его разбивки, создания вложений и последующего сохранения в векторной базе данных.
Вы можете добавить один или несколько наборов данных, используя функции .add
и .addLocal
, а затем использовать функцию .query
чтобы найти ответ из добавленных наборов данных.
Если вы хотите создать бота Naval Ravikant, у которого есть 2 его сообщения в блоге, а также предоставленная вами пара вопросов и ответов, все, что вам нужно сделать, это добавить ссылки на сообщения в блоге, а пара QnA и встроить цепочку создаст бот для вас.
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 в Docker.
git clone https://github.com/chroma-core/chroma.git
cd chroma
docker-compose up -d --build
Мы используем модель внедрения OpenAI для создания внедрений для фрагментов и API ChatGPT в качестве 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}},
}