Yuxi-Know : une plateforme intelligente de questions-réponses basée sur un graphe de connaissances

Introduction générale

Yuxi-Know est une plateforme Q&A intelligente open source qui combine le graphe de connaissances et les technologies RAG (Retrieval Augmented Generation) pour aider les utilisateurs à obtenir rapidement des réponses précises. Elle est basée sur Neo4j pour stocker le graphe de connaissances, utilise FastAPI et VueJS pour construire le back-end et le front-end, et prend en charge une variété de grands modèles, tels que OpenAI, DeepSeek, Beanbag, etc. Le système intègre Milvus base de données vectoriellesYuxi-Know fournit la recherche en réseau, le modèle d'inférence DeepSeek-R1 et la fonction d'appel d'outil, convenant aux développeurs pour construire la gestion des connaissances ou le système de service à la clientèle intelligent. Le projet est open source sur GitHub, facile à déployer et à étendre.

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

 

Liste des fonctions

  • Prise en charge d'un grand nombre de modèles d'appels, notamment OpenAI, DeepSeek, Beanbag, Smart Spectrum Clear Speech, et bien d'autres encore.
  • Fournit des requêtes de graphes de connaissances et stocke des données structurées basées sur Neo4j.
  • adjuvant RAG combinée à une base de connaissances et à une recherche en réseau pour générer des réponses précises.
  • intégré (comme dans circuit intégré) Profondeur de l'eau-R1 Modèles de raisonnement pour traiter les problèmes logiques complexes.
  • Fournit une fonctionnalité d'appel d'outil pour effectuer des tâches externes via des API.
  • Prise en charge de plusieurs formats de fichiers (PDF, TXT, MD, Docx) pour créer une base de connaissances.
  • Utilisez la base de données vectorielle Milvus pour stocker et récupérer des vecteurs de documents.
  • Fournir une interface web, basée sur VueJS, simple et intuitive.
  • Soutien au déploiement du modèle local par vLLM peut-être Ollama Fournit des services API.
  • Permet des configurations de modèles et de vecteurs définies par l'utilisateur pour répondre à différents besoins.

 

Utiliser l'aide

Processus d'installation

Yuxi-Know utilise le déploiement Docker pour simplifier le processus d'installation. Voici les étapes détaillées :

  1. Préparation de l'environnement
    Assurez-vous que Docker et Docker Compose sont installés. recommandé pour Linux ou macOS, les utilisateurs de Windows doivent activer WSL2. vérifiez que Docker fonctionne correctement :

    docker --version
    

    Assurez-vous que Git est installé pour le clonage du code.

  2. projet de clonage
    Exécutez la commande suivante dans le terminal pour cloner la base de code de Yuxi-Know :

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

    Accédez au catalogue de projets :

    cd Yuxi-Know
    
  3. Configuration des variables d'environnement
    Yuxi-Know a besoin de configurer la clé API et les paramètres du modèle. Copiez le fichier modèle :

    cp src/.env.template src/.env
    

    Ouvrir avec un éditeur de texte src/.env, remplissez la clé nécessaire. Par exemple :

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

    Si vous utilisez d'autres modèles (par exemple OpenAI, beanbag), ajoutez la clé correspondante :

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

    Utilisation par défaut SiliconFlow vous devez configurer le service SILICONFLOW_API_KEY. Si vous utilisez un modèle local, vous devez configurer le chemin d'accès au modèle :

    MODEL_DIR=/path/to/your/models
    
  4. Démarrage des services
    Démarrez tous les services en exécutant la commande suivante à partir du répertoire racine du projet :

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

    Ceci lancera Neo4j, Milvus, le backend FastAPI et le frontend VueJS. Le premier lancement peut prendre quelques minutes. En cas de succès, le terminal affichera :

    [+] 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
    

    Si vous avez besoin de fonctionner en arrière-plan, ajoutez -d Paramètres :

    docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build -d
    
  5. système d'accès
    Ouvrez votre navigateur et visitez http://localhost:5173/Vous pouvez accéder à l'interface de Yuxi-Know. Si elle n'est pas accessible, vérifiez l'état du conteneur Docker :

    docker ps
    

    Assurez-vous que tous les conteneurs fonctionnent. S'il y a un conflit de port, modifiez le fichier docker-compose.dev.yml La configuration du port dans le

  6. Fermeture du service
    Arrêtez le service et supprimez le conteneur :

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

Utilisation des fonctions principales

