mirror of
https://github.com/trustgraph-ai/trustgraph.git
synced 2026-04-25 08:26:21 +02:00
Native CLI i18n: The TrustGraph CLI has built-in translation support that dynamically loads language strings. You can test and use different languages by simply passing the --lang flag (e.g., --lang es for Spanish, --lang ru for Russian) or by configuring your environment's LANG variable. Automated Docs Translations: This PR introduces autonomously translated Markdown documentation into several target languages, including Spanish, Swahili, Portuguese, Turkish, Hindi, Hebrew, Arabic, Simplified Chinese, and Russian.
99 lines
4.9 KiB
Markdown
99 lines
4.9 KiB
Markdown
---
|
|
layout: default
|
|
title: "Proposta de Refatoração do Diretório de Esquemas"
|
|
parent: "Portuguese (Beta)"
|
|
---
|
|
|
|
# Proposta de Refatoração do Diretório de Esquemas
|
|
|
|
> **Beta Translation:** This document was translated via Machine Learning and as such may not be 100% accurate. All non-English languages are currently classified as Beta.
|
|
|
|
## Problemas Atuais
|
|
|
|
1. **Estrutura plana** - Todos os esquemas em um único diretório dificultam a compreensão das relações.
|
|
2. **Preocupações misturadas** - Tipos principais, objetos de domínio e contratos de API todos misturados.
|
|
3. **Nomenclatura pouco clara** - Arquivos como "object.py", "types.py", "topic.py" não indicam claramente seu propósito.
|
|
4. **Ausência de camadas claras** - Não é fácil ver o que depende do quê.
|
|
|
|
## Estrutura Proposta
|
|
|
|
```
|
|
trustgraph-base/trustgraph/schema/
|
|
├── __init__.py
|
|
├── core/ # Core primitive types used everywhere
|
|
│ ├── __init__.py
|
|
│ ├── primitives.py # Error, Value, Triple, Field, RowSchema
|
|
│ ├── metadata.py # Metadata record
|
|
│ └── topic.py # Topic utilities
|
|
│
|
|
├── knowledge/ # Knowledge domain models and extraction
|
|
│ ├── __init__.py
|
|
│ ├── graph.py # EntityContext, EntityEmbeddings, Triples
|
|
│ ├── document.py # Document, TextDocument, Chunk
|
|
│ ├── knowledge.py # Knowledge extraction types
|
|
│ ├── embeddings.py # All embedding-related types (moved from multiple files)
|
|
│ └── nlp.py # Definition, Topic, Relationship, Fact types
|
|
│
|
|
└── services/ # Service request/response contracts
|
|
├── __init__.py
|
|
├── llm.py # TextCompletion, Embeddings, Tool requests/responses
|
|
├── retrieval.py # GraphRAG, DocumentRAG queries/responses
|
|
├── query.py # GraphEmbeddingsRequest/Response, DocumentEmbeddingsRequest/Response
|
|
├── agent.py # Agent requests/responses
|
|
├── flow.py # Flow requests/responses
|
|
├── prompt.py # Prompt service requests/responses
|
|
├── config.py # Configuration service
|
|
├── library.py # Librarian service
|
|
└── lookup.py # Lookup service
|
|
```
|
|
|
|
## Principais Alterações
|
|
|
|
1. **Organização hierárquica** - Separação clara entre tipos principais, modelos de conhecimento e contratos de serviço.
|
|
2. **Melhores nomes:**
|
|
`types.py` → `core/primitives.py` (propósito mais claro)
|
|
`object.py` → Divisão entre arquivos apropriados com base no conteúdo real.
|
|
`documents.py` → `knowledge/document.py` (singular, consistente)
|
|
`models.py` → `services/llm.py` (mais claro que tipo de modelos)
|
|
`prompt.py` → Divisão: partes de serviço para `services/prompt.py`, tipos de dados para `knowledge/nlp.py`
|
|
|
|
3. **Agrupamento lógico:**
|
|
Todos os tipos de incorporação consolidados em `knowledge/embeddings.py`
|
|
Todos os contratos de serviço relacionados a LLM em `services/llm.py`
|
|
Separação clara de pares de solicitação/resposta no diretório de serviços.
|
|
Tipos de extração de conhecimento agrupados com outros modelos de domínio de conhecimento.
|
|
|
|
4. **Clareza das dependências:**
|
|
Tipos principais não têm dependências.
|
|
Modelos de conhecimento dependem apenas do núcleo.
|
|
Contratos de serviço podem depender tanto do núcleo quanto dos modelos de conhecimento.
|
|
|
|
## Benefícios da Migração
|
|
|
|
1. **Navegação mais fácil** - Os desenvolvedores podem encontrar rapidamente o que precisam.
|
|
2. **Melhor modularidade** - Limites claros entre diferentes aspectos.
|
|
3. **Importações mais simples** - Caminhos de importação mais intuitivos.
|
|
4. **Preparado para o futuro** - Fácil de adicionar novos tipos de conhecimento ou serviços sem causar desordem.
|
|
|
|
## Exemplos de Alterações de Importação
|
|
|
|
```python
|
|
# Before
|
|
from trustgraph.schema import Error, Triple, GraphEmbeddings, TextCompletionRequest
|
|
|
|
# After
|
|
from trustgraph.schema.core import Error, Triple
|
|
from trustgraph.schema.knowledge import GraphEmbeddings
|
|
from trustgraph.schema.services import TextCompletionRequest
|
|
```
|
|
|
|
## Notas de Implementação
|
|
|
|
1. Mantenha a compatibilidade com versões anteriores, mantendo as importações no diretório raiz `__init__.py`.
|
|
2. Mova os arquivos gradualmente, atualizando as importações conforme necessário.
|
|
3. Considere adicionar um `legacy.py` que importe tudo para o período de transição.
|
|
4. Atualize a documentação para refletir a nova estrutura.
|
|
|
|
<function_calls>
|
|
<invoke name="TodoWrite">
|
|
<parameter name="todos">[{"id": "1", "content": "Examinar a estrutura de diretórios do esquema atual", "status": "completed", "priority": "high"}, {"id": "2", "content": "Analisar os arquivos de esquema e seus propósitos", "status": "completed", "priority": "high"}, {"id": "3", "content": "Propor nomenclatura e estrutura aprimoradas", "status": "completed", "priority": "high"}]
|