O OntoCast é uma estrutura de código aberto hospedada no GitHub que se concentra na extração de triplas semânticas de documentos para criar gráficos de conhecimento. Ele combina gerenciamento de ontologia, processamento de linguagem natural e técnicas de serialização de gráficos de conhecimento para transformar texto não estruturado em dados estruturados e consultáveis. O OntoCast usa extração orientada por ontologia para garantir a consistência semântica e é compatível com vários formatos de arquivo, como texto, JSON, PDF e Markdown. OpenAI ou modelos nativos (por exemplo, via Ollama). Seus principais recursos são a criação automatizada de ontologias, a desambiguação de entidades e a fragmentação semântica para cenários em que as informações estruturadas precisam ser extraídas de documentos complexos. O projeto fornece documentação detalhada e configuração do Docker para implantação e uso rápidos.
Lista de funções
- Extração de tríades semânticas: extraia triplas sujeito-predicado-objeto de documentos para construir gráficos de conhecimento.
- Gerenciamento de ontologia: crie, valide e otimize automaticamente as ontologias para garantir a consistência semântica.
- Desambiguação de entidades: Resolva o problema de referências de entidades entre blocos em documentos para melhorar a precisão dos dados.
- Suporte a vários formatos: lida com vários formatos de arquivo, como texto, JSON, PDF e Markdown.
- Semantic chunking: segmentação de texto com base na similaridade semântica para otimizar a extração de informações.
- Suporte ao GraphRAG: suporta a geração de aprimoramentos de pesquisa baseados em gráficos de conhecimento para melhorar os recursos de pesquisa.
- Compatível com MCP: fornece pontos de extremidade do protocolo de controle de modelos para facilitar a integração e a invocação.
- Suporte a armazenamento ternário: há suporte para armazenamento ternário Fuseki e Neo4j, sendo preferível o Fuseki.
- Implementação local e na nuvem: permite a execução local ou o acesso via API REST.
Usando a Ajuda
Processo de instalação
A OntoCast é uma estrutura baseada em Python que é recomendada para ser implantada usando o Docker. Aqui estão as etapas detalhadas de instalação e configuração:
- projeto de clonagem
Execute o seguinte comando no terminal para clonar o projeto OntoCast localmente:git clone https://github.com/growgraph/ontocast.git cd ontocast
- Instalação de dependências
O projeto usa o ambiente Python, que é recomendadouv
Ferramentas para gerenciar dependências. Execute o seguinte comando para instalá-lo:uv pip install -r requirements.txt
Caso contrário
uv
Você pode usar opip
Alternativa:pip install -r requirements.txt
- Configuração do armazenamento ternário
A OntoCast oferece suporte ao Fuseki (recomendado) e ao Neo4j como back-ends de armazenamento ternário. A seguir, um exemplo do Fuseki:- entrar em
docker/fuseki
copie e edite o arquivo de configuração do ambiente:cp docker/fuseki/.env.example docker/fuseki/.env
- compilador
.env
para definir o URI e as informações de autenticação do Fuseki, por exemplo:FUSEKI_URI=http://localhost:3032/test FUSEKI_AUTH=admin/abc123-qwe
- Inicie o serviço Fuseki:
cd docker/fuseki docker compose --env-file .env up -d
- entrar em
- Configuração do modelo de idioma
O OntoCast é compatível com OpenAI ou modelos nativos (por exemplo, via Ollama). Edite o diretório raiz do projeto.env
que configura os parâmetros do modelo:LLM_PROVIDER=openai LLM_MODEL_NAME=gpt-4o-mini LLM_TEMPERATURE=0.0 OPENAI_API_KEY=your_openai_api_key_here
Se estiver usando um modelo local (por exemplo, Ollama), defina:
LLM_PROVIDER=ollama LLM_BASE_URL=http://localhost:11434
- Serviços operacionais
Use o seguinte comando para iniciar o serviço OntoCast:uv run serve --ontology-directory ONTOLOGY_DIR --working-directory WORKING_DIR
Entre eles.
ONTOLOGY_DIR
é o caminho de armazenamento do arquivo da ontologia.WORKING_DIR
é um diretório de trabalho para armazenar dados processados. - Criação de uma imagem do Docker (opcional)
Se quiser executar a OntoCast usando o Docker, você pode criar uma imagem:docker buildx build -t growgraph/ontocast:0.1.4 .
Uso
A principal função do OntoCast é extrair triplas semânticas e criar um gráfico de conhecimento:
- Preparar o documento
Coloque o documento a ser processado (são aceitos os formatos de texto, JSON, PDF ou Markdown) no arquivodata/
Catálogo. O projeto fornece dados de amostra que podem ser referenciadosdata/
arquivos no diretório. - Executar o processo de extração
A OntoCast fornece uma ferramenta de linha de comando e uma API REST para execução:- método de linha de comando
Usar ferramentas CLI para processar documentos:uv run ontocast process --input data/sample.md --output output.ttl
Isso colocará
sample.md
O arquivo é processado em triplas RDF e enviado para ooutput.ttl
(formato de tartaruga). - Método da API REST
Depois de iniciar o serviço, acesse o/process
Pontos finais:curl -X POST http://localhost:8999/process -H "Content-Type: application/json" -d '{"input": "data/sample.md"}'
A resposta retornará os dados ternários e de ontologia extraídos.
- método de linha de comando
- Exibir resultados
Após o processamento, os resultados são armazenados em um armazenamento ternário (por exemplo, Fuseki). Os resultados são armazenados em um armazenamento ternário (por exemplo, Fuseki), que pode ser acessado por meio da interface da Web do Fuseki (padrão).http://localhost:3032
) consultar o Knowledge Graph ou usar a linguagem de consulta SPARQL para obter dados. - Otimização da ontologia
O OntoCast oferece suporte à otimização automática da ontologia. Se precisar ajustar a ontologia manualmente, você pode editar o arquivodata/ontologies/
arquivo de ontologia no diretório e execute novamente o processo de extração. - Usando o GraphRAG
O OntoCast oferece suporte à geração de aumento de recuperação baseada em gráficos de conhecimento (GraphRAG). Após a conclusão do processamento, a pesquisa semântica é realizada usando o gráfico de conhecimento gerado:uv run ontocast search --query "特定关键词" --graph output.ttl
Isso retornará resultados ternários relacionados à palavra-chave.
Operação da função em destaque
- fragmentação semânticaOntoCast divide automaticamente documentos longos em partes semanticamente semelhantes, garantindo uma extração mais precisa de triplas. Os usuários não precisam definir os parâmetros de fragmentação manualmente, o sistema os processará automaticamente de acordo com a similaridade semântica.
- discriminação físicaO OntoCast identifica e unifica referências de entidades ao lidar com documentos múltiplos ou longos. Por exemplo, "Apple" pode se referir a uma empresa ou a uma fruta em diferentes contextos, e o OntoCast os classificará corretamente de acordo com o contexto.
- Suporte a vários formatosOs usuários podem carregar arquivos PDF ou Markdown diretamente, que o OntoCast converte automaticamente para o formato de processamento interno sem pré-processamento adicional.
- Compatibilidade com MCP: através de
/process
o OntoCast é compatível com o Model Control Protocol para facilitar a integração com outros sistemas.
advertência
- Certifique-se de que o serviço de armazenamento ternário (por exemplo, Fuseki) esteja funcionando corretamente; caso contrário, os resultados da extração não serão salvos.
- Ao processar documentos grandes, é recomendável definir o
RECURSION_LIMIT
responder cantandoESTIMATED_CHUNKS
para evitar problemas de desempenho. - A documentação do projeto está localizada em
docs/
que fornece guias de usuário detalhados e referências de API.
cenário do aplicativo
- pesquisa acadêmica
Os pesquisadores podem usar o OntoCast para extrair os principais conceitos e relacionamentos de artigos acadêmicos para criar um gráfico de conhecimento de domínio. Por exemplo, ao lidar com artigos de biologia, os genes, as proteínas e suas interações podem ser extraídos para gerar uma base de conhecimento consultável. - Gerenciamento de documentos corporativos
As empresas podem converter documentos internos (por exemplo, manuais técnicos, contratos) em gráficos de conhecimento para recuperação e análise rápidas. Por exemplo, a extração de termos, valores e informações de partes relacionadas de contratos melhora a eficiência do gerenciamento de informações. - Otimização da pesquisa semântica
Os desenvolvedores da Web podem usar o OntoCast para criar uma funcionalidade de pesquisa semântica que extrai dados estruturados de conteúdo não estruturado e melhora a precisão dos resultados da pesquisa. - Sistema inteligente de perguntas e respostas (Q&A)
O OntoCast pode oferecer suporte a gráficos de conhecimento para sistemas de perguntas e respostas. Por exemplo, extrair triplas de um documento de FAQ da empresa para responder a perguntas específicas do usuário sobre um produto ou serviço.
QA
- Quais formatos de arquivo são compatíveis com o OntoCast?
Há suporte para os formatos de texto, JSON, PDF e Markdown. Mais formatos poderão ser ampliados no futuro. - Como escolher o armazenamento ternário?
O Fuseki é recomendado para uma configuração mais simples e melhor desempenho do que o Neo4j. Consultedocker/fuseki/.env.example
Configuração. - É necessária uma ontologia predefinida?
O OntoCast gera e otimiza ontologias automaticamente e também suporta ontologias personalizadas fornecidas pelo usuário. - Como você lida com documentos grandes?
Sugestões de adiçõesESTIMATED_CHUNKS
(por exemplo, definido como 50) e certifique-se de que os recursos de hardware sejam suficientes. O chunking semântico é otimizado automaticamente para processamento. - Quais modelos de idioma são compatíveis?
Modelos que suportam OpenAI (por exemplo.gpt-4o-mini
) e modelos locais (por exemplo, os executados pelo Ollama).