Skip to main content
Glama
tonyromero-ai

Glean Chatbot

Glean Chatbot

Индексирует небольшой набор внутренних контрактов в Glean, отвечает на вопросы по этим документам через Search + Chat и предоставляет тот же процесс в виде MCP-инструмента (ask_glean).

Требования

  • Python 3.10+

  • Экземпляр Glean

  • Токен Indexing API

  • Токен Client API с правами Search и Chat

Related MCP server: search-context

Установка

  1. Клонируйте репозиторий и перейдите в него:

git clone <your-repo-url>
cd glean-chatbot
  1. Установите зависимости:

pip install -r requirements.txt
  1. Создайте файл .env из примера и заполните свои значения:

# macOS / Linux
cp .env.example .env

# Windows (PowerShell)
copy .env.example .env

Переменная

Обязательно

Назначение

GLEAN_INSTANCE

да

Имя экземпляра (https://<instance>-be.glean.com)

GLEAN_INDEXING_TOKEN

да

Токен Indexing API

GLEAN_CLIENT_TOKEN

да

Токен Client API (Search + Chat)

GLEAN_ACT_AS

да*

Email пользователя для X-Glean-ActAs (*нужен с глобальным токеном)

GLEAN_DATASOURCE

нет

Имя источника данных (по умолчанию interviewds)

GLEAN_DATASOURCE_DISPLAY

нет

Отображаемое имя в интерфейсе Glean

GLEAN_URL_REGEX

нет

Regex, которому должен соответствовать viewURL каждого документа

Файл .env автоматически загружается config.py (через python-dotenv). Вам не нужно выполнять source для него.

Запуск

Индексация документов

python scripts/index_documents.py
# optional: wait until Search can find them
python scripts/index_documents.py --verify

Запросы из CLI

python scripts/ask.py "Who owns the Enronry Tony contract?"
python scripts/ask.py "What must OKLightning Tony deliver before go-live?" --top-k 3

MCP (Cursor)

Конфигурация проекта находится в .cursor/mcp.json (абсолютный путь к src/mcp_server.py + переменные окружения). Перезапустите Cursor / перезагрузите MCP после его изменения. Инструмент называется ask_glean.

Проверка сервера отдельно:

python src/mcp_server.py

Тесты

python tests/test_pipeline.py

Без сети; используются моки для Search/Chat.

Как это работает

scripts/index_documents.py отправляет data/documents.json через Indexing API. Во время запроса src/pipeline.py вызывает Search, затем (только если есть результаты) Chat с этими результатами как контекстом без внешних источников и возвращает ответ и источники. CLI и MCP используют этот же конвейер. Результаты ограничены нашими документами; если Search ничего не находит, мы предлагаем похожие заголовки документов вместо того, чтобы выдумывать ответ.

Примечания / ограничения

  • Общая песочница игнорирует datasourcesFilter; мы фильтруем на стороне клиента по префиксу идентификатора документа (CUSTOM_<DATASOURCE>_Contract_).

  • Индексация асинхронна — документы могут стать доступными для поиска через несколько минут.

  • Демо-документы используют allowAnonymousAccess: true. Не используйте это в продакшене.

  • viewURL документов должны соответствовать GLEAN_URL_REGEX, иначе индексация отклонит их.

См. DESIGN_NOTE.md о компромиссах API и заметках для продакшена.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants and developer tools to securely access and interact with an organization's enterprise knowledge, documents, and people through natural language while respecting existing access permissions.
    166
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    Enables semantic search across documentation stored in Gemini FileSearchStores, returning AI-generated answers with source citations.
    1
    1
    MIT