Yuxi-Know propose des fonctions d'interrogation du graphe de connaissances, de recherche dans la base de connaissances, de recherche dans le réseau et d'appel d'outils. Voici la méthode d'utilisation détaillée :

  1. Requête de graphe de connaissances
    Yuxi-Know utilise Neo4j pour stocker les graphes de connaissances, ce qui permet d'interroger des données structurées. Par exemple, la requête "Quelle est la capitale de Pékin ?" Le système extrait la réponse du graphe de connaissances.

    • Importer le graphique de connaissancesPréparer un fichier au format JSONL dont chaque ligne contient le nœud de tête, le nœud de queue et la relation, par exemple :
      {"h": "北京", "t": "中国", "r": "首都"}
      

      Naviguez vers "Atlas Management" dans l'interface et téléchargez le fichier JSONL. Il sera automatiquement chargé dans Neo4j.

    • Visiter Neo4jAu démarrage, le système de gestion de l'information http://localhost:7474/ Pour accéder au panneau Neo4j, le compte par défaut est le suivant neo4jLe mot de passe est 0123456789.
    • prendre noteLe nœud doit contenir Entity sinon l'index ne peut pas être déclenché.
  2. recherche dans la base de connaissances
    Le système permet de télécharger des fichiers PDF, TXT, MD, Docx, qui sont automatiquement convertis en vecteurs et stockés dans la base de données Milvus. Les étapes de l'opération :

    • Naviguez jusqu'à "Gestion de la base de connaissances" et cliquez sur "Télécharger des fichiers".
    • En sélectionnant le fichier, le système convertit le contenu en texte brut, en utilisant un modèle vectoriel (tel que le modèle BAAI/bge-m3) génère des vecteurs et les stocke.
    • Pour interroger le système, il suffit de poser une question telle que "Quelles sont les tendances en matière d'IA mentionnées dans le document ?" Le système récupère le contenu pertinent et génère la réponse.
    • attirer l'attention sur qqch.Les fichiers volumineux peuvent être lents à traiter, il est donc recommandé de procéder à des téléchargements segmentés.
  3. recherche de réseaux
    Lorsque la base de connaissances locale n'est pas en mesure de répondre, le système permet une recherche en réseau. Assurez-vous que la configuration de la TAVILY_API_KEY. Méthode d'exploitation :

    • Saisissez une question dans l'interface, par exemple : "Quelle sera la dernière technologie d'IA en 2025 ?".
    • Le système fonctionne de la manière suivante Tavily L'API recherche des informations sur le web et les combine avec un grand modèle pour générer des réponses.
    • Les résultats affichent un lien vers la source, ce qui permet de vérifier facilement l'information.
  4. Appel d'outil
    Yuxi-Know prend en charge l'appel d'outils externes via l'API, comme la vérification de la météo ou l'exécution de scripts. Procédure :

    • existent src/static/models.yaml Ajouter la configuration de l'outil dans le fichier
      tools:
      - name: weather
      url: https://api.weather.com/v3
      api_key: 你的密钥
      
    • Entrez dans l'interface : "Quel temps fait-il à Shanghai aujourd'hui ?" Le système appellera l'outil et renverra le résultat.

Fonction en vedette Fonctionnement

  1. Modèle d'inférence DeepSeek-R1
    DeepSeek-R1 est le point fort de Yuxi-Know pour les tâches de raisonnement complexes. Mode de fonctionnement :

    • sécurisé DEEPSEEK_API_KEY peut-être SILICONFLOW_API_KEY Configuré.
    • Dans la sélection du modèle d'interface, passez à deepseek-r1-250120.
    • Saisissez une question telle que : "Une pomme coûte 2 $ de plus qu'une orange, trois pommes et deux oranges totalisent 16 $. Combien coûtent les oranges ?" Le système raisonne et répond : "Les oranges coûtent 2 $."
    • tranchant: Peut traiter des problèmes logiques en plusieurs étapes avec des réponses plus fiables.
  2. Prise en charge de plusieurs modèles
    Le système permet de basculer entre plusieurs modèles pour s'adapter à différents scénarios. Méthode de fonctionnement :

    • Sélectionnez le modèle dans le menu déroulant situé dans le coin supérieur droit de l'interface, par exemple Qwen2.5-7B-Instruct(SiliconFlow),gpt-4o(OpenAI) ou doubao-1-5-pro(pouf).
    • Chaque modèle présente des avantages différents. Par exemple, Doubao est adapté à la compréhension sémantique du chinois et OpenAI est adapté aux tâches complexes.
    • Ajouter un nouveau modèle: : Editorial src/static/models.yamlajouter des configurations de fournisseurs, par exemple :
      zhipu:
      name: 智谱清言
      url: https://api.zhipuai.com/v1
      default: glm-4-flash
      env:
      - ZHIPUAI_API_KEY
      

      Après avoir redémarré le service, le nouveau modèle est prêt à être utilisé.

  3. Déploiement du modèle local
    Si vous devez utiliser un modèle local (par exemple LLaMA), vous pouvez le déployer via vLLM ou Ollama. Procédure à suivre :

    • Démarrer le service vLLM :
      vllm serve /path/to/model --host 0.0.0.0 --port 8000
      
    • Ajoutez un modèle local dans l'interface "Settings", entrez une URL (par ex. http://localhost:8000/v1).
    • Après l'enregistrement, le système donne la priorité à l'utilisation du modèle local pour les environnements sans réseau.
  4. Configuration du modèle vectoriel
    Utilisation par défaut BAAI/bge-m3 Générer des vecteurs. Si vous devez le remplacer, modifiez le fichier src/static/models.yaml: :

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

    Le modèle local sera téléchargé automatiquement. En cas d'échec, il peut être obtenu via la station miroir HF-Mirror.

