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.
4.9 KiB
| layout | title | parent |
|---|---|---|
| default | Proposta de Refatoração do Diretório de Esquemas | 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
- Estrutura plana - Todos os esquemas em um único diretório dificultam a compreensão das relações.
- Preocupações misturadas - Tipos principais, objetos de domínio e contratos de API todos misturados.
- Nomenclatura pouco clara - Arquivos como "object.py", "types.py", "topic.py" não indicam claramente seu propósito.
- 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
-
Organização hierárquica - Separação clara entre tipos principais, modelos de conhecimento e contratos de serviço.
-
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 paraservices/prompt.py, tipos de dados paraknowledge/nlp.py -
Agrupamento lógico: Todos os tipos de incorporação consolidados em
knowledge/embeddings.pyTodos os contratos de serviço relacionados a LLM emservices/llm.pySeparaçã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. -
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
- Navegação mais fácil - Os desenvolvedores podem encontrar rapidamente o que precisam.
- Melhor modularidade - Limites claros entre diferentes aspectos.
- Importações mais simples - Caminhos de importação mais intuitivos.
- 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
# 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
- Mantenha a compatibilidade com versões anteriores, mantendo as importações no diretório raiz
__init__.py. - Mova os arquivos gradualmente, atualizando as importações conforme necessário.
- Considere adicionar um
legacy.pyque importe tudo para o período de transição. - Atualize a documentação para refletir a nova estrutura.
<function_calls> [{"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"}]