add README.md

This commit is contained in:
2026-06-04 16:16:22 +00:00
parent 8df98a35fc
commit 8102b96bdb
+61 -1
View File
@@ -1,2 +1,62 @@
# task-6a219d2dfd30e81cf3146bae # LangGraph с узлом рефлексии
LangGraph‑агент, который пишет ответ на вопрос, затем отдельным LLM‑критиком оценивает качество (полнота, конкретика, отсутствие воды). При вердикте `needs_revision` узел rewrite улучшает текст (до `max_rounds` раз).
## Стек
| Компонент | Технология |
|-----------|------------|
| LLM | BroJS gpt-oss-20b |
| Граф | LangGraph StateGraph |
| Состояние | ReflectState (TypedDict) |
## Установка
```bash
pip install -r requirements.txt
```
Добавь в `.env`:
```
JOURNAL_MCP_PAT=твой_токен
```
## Запуск
```bash
python main.py
```
## Структура проекта
| Файл | Назначение |
|------|------------|
| `graph.py` | Узлы draft_answer, reflect, rewrite и сборка графа |
| `main.py` | Точка входа, три демо‑примера |
| `requirements.txt` | Зависимости |
## Архитектура графа
```
START -> draft_answer -> reflect
|
ok ----------+-------> END
needs_revision & round < max_rounds -> rewrite -> reflect
needs_revision & round >= max_rounds -> END
```
### Узлы
- **draft_answer** — первичный ответ на вопрос (5‑10 предложений)
- **reflect** — LLM‑критик: вердикт `ok` / `needs_revision` + замечания в `critique`
- **rewrite** — учитывает замечания, обновляет `draft`, увеличивает `round`
### Состояние ReflectState
```python
class ReflectState(TypedDict):
question: str # исходный вопрос
draft: str # текущий вариант ответа
critique: str # замечания критика
verdict: str # ok | needs_revision
round: int # текущий раунд (0 = первый черновик)
max_rounds: int # максимум раундов доработки
```