Это приложение облегчает работу чат-бота, используя Next.js в качестве внешнего интерфейса и FastAPI в качестве внутреннего, используя возможности LangChain для динамического веб-взаимодействия.
Приложение интегрирует сервер Python/FastAPI в приложение Next.js по маршруту /api/
. Это достигается путем перезаписи next.config.js
, направляя любые запросы /api/:path*
на сервер FastAPI, расположенный в папке /api
. Локально FastAPI работает по адресу 127.0.0.1:8000
, а в рабочей среде он работает как бессерверные функции на Vercel.
npm install
.env
с вашим ключом API OpenAI: OPENAI_API_KEY=[your-openai-api-key]
npm run dev
Для внутреннего тестирования:
conda create --name nextjs-fastapi-your-chat python=3.10
conda activate nextjs-fastapi-your-chat
pip install -r requirements.txt
uvicorn api.index:app --reload
Варианты сохранения истории чата включают в себя:
RAG (Retrival Augmented Generation) расширяет языковые модели за счет контекста, полученного из пользовательской базы знаний. Этот процесс включает в себя выборку HTML-документов, разбиение их на фрагменты и векторизацию этих фрагментов с использованием моделей внедрения, таких как OpenAI. Эти векторизованные данные образуют векторное хранилище, позволяющее выполнять семантический поиск на основе запросов пользователя. Полученные соответствующие фрагменты затем используются в качестве контекста для языковой модели, формируя исчерпывающий ответ на запросы пользователей.
Функция get_vectorstore_from_url
извлекает и обрабатывает текст из заданного URL-адреса, а get_context_retriever_chain
формирует цепочку, которая извлекает контекст, относящийся ко всей истории разговора. Такой конвейерный подход гарантирует, что ответы будут контекстно-ориентированными и точными.