Yuxi-Know: интеллектуальная платформа вопросов и ответов на основе графа знаний

Общее введение

Yuxi-Know - это интеллектуальная платформа вопросов и ответов с открытым исходным кодом, которая сочетает в себе граф знаний и технологии RAG (Retrieval Augmented Generation), чтобы помочь пользователям быстро получать точные ответы. Она основана на Neo4j для хранения графа знаний, использует FastAPI и VueJS для построения back-end и front-end, поддерживает различные большие модели, такие как OpenAI, DeepSeek, Beanbag и так далее. Система интегрирует Milvus векторная база данныхYuxi-Know предоставляет сетевой поиск, модель вывода DeepSeek-R1 и функцию вызова инструмента, подходящую разработчикам для создания системы управления знаниями или интеллектуальной системы обслуживания клиентов. Проект имеет открытый исходный код на GitHub, его легко развернуть и расширить.

语析(Yuxi-Know):基于知识图谱的智能问答平台语析(Yuxi-Know):基于知识图谱的智能问答平台

 

Список функций

  • Поддерживает множество крупных моделей вызовов, включая OpenAI, DeepSeek, Beanbag, Smart Spectrum Clear Speech и другие.
  • Обеспечивает запросы к графу знаний и хранит структурированные данные на основе Neo4j.
  • адъювант RAG Технология в сочетании с базой знаний и сетевым поиском позволяет генерировать точные ответы.
  • интегрированный (как в интегральной схеме) DeepSeek-R1 Модели рассуждений для решения сложных логических задач.
  • Предоставляет функциональность вызова инструментов для выполнения внешних задач через API.
  • Поддерживает несколько форматов файлов (PDF, TXT, MD, Docx) для создания базы знаний.
  • Используйте базу данных Milvus Vector Database для хранения и извлечения векторов документов.
  • Веб-интерфейс на основе VueJS, простое и интуитивно понятное управление.
  • Поддержка развертывания локальных моделей посредством vLLM возможно Оллама Предоставляет услуги API.
  • Позволяет задавать пользовательские конфигурации моделей и векторных моделей для удовлетворения различных потребностей.

 

Использование помощи

Процесс установки

Yuxi-Know использует развертывание Docker для упрощения процесса установки. Ниже приведены подробные шаги:

  1. Подготовка среды
    Убедитесь, что установлены Docker и Docker Compose. рекомендуется для Linux или macOS, пользователям Windows необходимо включить WSL2. проверьте, что Docker работает правильно:

    docker --version
    

    Убедитесь, что Git установлен для клонирования кода.

  2. проект клонирования
    Выполните следующую команду в терминале, чтобы клонировать кодовую базу Yuxi-Know:

    git clone https://github.com/xerrors/Yuxi-Know.git
    

    Перейдите в каталог проектов:

    cd Yuxi-Know
    
  3. Настройка переменных среды
    Yuxi-Know необходимо настроить ключ API и параметры модели. Скопируйте файл шаблона:

    cp src/.env.template src/.env
    

    Откройте в текстовом редакторе src/.envЗаполните необходимый ключ. Например:

    SILICONFLOW_API_KEY=sk-你的密钥
    DEEPSEEK_API_KEY=你的密钥
    TAVILY_API_KEY=你的密钥
    

    Если вы используете другие модели (например, OpenAI, beanbag), добавьте соответствующий ключ:

    OPENAI_API_KEY=你的密钥
    ARK_API_KEY=你的密钥
    

    Использование по умолчанию SiliconFlow необходимо настроить SILICONFLOW_API_KEY. Если вы используете локальную модель, необходимо настроить путь к модели:

    MODEL_DIR=/path/to/your/models
    
  4. Начальные услуги
    Запустите все службы, выполнив следующую команду из корневого каталога проекта:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build
    

    Это запустит Neo4j, Milvus, бэкенд FastAPI и фронтенд VueJS. Первый запуск может занять несколько минут. После успешного запуска в терминале отобразится:

    [+] Running 7/7
    ✔ Network docker_app-network       Created
    ✔ Container graph-dev              Started
    ✔ Container milvus-etcd-dev        Started
    ✔ Container milvus-minio-dev       Started
    ✔ Container milvus-standalone-dev  Started
    ✔ Container api-dev                Started
    ✔ Container web-dev                Started
    

    Если вам нужно работать в фоновом режиме, добавьте -d Параметры:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build -d
    
  5. система доступа
    Откройте браузер и посетите http://localhost:5173/Вы можете получить доступ к интерфейсу Yuxi-Know. Если он недоступен, проверьте состояние контейнера Docker:

    docker ps
    

    Убедитесь, что все контейнеры запущены. Если существует конфликт портов, измените параметр docker-compose.dev.yml Конфигурация порта в

  6. Закрытие службы
    Остановите службу и удалите контейнер:

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env down
    

