Используйте Knowledge Assistant для создания высококачественного чат-бота на основе ваших документов.

На этой странице описывается, как использовать ассистента знаний для создания чат-бота для работы с документами и повышения его качества на основе отзывов на естественном языке от экспертов по теме.

Что такое помощник по знаниям?

Используйте помощник по знаниям для создания чат-бота, который может отвечать на вопросы о документах и предоставлять высококачественные ответы с ссылкой. Помощник знаний использует современный ИИ и следует подходу ретривера с инструкциями для устранения ограничений традиционного подхода с усиленной генерацией (RAG) и предоставления наиболее качественных ответов на основе предоставленной документации. Он поддерживает документы на нескольких языках.

Помощник по знаниям идеально подходит для поддержки следующих вариантов использования:

  • Ответы на вопросы пользователей на основе документации по продукту.
  • Ответы на вопросы сотрудников, связанные с политиками кадров.
  • Ответить на запросы клиентов на основе баз знаний поддержки.

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

Ассистент знаний создает конечную точку агента, которую можно использовать в дальнейшем для ваших приложений. Например, на рисунке ниже показано, как взаимодействовать с конечной точкой, общаться с ней на игровой площадке ИИ. Задавайте агенту вопросы о ваших документах, и агент будет отвечать со ссылками на источники.

Конечная точка Помощника по знаниям в среде Playground.

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

Requirements

Создание агента помощника по знаниям

Перейдите к значку Агенты в левой панели навигации вашего рабочего пространства. Нажмите кнопку "Создать агент" и выберите помощник по знаниям.

Шаг 1. Настройка агента

Настройте агент и предоставьте ему источники знаний для ответа на вопросы.

  1. В поле "Имя" введите имя агента.

  2. В поле "Описание" опишите, что может сделать агент.

  3. На панели источников знаний добавьте источник знаний. Вы можете указать файлы в томе, файлах в таблице или индексе поиска ИИ.

    Файлы в томе

    Для файлов в томе или каталоге каталога Unity поддерживаются следующие типы файлов: txt, pdf, md, ppt/pptx и doc/docx. Файлы размером более 100 МБ автоматически пропускаются во время приема и не включаются в базу знаний. Pdf, DOC, DOCX, PPT и PPTX-файлы с более чем 500 страницами также пропускаются. Для PowerPoint файлов каждый слайд подсчитывается как страница. ФАЙЛЫ TXT и MD не имеют ограничений на страницу.

    1. В разделе "Тип" выберите "Файлы" в томе.
    2. В поле "Источник" выберите том каталога Unity или каталог томов, содержащий файлы.
    3. В поле "Имя" введите имя источника знаний.
    4. В разделе "Описание содержимого" описано, какое содержимое содержит источник знаний, чтобы помочь агенту понять, когда следует использовать этот источник данных.

    Файлы в таблице

    Файлы можно использовать в таблице каталога Unity в качестве источника знаний. Таблицы, полученные из SharePoint или Google Drive с помощью соединителей Databricks автоматически создают ожидаемый формат. Для таблиц, полученных из других источников, таких как Jira или Confluence, может потребоваться преобразовать данные в соответствии с требуемой схемой.

    Note

    Таблица каталога Unity должна соответствовать следующим требованиям:

    • Таблица может быть потоковой или иметь включенный канал измененных данных.
    • Таблица содержит столбец с содержимым типа BINARY или STRING.
    • Таблица содержит metadata или _metadata столбец STRUCT типа со следующими полями:
      • file_path: строка
      • file_name: строка, включая расширение файла
      • file_size:длинный
      • file_modification_time: метка времени
    1. В разделе "Тип" выберите "Файлы" в таблице.
    2. В поле "Источник" выберите таблицу каталога Unity, содержащую данные.
    3. (Необязательно) В поле столбца содержимого файла выберите столбец, содержащий содержимое файла. Используется значение по умолчанию для столбца content, если он не указан. Отображаются только столбцы типов BINARY и STRING.
    4. В поле "Имя" введите имя источника знаний.
    5. В разделе "Описание содержимого" описано, какое содержимое содержит источник знаний, чтобы помочь агенту понять, когда следует использовать этот источник данных.

    Индекс поиска ИИ

    Note

    Индексы поиска ИИ поддерживаются только в том случае, если индекс использует одну из следующих моделей внедрения: databricks-gte-large-en, databricks-bge-large-enили databricks-qwen3-embedding-0-6b. При создании индекса убедитесь, что вы выбрали одну из этих моделей внедрения. Дополнительные сведения см. в разделе "Создание индекса поиска ИИ".

    1. В разделе "Тип" выберите индекс поиска ИИ.
    2. В поле "Источник" выберите индекс, который требуется предоставить агенту.
    3. В поле "Имя" введите имя источника знаний.
    4. В столбце URI документа выберите столбец со ссылкой или ссылкой на то, откуда поступили сведения. Агент использует это в своих цитатах.
    5. В поле "Текстовый столбец " укажите столбец, содержащий необработанный текст, который требуется получить агенту.
    6. В разделе "Описание содержимого" описано, какое содержимое содержит источник знаний, чтобы помочь агенту понять, когда следует использовать этот источник данных.
  4. (Необязательно) Если вы хотите добавить дополнительные источники знаний, нажмите кнопку "Добавить источник знаний". Вы можете предоставить до 10 источников знаний.

  5. (Необязательно) В поле "Инструкции" укажите рекомендации по реагированию агента.

  6. Нажмите кнопку "Создать агент".

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

