Introdução geral
O Yuxi-Know é uma plataforma inteligente de perguntas e respostas de código aberto que combina tecnologias de gráfico de conhecimento e RAG (Retrieval Augmented Generation) para ajudar os usuários a obter rapidamente respostas precisas. Ela se baseia no Neo4j para armazenar o gráfico de conhecimento, usa FastAPI e VueJS para criar o back-end e o front-end e oferece suporte a uma variedade de grandes modelos, como OpenAI, DeepSeek, Beanbag e assim por diante. O sistema integra o Milvus banco de dados de vetoresO Yuxi-Know fornece pesquisa em rede, modelo de inferência DeepSeek-R1 e função de chamada de ferramenta, adequado para desenvolvedores criarem gerenciamento de conhecimento ou sistema inteligente de atendimento ao cliente. O projeto é de código aberto no GitHub, fácil de implantar e estender.
Lista de funções
- Suporta uma variedade de chamadas de modelos grandes, incluindo OpenAI, DeepSeek, Beanbag, Smart Spectrum Clear Speech e muito mais.
- Fornece consulta de gráficos de conhecimento e armazena dados estruturados com base no Neo4j.
- apoiar algo RAG combinada com a base de conhecimento e a pesquisa em rede para gerar respostas precisas.
- integrado (como em um circuito integrado) DeepSeek-R1 Modelos de raciocínio para lidar com problemas lógicos complexos.
- Oferece funcionalidade de chamada de ferramenta para executar tarefas externas por meio de APIs.
- Oferece suporte a vários formatos de arquivo (PDF, TXT, MD, Docx) para criar uma base de conhecimento.
- Use o Milvus Vector Database para armazenar e recuperar vetores de documentos.
- Forneça uma interface da Web baseada em VueJS, com operação simples e intuitiva.
- Oferece suporte à implantação de modelos locais por meio de vLLM talvez Ollama Fornece serviços de API.
- Permite configurações de modelos vetoriais e modelos definidos pelo usuário para atender a diferentes necessidades.
Usando a Ajuda
Processo de instalação
O Yuxi-Know usa a implantação do Docker para simplificar o processo de instalação. Aqui estão as etapas detalhadas:
- Preparação do ambiente
Certifique-se de que o Docker e o Docker Compose estejam instalados. recomendado para Linux ou macOS, os usuários do Windows precisam ativar o WSL2. verifique se o Docker está sendo executado corretamente:docker --version
Certifique-se de que o Git esteja instalado para clonar o código.
- projeto de clonagem
Execute o seguinte comando no terminal para clonar a base de código do Yuxi-Know:git clone https://github.com/xerrors/Yuxi-Know.git
Vá para o catálogo de projetos:
cd Yuxi-Know
- Configuração de variáveis de ambiente
O Yuxi-Know precisa configurar a chave da API e os parâmetros do modelo. Copie o arquivo de modelo:cp src/.env.template src/.env
Abrir com um editor de texto
src/.env
Preencha a chave necessária. Por exemplo:SILICONFLOW_API_KEY=sk-你的密钥 DEEPSEEK_API_KEY=你的密钥 TAVILY_API_KEY=你的密钥
Se estiver usando outros modelos (por exemplo, OpenAI, beanbag), adicione a chave correspondente:
OPENAI_API_KEY=你的密钥 ARK_API_KEY=你的密钥
Uso padrão SiliconFlow você deve configurar o serviço
SILICONFLOW_API_KEY
. Se estiver usando um modelo local, será necessário configurar o caminho do modelo:MODEL_DIR=/path/to/your/models
- Início dos serviços
Inicie todos os serviços executando o seguinte comando no diretório raiz do projeto:docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build
Isso iniciará o Neo4j, o Milvus, o backend FastAPI e o frontend VueJS. A primeira inicialização pode levar alguns minutos. Em caso de sucesso, o terminal exibirá:
[+] 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
Se você precisar executar em segundo plano, adicione
-d
Parâmetros:docker compose -f docker/docker-compose.dev.yml --env-file src/.env up --build -d
- sistema de acesso
Abra seu navegador e acessehttp://localhost:5173/
Você pode acessar a interface do Yuxi-Know. Se ela não estiver acessível, verifique o status do contêiner do Docker:docker ps
Verifique se todos os contêineres estão em execução. Se houver um conflito de portas, modifique o
docker-compose.dev.yml
A configuração da porta no - Encerramento do serviço
Interrompa o serviço e exclua o contêiner:docker compose -f docker/docker-compose.dev.yml --env-file src/.env down
Uso das funções principais
O Yuxi-Know oferece consulta a gráficos de conhecimento, pesquisa em bases de conhecimento, pesquisa em redes e funções de chamada de ferramentas. Veja a seguir o método de operação detalhado:
- Consulta ao gráfico de conhecimento
O Yuxi-Know usa o Neo4j para armazenar gráficos de conhecimento, o que é adequado para a consulta de dados estruturados. Por exemplo, a consulta "Qual é a capital de Pequim?" O sistema extrairá a resposta do gráfico de conhecimento.- Importando o Knowledge GraphPreparar um arquivo no formato JSONL com cada linha contendo o nó principal, o nó secundário e a relação, por exemplo:
{"h": "北京", "t": "中国", "r": "首都"}
Navegue até "Atlas Management" na interface e carregue o arquivo JSONL. Ele será carregado automaticamente no Neo4j.
- Visite o Neo4jNa inicialização, o
http://localhost:7474/
Para acessar o painel do Neo4j, a conta padrão éneo4j
A senha é0123456789
. - tomar nota deO nó precisa conter
Entity
caso contrário, o índice não poderá ser acionado.
- Importando o Knowledge GraphPreparar um arquivo no formato JSONL com cada linha contendo o nó principal, o nó secundário e a relação, por exemplo:
- pesquisa na base de conhecimento
O sistema suporta o upload de arquivos PDF, TXT, MD, Docx, que são automaticamente convertidos em vetores e armazenados no banco de dados do Milvus. Etapas da operação:- Navegue até "Knowledge Base Management" e clique em "Upload Files".
- Ao selecionar o arquivo, o sistema converte o conteúdo em texto simples, usando um modelo vetorial (como o
BAAI/bge-m3
) gera vetores e os armazena. - Para consultar, insira uma pergunta como, por exemplo, "Quais são as tendências de IA mencionadas no documento?" O sistema recuperará o conteúdo relevante e gerará a resposta.
- chamar a atenção para algoArquivos grandes podem demorar a ser processados; recomenda-se fazer uploads segmentados.
- pesquisa de rede
Quando a base de conhecimento local não consegue responder, o sistema permite a recuperação em rede. Certifique-se de que a configuração doTAVILY_API_KEY
. Método de operação:- Insira uma pergunta na interface, como, por exemplo, "Qual é a tecnologia de IA mais recente em 2025?"
- O sistema funciona da seguinte forma Tavily A API obtém informações da Web e as combina com um grande modelo para gerar respostas.
- Os resultados mostrarão um link para a fonte, facilitando a verificação das informações.
- Chamada de ferramenta
O Yuxi-Know suporta a chamada de ferramentas externas via API, como a verificação do clima ou a execução de scripts. Procedimento:- existir
src/static/models.yaml
Adicione a configuração da ferramenta na seçãotools: - name: weather url: https://api.weather.com/v3 api_key: 你的密钥
- Digite na interface: "Como está o tempo em Xangai hoje?" O sistema chamará a ferramenta e retornará o resultado.
- existir
Operação da função em destaque
- Modelo de inferência DeepSeek-R1
O DeepSeek-R1 é o destaque do Yuxi-Know para tarefas de raciocínio complexas. Método de operação:- seguro
DEEPSEEK_API_KEY
talvezSILICONFLOW_API_KEY
Configurado. - Na seleção do modelo de interface, alterne para
deepseek-r1-250120
. - Digite uma pergunta como: "Uma maçã custa US$ 2 a mais que uma laranja, três maçãs e duas laranjas totalizam US$ 16. Quanto custam as laranjas?" O sistema raciocinará e responderá: "As laranjas custam US$ 2".
- de pontaCapacidade de lidar com problemas lógicos de várias etapas com respostas mais confiáveis.
- seguro
- Suporte a vários modelos
O sistema suporta a troca de vários modelos para se adaptar a diferentes cenários. Método de operação:- Selecione o modelo no menu suspenso no canto superior direito da interface, como
Qwen2.5-7B-Instruct
(SiliconFlow),gpt-4o
(OpenAI) oudoubao-1-5-pro
(saco de feijão). - Cada modelo tem vantagens diferentes, por exemplo, o Doubao é adequado para a compreensão semântica do chinês e o OpenAI é adequado para tarefas complexas.
- Adicionar novo modelo:: Editorial
src/static/models.yaml
Adicione configurações de fornecedor, por exemplo:zhipu: name: 智谱清言 url: https://api.zhipuai.com/v1 default: glm-4-flash env: - ZHIPUAI_API_KEY
Após reiniciar o serviço, o novo modelo estará pronto para ser usado.
- Selecione o modelo no menu suspenso no canto superior direito da interface, como
- Implementação de modelo local
Se precisar usar um modelo local (por exemplo, LLaMA), você poderá implantá-lo via vLLM ou Ollama. Procedimento:- Inicie o serviço vLLM:
vllm serve /path/to/model --host 0.0.0.0 --port 8000
- Adicione um modelo local na interface "Settings" (Configurações), insira um URL (por exemplo
http://localhost:8000/v1
). - Após salvar, o sistema priorizará o uso do modelo local para ambientes sem rede.
- Inicie o serviço vLLM:
- Configuração do modelo vetorial
Uso padrãoBAAI/bge-m3
Gerar vetores. Se você precisar substituí-lo, edite o arquivosrc/static/models.yaml
::local/nomic-embed-text: name: nomic-embed-text dimension: 768
O modelo local será baixado automaticamente e, se falhar, poderá ser obtido por meio da estação espelho HF-Mirror.
advertência
- requisito de redeSe a rede estável for necessária para a recuperação da rede e a chamada do modelo, é recomendável verificar o
.env
no arquivo. - Configuração do Neo4jSe você já tiver um serviço Neo4j, poderá modificar o
docker-compose.yml
acertou em cheioNEO4J_URI
e evitar a duplicação de implementações. - Download no espelhoSe a extração da imagem do Docker falhar, você poderá usar a estação de espelho do DaoCloud:
docker pull m.daocloud.io/docker.io/library/neo4j:latest docker tag m.daocloud.io/docker.io/library/neo4j:latest neo4j:latest
- Visualização do registroSe o serviço estiver anormal, verifique o registro do contêiner:
docker logs api-dev
cenário do aplicativo
- Gestão do conhecimento empresarial
As empresas podem fazer upload de documentos internos (por exemplo, manuais de operação, especificações técnicas) para a base de conhecimento ou organizá-los em um gráfico de conhecimento. Os funcionários usam o Yuxi-Know para fazer perguntas como "Como configurar um servidor?". O sistema retorna as respostas rapidamente, reduzindo o tempo de treinamento. - Suporte à pesquisa acadêmica
Os pesquisadores podem fazer upload de artigos ou organizar mapas de conhecimento de assuntos. Por exemplo, crie um mapa de relacionamento de moléculas químicas e pergunte: "Quais são as ligações químicas dos átomos de carbono?" O sistema combina mapas e documentos para retornar respostas detalhadas e pode ser conectado em rede para adicionar as pesquisas mais recentes. - Sistema inteligente de atendimento ao cliente
Os comerciantes podem inserir informações sobre o produto e perguntas frequentes no sistema. Quando um cliente pergunta "Como faço para devolver um produto?" o Yuxi-Know obtém a resposta da base de conhecimento ou verifica on-line a política mais recente e fornece uma resposta precisa.
QA
- Como faço para carregar um arquivo da Base de Conhecimento?
Navegue até "Knowledge Base Management" na interface, clique em "Upload" e selecione os arquivos PDF, TXT, MD ou Docx. O sistema os processará e armazenará automaticamente no banco de dados do Milvus. - Quais configurações são necessárias para a recuperação em rede?
precisa estar em.env
para configurar o arquivoTAVILY_API_KEY
Se você não tiver uma chave, poderá se registrar para obter uma por meio do SiliconFlow ou da Tavily. Se não tiver uma chave, você pode se registrar para obter uma por meio do SiliconFlow ou do site da Tavily. - Como depurar um modelo local?
Certifique-se de que o serviço vLLM ou Ollama esteja escutando0.0.0.0
Após a inicialização, adicione o URL correto à seção "Settings" (Configurações) da interface.docker logs api-dev
Verifique o status da conexão. - O que devo fazer se a importação do gráfico de conhecimento falhar?
Verifique o formato do arquivo JSONL para garantir que cada linha contenha o caractereh
et
er
campos. Depois de fazer o upload, reinicie o serviço Neo4j e confirme se o nó contém oEntity
Etiquetas.