Использование основных функций

Yuxi-Know обеспечивает запрос графа знаний, поиск по базе знаний, поиск в сети и функции вызова инструментов. Ниже приведен подробный метод работы:

  1. Запрос к графу знаний
    Yuxi-Know использует Neo4j для хранения графов знаний, который подходит для запросов к структурированным данным. Например, запрос "Что является столицей Пекина?". Система извлечет ответ из графа знаний.

    • Импорт графа знаний: Подготовьте файл в формате JSONL, каждая строка которого содержит головной узел, хвостовой узел и отношение, например:
      {"h": "北京", "t": "中国", "r": "首都"}
      

      Перейдите к разделу "Управление атласом" в интерфейсе и загрузите JSONL-файл. Он будет автоматически загружен в Neo4j.

    • Посетите Neo4j: При запуске http://localhost:7474/ Для доступа к панели Neo4j по умолчанию используется учетная запись neo4jПароль 0123456789.
    • принимать к сведению: Узел должен содержать Entity тег, иначе индекс не может быть вызван.
  2. поиск по базе знаний
    Система поддерживает загрузку файлов PDF, TXT, MD, Docx, которые автоматически преобразуются в векторы и сохраняются в базе данных Milvus. Этапы работы:

    • Перейдите в раздел "Управление базой знаний" и нажмите "Загрузить файлы".
    • Выбрав файл, система преобразует его содержимое в обычный текст, используя векторную модель (такую как BAAI/bge-m3) генерирует векторы и сохраняет их.
    • Для запроса введите вопрос, например, "Какие тенденции в области ИИ упоминаются в документе?". Система получит соответствующий контент и сгенерирует ответ.
    • привлекать внимание к чему-л.: Большие файлы могут обрабатываться медленно, поэтому рекомендуется загружать их по частям.
  3. сетевой поиск
    Если локальная база знаний не может ответить на вопросы, система включает сетевой поиск. Убедитесь, что конфигурация TAVILY_API_KEY. Метод работы:

    • Введите в интерфейс вопрос, например, "Какая новейшая технология искусственного интеллекта появится в 2025 году?".
    • Система работает следующим образом Tavily API получает информацию из Интернета и объединяет ее с большой моделью для создания ответов.
    • В результатах будет указана ссылка на источник, что позволит легко проверить информацию.
  4. Вызов инструмента
    Yuxi-Know поддерживает вызов внешних инструментов через API, например, для проверки погоды или выполнения скриптов. Процедура:

    • существовать src/static/models.yaml Добавьте конфигурацию инструмента в
      tools:
      - name: weather
      url: https://api.weather.com/v3
      api_key: 你的密钥
      
    • Введите в интерфейс: "Какая погода сегодня в Шанхае?". Система вызовет инструмент и вернет результат.