mise en garde

  • exigences en matière de réseauLa stabilité du réseau est nécessaire pour l'extraction du réseau et l'appel de modèle, il est donc recommandé de vérifier la stabilité du réseau. .env dans le fichier.
  • Configuration de Neo4jSi vous avez déjà un service Neo4j, vous pouvez modifier le fichier docker-compose.yml a fait mouche NEO4J_URIVoici quelques-unes des principales caractéristiques du programme qui sont importantes pour sa réussite.
  • Téléchargement du miroirSi l'extraction de l'image Docker échoue, vous pouvez utiliser la station miroir de DaoCloud :
    docker pull m.daocloud.io/docker.io/library/neo4j:latest
    docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest
    
  • Vue du journalSi le service est anormal, vérifiez le journal du conteneur :
    docker logs api-dev
    

 

scénario d'application

  1. Gestion des connaissances de l'entreprise
    Les entreprises peuvent télécharger des documents internes (par exemple des manuels d'utilisation, des spécifications techniques) dans la base de connaissances ou les organiser dans un graphe de connaissances. Les employés utilisent Yuxi-Know pour poser des questions telles que "Comment configurer un serveur ?" Le système renvoie rapidement les réponses, ce qui réduit le temps de formation.
  2. Soutien à la recherche universitaire
    Les chercheurs peuvent télécharger des documents ou organiser des cartes de connaissances thématiques. Par exemple, créez une carte des relations entre les molécules chimiques et posez la question suivante : "Quelles sont les liaisons chimiques des atomes de carbone ?" Le système combine des cartes et des documents pour fournir des réponses détaillées et peut être mis en réseau pour ajouter les recherches les plus récentes.
  3. Système de service à la clientèle intelligent
    Les commerçants peuvent introduire dans le système des informations sur les produits et les questions les plus fréquemment posées. Lorsqu'un client demande "Comment retourner un produit ?", Yuxi-Know tire la réponse de la base de connaissances ou vérifie les dernières politiques en ligne pour fournir une réponse précise. Yuxi-Know extrait la réponse de la base de connaissances ou vérifie les dernières politiques en ligne pour fournir une réponse précise.

 

QA

  1. Comment télécharger un fichier de la base de connaissances ?
    Naviguez vers "Gestion de la base de connaissances" dans l'interface, cliquez sur "Télécharger" et sélectionnez des fichiers PDF, TXT, MD ou Docx. Le système les traitera et les stockera automatiquement dans la base de données Milvus.
  2. Quelles sont les configurations requises pour la recherche en réseau ?
    doivent être à .env pour configurer le TAVILY_API_KEYSi vous n'avez pas de clé, vous pouvez en obtenir une par l'intermédiaire de SiliconFlow ou de Tavily. Si vous n'avez pas de clé, vous pouvez vous inscrire pour en obtenir une via SiliconFlow ou le site web de Tavily.
  3. Comment déboguer un modèle local ?
    S'assurer que le service vLLM ou Ollama est à l'écoute 0.0.0.0Après le démarrage, ajoutez l'URL correcte dans la section "Paramètres" de l'interface. docker logs api-dev Vérifier l'état de la connexion.
  4. Que dois-je faire si l'importation du graphe de connaissances échoue ?
    Vérifiez le format du fichier JSONL pour vous assurer que chaque ligne contient l'élément h,t,r champs. Après le téléchargement, redémarrez le service Neo4j et confirmez que le nœud contient le fichier Entity Étiquettes.
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...