add README.md
This commit is contained in:
@@ -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 # максимум раундов доработки
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user