Функциональное управление

  1. Модель выводов DeepSeek-R1
    DeepSeek-R1 - это изюминка Yuxi-Know для сложных задач рассуждения. Метод работы:

    • безопасный DEEPSEEK_API_KEY возможно SILICONFLOW_API_KEY Настроен.
    • При выборе модели интерфейса переключитесь на deepseek-r1-250120.
    • Введите вопрос, например, "Яблоко стоит на 2 доллара дороже апельсина, три яблока и два апельсина стоят 16 долларов. Сколько стоят апельсины?". Система рассудит и ответит: "Апельсины стоят 2 доллара".
    • доминирование: Может решать многоступенчатые логические задачи с более надежными ответами.
  2. Поддержка нескольких моделей
    Система поддерживает переключение нескольких моделей для адаптации к различным сценариям. Метод работы:

    • Выберите модель из выпадающего меню в правом верхнем углу интерфейса, например Qwen2.5-7B-Instruct(SiliconFlow),gpt-4o(OpenAI) или doubao-1-5-pro(боб).
    • У каждой модели свои преимущества, например, Doubao подходит для семантического понимания китайского языка, а OpenAI - для сложных задач.
    • Добавить новую модель:: Редакция src/static/models.yamlДобавьте конфигурации поставщиков, например:
      zhipu:
      name: 智谱清言
      url: https://api.zhipuai.com/v1
      default: glm-4-flash
      env:
      - ZHIPUAI_API_KEY
      

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

  3. Развертывание локальной модели
    Если вам нужно использовать локальную модель (например, LLaMA), вы можете развернуть ее через vLLM или Ollama. Процедура:

    • Запустите службу vLLM:
      vllm serve /path/to/model --host 0.0.0.0 --port 8000
      
    • Добавьте локальную модель в интерфейсе "Настройки", введите URL (например. http://localhost:8000/v1).
    • После сохранения система будет отдавать предпочтение использованию локальной модели для сред без сети.
  4. Конфигурация векторной модели
    Использование по умолчанию BAAI/bge-m3 Сгенерируйте векторы. Если вам нужно заменить его, отредактируйте файл src/static/models.yaml::

    local/nomic-embed-text:
    name: nomic-embed-text
    dimension: 768
    

    Локальная модель будет загружена автоматически, в случае сбоя ее можно получить через зеркальную станцию HF-Mirror.

предостережение

  • сетевые требования: Стабильная сеть необходима для поиска сети и вызова модели, рекомендуется проверить .env ключ в файле.
  • Конфигурация Neo4j: Если у вас уже есть служба Neo4j, вы можете изменить docker-compose.yml попал в точку NEO4J_URIНиже перечислены некоторые ключевые особенности программы, которые важны для ее успешного осуществления.
  • Скачать зеркало: Если извлечение образа Docker не удалось, можно воспользоваться зеркальной станцией DaoCloud:
    docker pull m.daocloud.io/docker.io/library/neo4j:latest
    docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest
    
  • Просмотр журнала: Если в работе службы возникли сбои, проверьте журнал контейнера:
    docker logs api-dev
    

 

сценарий применения

  1. Управление корпоративными знаниями
    Предприятия могут загружать внутренние документы (например, руководства по эксплуатации, технические спецификации) в базу знаний или организовывать их в виде графа знаний. Сотрудники используют Yuxi-Know, чтобы задавать вопросы, например "Как настроить сервер?". Система быстро выдает ответы, сокращая время обучения.
  2. Поддержка академических исследований
    Исследователи могут загружать документы или организовывать карты предметных знаний. Например, создайте карту связей химических молекул и задайте вопрос: "Каковы химические связи атомов углерода?". Система объединяет карты и документы для получения подробных ответов и может быть объединена в сеть для добавления последних исследований.
  3. Интеллектуальная система обслуживания клиентов
    Торговцы могут вводить в систему информацию о товарах и часто задаваемые вопросы. Когда покупатель спрашивает: "Как вернуть товар?" Yuxi-Know берет ответ из базы знаний или проверяет последние правила в Интернете, чтобы предоставить точный ответ.

 

QA

  1. Как загрузить файл базы знаний?
    Перейдите к разделу "Управление базой знаний" в интерфейсе, нажмите "Загрузить" и выберите файлы PDF, TXT, MD или Docx. Система автоматически обработает и сохранит их в базе данных Milvus.
  2. Какие конфигурации требуются для сетевого поиска?
    нужно быть в .env файл для настройки TAVILY_API_KEYЕсли у вас нет ключа, вы можете зарегистрировать его через SiliconFlow или Tavily. Если у вас нет ключа, вы можете зарегистрировать его через SiliconFlow или сайт Tavily.
  3. Как отладить локальную модель?
    Убедитесь, что служба vLLM или Ollama прослушивается 0.0.0.0После запуска добавьте правильный URL в раздел "Настройки" интерфейса. docker logs api-dev Проверьте состояние соединения.
  4. Что делать, если импорт графа знаний не удался?
    Проверьте формат файла JSONL, чтобы убедиться, что каждая строка содержит h, иt, иr поля. После загрузки перезапустите службу Neo4j и убедитесь, что узел содержит Entity Ярлыки.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...