Important

Если вы обновляете или добавляете файлы в свои источники знаний, необходимо нажать значок синхронизации. Синхронизация, чтобы агент применил изменения. Синхронизация выполняется постепенно. Например, если добавить новый файл в ранее синхронизированный том каталога Unity, синхронизация обрабатывает только добавленный файл.

Любой пользователь с CAN MANAGE разрешением помощника по знаниям может синхронизировать источники знаний.

Шаг 2. Тестирование агента

После завершения сборки агента проверьте его, пообщавшись с ним. Агент должен отвечать ссылкой на вопросы, связанные с его источниками знаний.

  1. Начните чат с агентом непосредственно на вкладке Сборка.
  2. (Необязательно) Вы также можете нажать кнопку "Открыть на игровой площадке" , чтобы общаться с ним на игровой площадке ИИ.
  3. Введите вопрос для агента.
  4. Оцените ответ:
    1. Нажмите кнопку "Просмотреть мысли" , чтобы узнать, как ваш агент приблизился к вопросу.
    2. Щелкните "Просмотреть трассировку ", чтобы просмотреть полную трассировку. Вы можете добавить метки в трассировки в пользовательском интерфейсе для отслеживания оценки качества во время процесса разработки.
    3. Щелкните Просмотреть источники , чтобы увидеть, какие файлы агент ссылается на ссылки. Откроется боковая панель со списком источников для просмотра.

Если вы удовлетворены работой агента, продолжайте использовать его как есть.

Шаг 3. Улучшение качества

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

На вкладке Примеры добавьте вопросы, которые задают ваши пользователи, или вопросы, на которые ваш агент ранее отвечал неправильно. Кроме того, можно импортировать помеченные данные непосредственно из таблицы каталога Unity.

  1. Добавьте вопросы в метку:

    1. Нажмите кнопку +Добавить , чтобы добавить вопрос.
    2. В модальном окне Добавить вопрос введите свой вопрос.
    3. Нажмите кнопку Добавить. Вопрос должен появиться в пользовательском интерфейсе.
    4. Повторите, пока не добавите все вопросы, которые вы хотите оценить.
    5. Чтобы удалить вопрос, щелкните значок меню «Кебаб»., затем Удалить.
  2. Завершив добавление вопросов, вы можете поделиться агентом с другими пользователями, чтобы узнать, как создать высококачественный набор данных с метками. В правом верхнем углу нажмите значок меню kebab., чтобы управлять разрешениями.

    Чтобы эксперты получили доступ и предоставить отзыв, необходимо предоставить им следующие разрешения:

    • CAN_MANAGE разрешение на странице конфигурации агента
  3. Поделитесь ссылкой на страницу конфигурации помощника по знаниям, чтобы получить отзывы от экспертов.

  4. Чтобы пометить данные, щелкните на вопрос и добавьте рекомендации в появившейся панели. Рекомендации применяются сразу после сохранения.

  5. Проверьте агент еще раз на странице конфигурации или на игровой площадке ИИ, чтобы увидеть улучшенную производительность. При необходимости добавьте дополнительные вопросы и рекомендации, чтобы продолжить улучшение поведения.

