O que dspy faz?
Estruturas de mapeamento programático de entrada que traduzem critérios algorítmicos em diretivas confiáveis de geração de texto estruturado.
Visão Geral
DSPy (Declarative Self-improving Python) é uma biblioteca do Stanford NLP que permite programar modelos de linguagem de forma sistemática. Em vez de prompts manuais, você define módulos de raciocínio (ex.: Chain-of-Thought, ReAct) e os otimiza automaticamente com exemplos.
Principais Recursos
- Módulos Programáticos: Defina pipelines de raciocínio com poucas linhas de código.
- Otimização Automática: Compile módulos com exemplos para ajustar prompts e pesos.
- Suporte a Múltiplos LMs: Funciona com OpenAI, Cohere, Hugging Face, e mais.
- Integração com Agentes: Pode ser usado em ferramentas como Claude Code, Cursor e Codex.
Exemplo de Uso
import dspy
from dspy.datasets import HotPotQA
gpt3 = dspy.OpenAI(model='gpt-3.5-turbo')
dspy.settings.configure(lm=gpt3)
class GenerateAnswer(dspy.Signature):
"""Responda a perguntas com respostas curtas e factuais."""
context = dspy.InputField(desc="Contexto da pergunta")
question = dspy.InputField(desc="Pergunta do usuário")
answer = dspy.OutputField(desc="Resposta curta")
class RAG(dspy.Module):
def __init__(self, num_passages=3):
super().__init__()
self.retrieve = dspy.Retrieve(k=num_passages)
self.generate_answer = dspy.ChainOfThought(GenerateAnswer)
def forward(self, question):
context = self.retrieve(question).passages
prediction = self.generate_answer(context=context, question=question)
return dspy.Prediction(context=context, answer=prediction.answer)
Documentação e Links
Licença
MIT License