Files
T

3.7 KiB
Raw Blame History

Stream‑режим AI‑агента

Описание проекта

Этот проект реализует AI‑агент, построенный на основе LangGraph и LangChain, который использует модели из Ollama (по умолчанию llama3) и векторную базу Qdrant для хранения эмбеддингов.
Главная особенность – потоковый вывод (stream()), благодаря которому ответы генерируются токен за токеном и сразу отображаются в консоли, а не после завершения работы.

Предварительные требования

Пакет Версия Зачем нужен
ollama любой актуальный Запускает локальную модель LLM (llama3)
qdrant 1.x+ Хранит векторные эмбеддинги для быстрых запросов
python>=3.10 Язык выполнения

Важно: Установите и запустите Ollama и Qdrant перед запуском агента.

# Пример установки Ollama (Linux)
curl -fsSL https://ollama.ai/install.sh | sh

# Запуск модели llama3
ollama run llama3

# Установка Qdrant (Docker)
docker pull qdrant/qdrant
docker run -p 6333:6333 qdrant/qdrant

Установка проекта

git clone https://github.com/yourname/stream-ai-agent.git
cd stream-ai-agent
pip install -r requirements.txt

requirements.txt содержит:

langchain==0.2.*
langgraph==0.1.*
langchain-ollama==0.1.*
langchain-qdrant==0.1.*
nomic-embed-text==0.3.*
python-dotenv

Запуск

# 1. Убедитесь, что Ollama и Qdrant запущены.
# 2. Запустите агента:
python agent.py

Пример команды с аргументами (если добавлены CLI‑параметры)

python agent.py --prompt "Расскажи о последних новостях в области AI"

Пример использования

После запуска вы увидите интерактивный ввод:

> Какую роль играет Qdrant в работе агента?

Ответ будет выводиться токен за токеном:

Qdrant используется как быстрый
векторный хранилище для эмбеддингов,
что позволяет быстро находить релевантные
тексты и ускорять генерацию ответов.

Пример кода, который можно вставить в agent.py (потоковый вывод)

from langchain_ollama import ChatOllama

# Инициализация LLM
llm = ChatOllama(model="llama3")

# Потоковый вызов
for chunk in llm.stream(prompt):
    print(chunk.content, end="", flush=True)
print()  # Перевод строки после завершения

Совет: При работе с LangGraph используйте AgentExecutor в режиме stream=True, чтобы получать токен за токеном из всех инструментов.

Вклад

  1. Форкните репозиторий.
  2. Создайте ветку (git checkout -b feature/stream-mode).
  3. Сделайте коммит и отправьте PR.

Убедитесь, что тесты проходят: pytest.


Автор: Ваше имя
Дата создания: 20260527