(Необязательно) Импорт и экспорт помеченных данных

Чтобы импортировать новые вопросы и отзывы непосредственно из таблицы каталога Unity:

  1. Нажмите кнопку Импорт.

  2. В поле "Источник" выберите таблицу каталога Unity, содержащую помеченные данные.

    Таблица должна иметь следующую схему:

    • eval_id: string
    • request: string
    • guidelines: array
      • items: string
    • metadata: string
    • tags: string
  3. Нажмите кнопку Импорт.

Новые вопросы и рекомендации объединяются в таблицу с помеченными данными справа.

Чтобы экспортировать помеченные данные в таблицу каталога Unity, выполните следующее:

  1. Нажмите кнопку "Экспорт".
  2. В поле Schema выберите расположение схемы Unity Catalog для сохранения данных.
  3. В поле "Имя таблицы " введите имя таблицы.
  4. Нажмите кнопку "Экспорт".

Новая таблица создается с помеченными данными.

Управление источниками знаний

После создания помощника по знаниям можно добавлять, удалять и обновлять источники знаний без повторного создания агента. Только создатель помощника по знаниям может добавлять или удалять источники знаний. Любой пользователь с CAN MANAGE разрешением может обновить имя и описание источника знаний, а также синхронизировать источники знаний.

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

Добавление источника знаний

  1. На странице конфигурации агента перейдите на вкладку "Источники ".
  2. Нажмите кнопку +Добавить под существующими карточками источника знаний.
  3. Выберите тип источника знаний для добавления (файлы в томе каталога Unity, файлы в таблице каталога Unity или индекс поиска ИИ) и настройте его, как описано на шаге 1. Настройка агента.
  4. Нажмите кнопку "Сохранить и обновить".

Агент начинает синхронизацию нового источника знаний. Существующие источники знаний и их данные не затрагиваются.

Note

Вы можете предоставить до 10 источников знаний на помощника по знаниям. Добавление источника файла запускает задание по загрузке, которое в зависимости от объема данных может занять некоторое время.

Удаление источника знаний

  1. На странице конфигурации агента перейдите на вкладку "Источники ".
  2. Наведите указатель мыши на карточку источника знаний, которую вы хотите удалить, и нажмите на значок корзины в правом верхнем углу.
  3. В диалоговом окне подтверждения нажмите кнопку "Подтвердить ", чтобы удалить источник.
  4. Нажмите кнопку "Сохранить и обновить".

Источник знаний и связанные с ним данные удаляются из агента. Это действие не легко обратимо, так как повторное добавление источника требует повторного приема данных.

Important

Не удается удалить последний оставшийся источник знаний. Помощник по знаниям всегда должен иметь хотя бы один источник знаний.

Обновление сведений об источнике знаний

Вы можете обновить имя и описание существующего источника знаний. Эти сведения помогают агенту понять, когда следует использовать каждый источник.

  1. На странице конфигурации агента перейдите на вкладку "Источники ".
  2. Наведите указатель мыши на карточку источника знаний, которую вы хотите изменить, и щелкните значок карандаша.
  3. Обновите поля "Имя " или "Описание ".
  4. Нажмите кнопку "Сохранить и обновить".

Управление разрешениями

По умолчанию только авторы агентов и администраторы рабочей области имеют разрешения на агента. Чтобы разрешить другим пользователям изменять или запрашивать агента, необходимо явно предоставить им доступ.

Чтобы управлять разрешениями агента, выполните следующие действия.

  1. Откройте агент на странице Агенты.
  2. Вверху щелкните значок меню Kebab.
  3. Щелкните "Управление разрешениями".
  4. В окне "Параметры разрешений " выберите пользователя, группу или субъект-службу.
  5. Выберите разрешение для предоставления:
    • Может управлять агентом, включая параметры разрешений, редактирование конфигурации агента и улучшение его качества.
    • Может запрашивать: позволяет запрашивать конечную точку агента на игровой площадке ИИ и через API. Пользователи, имеющие только это разрешение, не могут просматривать или изменять агентов на странице "Агенты".
  6. Нажмите кнопку Добавить.
  7. Нажмите кнопку Сохранить.

