# Сократическая линза — выведение грамматики контекста (CGI) **Динамический метод поиска вопросов, меняющих ход беседы, в любом корпусе.** --- ## Проблема Как понять, «хороший» ли вопрос? Обычные подходы используют постоянные метрики: тональность, вовлечённость, заранее заданные пороги. Но они предполагают, что нам уже известно, что значит «хороший». А мы этого не знаем. Трансформирующий вопрос в терапевтической беседе отличается от такого же вопроса в технической поддержке. В одной ситуации вопрос может помочь человеку глубже разобраться в проблеме, а в другой — увести разговор в сторону. **Настоящая трудность не в измерении, а в определении того, что измерять.** --- ## Откуда появилась идея Началом стало наблюдение при просмотре фильма *«Прибытие»* (2016): Когда человечество встречает пришельцев, военные спрашивают: *«Вы враждебны?»* Лингвист Луиза задаёт другой вопрос: *«Какова ваша цель?»* Первый вопрос остаётся внутри существующей рамки — оценки угрозы. Второй **меняет саму рамку**. Из этого родилась простая мысль: > **Правильный вопрос — не тот, что даёт лучший ответ.** > **Правильный вопрос меняет контекст.** Но что такое «контекст»? И как заметить его изменение? --- ## Открытие Контекст не универсален. Он **зависит от корпуса**. В данных о терапевтических беседах контекстом может быть глубина переживаний. В технических данных — границы проблемы. В философских — уровень абстракции. Нельзя зашить это определение в код. Его нужно **вывести из данных**. --- ## Метод CGI проходит шесть цепочек: | Цепочка | Вопрос | |-------|----------| | 1. Грамматика | «Что означает *контекст* в этом наборе?» | | 2. Положительные примеры | «Как здесь выглядит *трансформация*?» | | 3. Отрицательные примеры | «Как здесь выглядит *застой*?» | | 4. Линза | «Какую рамку решения следует применять к этому корпусу?» | | 5. Проверка | «Какие вопросы меняют контекст?» | | 6. Сократическая рефлексия | «Что мы узнали? Что остаётся решать человеку?» | Главное: **ничего не предполагать заранее**. Прежде чем судить, система учится на примерах. --- ## Результат Результатом становится **линза** — способ толкования, выведенный для конкретного корпуса. Пример результата тестового запуска: ``` Линза: «Переход от поверхности к смыслу» Решающий вопрос: «Переводит ли этот вопрос разговор от выполнения и описания действий к внутреннему смыслу, предпосылкам или отношению человека к себе?» Признаки трансформации: - Предлагает внутреннее осмысление вместо описания внешних событий. - Вводит выбор между ценностями (деньги или принадлежность, потеря или выигрыш). - Переосмысляет ставки через идентичность или смысл. Признаки механического вопроса: - Уточняет или продвигает прежнюю задачу. - Запрашивает факты, не ставя под вопрос исходную рамку. - Сохраняет исключительно практическую цель. ``` Эту линзу не запрограммировали заранее. Она **возникла из данных**. --- ## Что представляет собой метод - **Поиск закономерностей**, а не алгоритм выставления оценки. - **Зеркало**, а не судья. - **Сократический подход**: задаёт вопросы, а не выносит окончательный вывод. - **Адаптация к корпусу**: узнаёт, что «контекст» означает именно здесь. - **Последнее слово за человеком**: система показывает кандидатов, человек решает. --- ## Чего метод не делает - Не заменяет человеческое суждение. - Не создаёт универсальную метрику вроде «0,7 = хорошо». - Не классифицирует по неизменным категориям. - Не пытается раз и навсегда определить «правильный вопрос». - Не предполагает, что все корпуса устроены одинаково. --- ## Связь с Сократом Сократ не выдавал готовые ответы. Он задавал вопросы, после которых люди **начинали видеть иначе**. CGI следует тому же принципу: | Принцип | Реализация | |-----------|----------------| | «Я знаю, что ничего не знаю» | Цепочки 1–3: сначала изучить, затем судить | | Эленхос (исследование) | Цепочка 5: применить линзу, обнаружить противоречия | | Апория (плодотворное затруднение) | Цепочка 6: что осталось без ответа? | | Человек принимает окончательное решение | Система показывает, человек решает | --- ## Что показало тестирование Первоначальная гипотеза: > Трансформирующий вопрос = «вопрос о чувствах». Фактический результат: > Трансформирующий вопрос = «вводит конфликт ценностей, из-за которого приходится иначе понимать ставки». Система **исправила собственную линзу** через сократическую цепочку. Например: - «Что вы потеряете, если примете это предложение?» - «Что даёт вам это сообщество, чего не могут дать деньги?» Они не просто «копают глубже». Они **меняют понимание того, что стоит на кону**. --- ## Что остаётся человеку Система не может решить: 1. **Уместность** — подходящий ли сейчас момент для глубокого вопроса? 2. **Безопасность** — готов ли человек к нему? 3. **Этика** — следует ли вообще оспаривать эту рамку? 4. **Время** — желательна ли трансформация именно сейчас? Здесь нужны суждение, эмпатия и согласие. Система не должна притворяться, будто может их заменить. --- ## Зачем это нужно Языковые модели всё чаще придумывают вопросы для терапевтических ботов, коучинговых приложений, образовательных инструментов и интервью. Обычно качество таких вопросов оценивают по **вовлечённости** или **удовлетворённости пользователя**. Но приятный вопрос может остаться поверхностным. Неудобный вопрос может изменить взгляд человека на ситуацию. CGI предлагает другую линзу: > Спрашивайте не «Понравилось ли человеку?», > а «Изменилось ли его понимание проблемы?» --- ## Метавопрос В ходе тестирования последняя сократическая цепочка спросила: > «Был ли сам этот анализ трансформирующим вопросом?» Ответ: > «Да. Анализ сам стал трансформирующим исследованием. > Линза не просто классифицировала данные: она помогла точнее понять, > какой именно сдвиг был важен в этом корпусе». Метод показал собственный принцип на деле. --- ## Использование ```python from cgi_runner import CGIRunner runner = CGIRunner(llm_fn=your_llm) results = runner.run(your_corpus) print(results["lens"]) # Corpus-specific framework print(results["candidates"]) # Transformative question candidates print(results["reflection"]) # Meta-analysis ``` --- ## Файлы ``` socratic-context-analyzer/ ├── chains/ │ ├── CGI-1-GRAMMAR.yaml │ ├── CGI-2-POSITIVE.yaml │ ├── CGI-3-NEGATIVE.yaml │ ├── CGI-4-LENS.yaml │ ├── CGI-5-SCAN.yaml │ └── CGI-6-SOCRATIC.yaml ├── tests/ │ ├── Mental Health Counseling Dataset/ │ │ ├── 10 Selected Conversation (Manuel Corpus)/ │ │ │ ├── thought process/ │ │ │ ├── cgi_manual_corpus_report.md │ │ │ ├── cgi_manual_corpus_report_TR.md │ │ │ └── prompt and thought process.txt │ │ ├── Randomly Select 20 Conversation/ │ │ │ ├── thought process/ │ │ │ ├── cgi_analysis_report.md │ │ │ ├── cgi_analysis_report_TR.md │ │ │ └── prompt and thought process.txt │ │ ├── 0000.parquet │ │ ├── cgi_complete_summary_EN.md │ │ ├── cgi_complete_summary_TR.md │ │ └── first-test-output.txt ├── cgi_runner.py ├── PAPER.md ├── MAKALE.md ├── chain-view.text ├── gpt-instructions.md └── test-output.text ``` --- ## Заключение Проект начался с простого вопроса: > «Как понять, хороший ли вопрос?» Ответом оказался ещё один вопрос: > «Хороший для чего? В каком контексте? По чьему определению?» CGI не отвечает за человека. Он помогает **найти ответы**. В этом и смысл. --- ## Лицензия MIT ---