Histórico da questão
O exemplo do sistema composto é propenso a problemas de incompatibilidade de formato de dados ou inconsistência de estado quando o sistema de recuperação, o sistema de classificação e o sistema de geração trabalham em conjunto.
prescrição
- Padronização de middlewareAcordo sobre um formato uniforme de troca de dados JSON Schema em todas as sub-rotinas.
- Monitoramento de condiçõesRastreamento de entradas e saídas de módulos usando visualizações do LangWatch
- Mecanismo de reversãoAdicionar lógica de validação de dados no run.py para voltar automaticamente à etapa anterior em caso de exceção
prático
- Criar shared_schema.py para definir uniformemente os campos de dados e as regras de validação
- Modifique o signatures.py de cada subrotina para herdar as assinaturas básicas
- Adicionar dependência de jsonschema em requirements.txt para validação de dados
melhores práticas
Recomenda-se começar com exemplos compostos de classes de processamento de documentos (por exemplo, rag_system), cujos dados textuais têm menor risco de consistência do que os dados estruturados e são mais fáceis de depurar.
Essa resposta foi extraída do artigoExemplos de DSPy: Exemplos práticos que demonstram a funcionalidade do DSPyO