Important

Только создатель помощника по знаниям может добавлять или удалять источники знаний. Любой пользователь с CAN MANAGE разрешением помощника по знаниям может синхронизировать источники знаний и обновлять имя и описание источника знаний.

Выполните запрос к конечной точке агента

На странице агента щелкните "Конечная точка ", чтобы открыть конечную точку агента и просмотреть сведения.

Существует несколько способов выполнять запросы к созданной конечной точке ассистента знаний. Используйте примеры кода, предоставляемые в ИИ Playground в качестве отправной точки:

  1. Нажмите кнопку "Открыть" на детской площадке.
  2. На игровой площадке нажмите кнопку "Получить код".
  3. Выберите способ использования конечной точки:
    • Выберите Curl API для примера кода, чтобы запросить конечную точку с помощью curl.
    • Выберите API Python для примера кода для взаимодействия с конечной точкой с помощью Python.

Управление помощниками по знаниям с помощью пакета SDK Databricks

Вы можете использовать Databricks SDK для Python для программного создания и управления помощниками знаний и их источниками знаний. Полный список доступных операций API см. в справочнике по API Помощников по знаниям.

Создание помощника по знаниям

В следующем примере создается новый помощник по знанию с отображаемым именем, описанием и инструкциями.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeAssistant

w = WorkspaceClient()

knowledge_assistant = KnowledgeAssistant(
    display_name="<display-name>",
    description="<description>",
    instructions="<instructions>",
)
created = w.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)

Замените <display-name>, <description> и <instructions> значениями вашего помощника по знаниям.

Управление источниками знаний

Вы можете добавлять, удалять и обновлять источники знаний в существующем помощнике по знаниям с помощью пакета SDK.

Добавление источника знаний

В следующем примере добавляется источник знаний из файлов в разделе каталога Unity в существующего интеллектуального помощника.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeSource, FilesSpec

w = WorkspaceClient()

files_source = KnowledgeSource(
    display_name="<knowledge-source-name>",
    description="<knowledge-source-description>",
    source_type="files",
    files=FilesSpec(
        path="<volume-path>",
    ),
)

created_source = w.knowledge_assistants.create_knowledge_source(
    parent="knowledge-assistants/<knowledge-assistant-id>",
    knowledge_source=files_source,
)
print(created_source)

Чтобы добавить источник индекса поиска ИИ, используйте IndexSpec:

from databricks.sdk.service.knowledgeassistants import KnowledgeSource, IndexSpec

index_source = KnowledgeSource(
    display_name="<knowledge-source-name>",
    description="<knowledge-source-description>",
    source_type="index",
    index=IndexSpec(
        index_name="<catalog.schema.index-name>",
        text_col="<text-column>",
        doc_uri_col="<doc-uri-column>",
    ),
)

created_source = w.knowledge_assistants.create_knowledge_source(
    parent="knowledge-assistants/<knowledge-assistant-id>",
    knowledge_source=index_source,
)
print(created_source)

Удаление источника знаний

В следующем примере удаляется источник знаний из помощника по знаниям.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.knowledge_assistants.delete_knowledge_source(
    name="knowledge-assistants/<knowledge-assistant-id>/knowledge-sources/<knowledge-source-id>",
)

Обновление источника знаний

В следующем примере обновляется отображаемое имя и описание существующего источника знаний.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import KnowledgeSource

w = WorkspaceClient()

updated_source = w.knowledge_assistants.update_knowledge_source(
    name="knowledge-assistants/<knowledge-assistant-id>/knowledge-sources/<knowledge-source-id>",
    knowledge_source=KnowledgeSource(
        display_name="<new-name>",
        description="<new-description>",
    ),
    update_mask="display_name,description",
)
print(updated_source)

Допустимые поля в update_mask: display_name, description.

Синхронизация источников знаний

