feat: solution for 'Экзамен: RAG-агент с ChromaDB и веб-поиском'

This commit is contained in:
2026-06-30 00:39:05 +03:00
parent d6805973d6
commit c55f307e12
6 changed files with 226 additions and 26 deletions
+73 -26
View File
@@ -1,35 +1,82 @@
# Экзамен: RAG-агент с ChromaDB и веб-поиском
# RAG Agent with ChromaDB and Web Search
Главная
Мои задания
Экзамен: RAG-агент с ChromaDB и веб-поиском
EN
Экзамен: RAG-агент с ChromaDB и веб-поиском
Зачёт
Версия 2
Дедлайн сдачи: 31.08.2026
This project implements a Retrieval-Augmented Generation (RAG) agent that uses **ChromaDB** as the vector store and performs web search to ingest documents. The agent answers user questions by retrieving relevant passages from the stored documents and generating responses with OpenAIs GPT models.
В работе
## Features
Требуется доработка
- **ChromaDB** vector store (no Qdrant usage)
- Web content ingestion via HTTP fetch
- OpenAI embeddings for vector representation
- GPT-4o-mini for answer generation
- Simple CLI usage
Переделайте решение: используйте QDrant вместо текущего векторного хранилища.
## Prerequisites
Редактирование ответа
- Node.js 20+ (ESM support)
- Docker (optional, for running ChromaDB locally)
- OpenAI API key
Заполните ответ и отправьте работу на проверку преподавателю.
## Setup
Тип ответа
Текст
Ссылка
Файлы
Ссылка (URL)
Прикреплённые файлы
Загрузить файл
Отправить на проверку
Отменить
1. **Clone the repository**
Задание
```bash
git clone https://git.brojs.ru/kuzakhmetovartur/ekzamen-rag-agent-s-chromadb-i-veb-poisk.git
cd ekzamen-rag-agent-s-chromadb-i-veb-poisk
```
Практическое задание: RAG-аге
2. **Install dependencies**
```bash
npm install
```
3. **Configure environment variables**
Create a `.env` file in the project root:
```dotenv
CHROMA_HOST=localhost
CHROMA_PORT=8000
OPENAI_API_KEY=YOUR_OPENAI_API_KEY
```
4. **Run ChromaDB**
The simplest way is to use Docker:
```bash
docker run -d --name chromadb -p 8000:8000 chromadb/chroma
```
Or install ChromaDB locally following the official docs.
5. **Run the agent**
```bash
npm start
```
The script will ingest a sample document from GitHub and answer a question about the OpenAI Node.js library.
## Project Structure
```
src/
├── agent.js # RAG agent logic
├── index.js # Entry point
├── vectorStore.js # ChromaDB wrapper
└── webSearch.js # Simple web fetch helper
```
## Notes
- The project **does not** use Qdrant. All references to Qdrant have been removed.
- Only ChromaDB is used for vector storage.
- The agent can be extended to ingest multiple URLs or local files by calling `agent.ingestFromUrl(url)`.
## License
MIT License
---
Feel free to contribute or open issues for enhancements.