После добавления или обновления файлов в источнике знаний на основе файлов (например, тома каталога Unity или таблицы) активируйте синхронизацию, чтобы обновить индекс помощника знаний с последним содержимым файла.

Note

Источники знаний на основе индексов обновляются автоматически и не требуют ручной синхронизации.

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.knowledge_assistants.sync_knowledge_sources(
    name="knowledge-assistants/<knowledge-assistant-id>",
)

Перенос помощника по знаниям в рабочих пространствах

Пакет SDK можно использовать для репликации помощника по знаниям из одной рабочей области в другую. Следующий пример извлекает помощника по знаниям из исходной рабочей области и воспроизводит его в целевой рабочей области вместе с его источниками знаний.

Note

Источники знаний, на которые ссылается целевая рабочая область (например, индексы поиска ИИ или тома каталога Unity), уже должны существовать в целевой рабочей области перед созданием источников знаний.

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.knowledgeassistants import (
    Example,
    KnowledgeAssistant,
    KnowledgeSource,
    IndexSpec,
    FilesSpec,
)

# Retrieve the knowledge assistant from the source workspace
source_client = WorkspaceClient()
ka = source_client.knowledge_assistants.get_knowledge_assistant(name="<source-knowledge-assistant-name>")
print(ka.display_name, ka.description, ka.instructions)

# Set up the client for the target workspace
target_client = WorkspaceClient(
    host="<target-workspace-url>",
    token="<target-workspace-token>",
)

# Create the knowledge assistant in the target workspace
knowledge_assistant = KnowledgeAssistant(
    display_name=ka.display_name,
    description=ka.description,
    instructions=ka.instructions,
)
created = target_client.knowledge_assistants.create_knowledge_assistant(knowledge_assistant=knowledge_assistant)
print(created)

# Re-create knowledge sources in the target workspace
index_source = KnowledgeSource(
    display_name="<knowledge-source-name>",
    description="<knowledge-source-description>",
    source_type="index",
    index=IndexSpec(
        index_name="<catalog.schema.index-name>",
        text_col="<text-column>",
        doc_uri_col="<doc-uri-column>",
    ),
)

files_source = KnowledgeSource(
    display_name="<knowledge-source-name>",
    description="<knowledge-source-description>",
    source_type="files",
    files=FilesSpec(
        path="<volume-path>",
    ),
)

created_index_source = target_client.knowledge_assistants.create_knowledge_source(
    parent=created.name,
    knowledge_source=index_source,
)
print(created_index_source)

created_files_source = target_client.knowledge_assistants.create_knowledge_source(
    parent=created.name,
    knowledge_source=files_source,
)
print(created_files_source)

# Re-create examples in the target knowledge assistant
for ex in source_client.knowledge_assistants.list_examples(parent=ka.name):
    example = source_client.knowledge_assistants.get_example(name=ex.name)
    target_client.knowledge_assistants.create_example(
        parent=created.name,
        example=Example(
            question=example.question,
            guidelines=example.guidelines,
        ),
    )

Замените значения заполнителей соответствующими значениями для исходных и целевых рабочих областей. Следующий <source-knowledge-assistant-name> следует формату knowledge-assistants/<knowledge-assistant-id>.

Оцените вашего помощника по знаниям

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

Получите ноутбук

Limitations

  • Файлы размером более 100 МБ автоматически пропускаются во время приема и не включаются в базу знаний.
  • PDF, DOC, DOCX, PPT и PPTX-файлы с более чем 500 страницами пропускаются во время приема. Для PowerPoint файлов (PPT, PPTX) каждый слайд подсчитывается как страница. ФАЙЛЫ TXT и MD не имеют ограничений на страницу. При загрузке данных используется ai_parse_document, с ограничением в 500 страниц на документ.
  • Файлы с именами, начинающимися с подчеркивания (_) или периода (.), автоматически пропускаются во время приема и не включаются в базу знаний.
  • Для источников знаний, использующих файлы из таблицы Unity Catalog, загружается только выбранный столбец содержимого. Другие столбцы в источнике знаний таблицы не используются.
  • Поддерживаются только индексы поиска ИИ, использующие одну из следующих моделей внедрения: databricks-gte-large-en, databricks-bge-large-enили databricks-qwen3-embedding-0-6b.