Passer au contenu principal
Après avoir créé des appels dans W&B Weave, vous souhaitez souvent ouvrir un appel unique pour inspecter ses entrées, ses sorties et ses métadonnées. Cette page explique comment afficher un appel dans l’interface utilisateur ou dans le SDK, et comment personnaliser l’affichage des données de trace par Weave dans l’interface utilisateur à l’aide de weave.Markdown. Utilisez les onglets suivants pour choisir l’interface adaptée à votre flux de travail.
Pour afficher un appel dans l’interface utilisateur :
  1. Accédez à wandb.ai et sélectionnez votre projet.
  2. Dans la barre latérale du projet Weave, cliquez sur Traces.
  3. Trouvez l’appel que vous souhaitez afficher dans le tableau.
  4. Cliquez sur l’appel pour ouvrir sa page de détails.
Pour plus d’informations sur la vue de trace, voir Naviguer dans la vue Weave Trace.

Personnaliser les traces rendues avec weave.Markdown

Une fois que vous pouvez afficher un Appel, vous souhaiterez peut-être contrôler la façon dont ses entrées et sorties apparaissent dans l’interface utilisateur. Utilisez weave.Markdown pour personnaliser la façon dont Weave affiche vos informations de trace, sans perdre les données d’origine. Cela vous permet d’afficher vos entrées et sorties sous forme de blocs de contenu mis en forme et faciles à lire, tout en préservant la structure de données sous-jacente.
Utilisez les fonctions postprocess_inputs et postprocess_output dans votre décorateur @weave.op pour mettre en forme vos données de trace. L’exemple de code suivant utilise des postprocesseurs pour afficher un appel dans Weave avec une mise en forme plus lisible :
import weave

def postprocess_inputs(query) -> weave.Markdown:
    search_box = f"""
**Search Query:**
``+`
{query}
``+`
"""
    return {"search_box": weave.Markdown(search_box),
            "query": query}

def postprocess_output(docs) -> weave.Markdown:
    formatted_docs = f"""
# {docs[0]["title"]}

{docs[0]["content"]}

[Read more]({docs[0]["url"]})

---

# {docs[1]["title"]}

{docs[1]["content"]}

[Read more]({docs[1]["url"]})
"""
    return weave.Markdown(formatted_docs)

@weave.op(
    postprocess_inputs=postprocess_inputs,
    postprocess_output=postprocess_output,
)
def rag_step(query):
    # exemples d’articles de journaux sur les entreprises du S&P 500
    docs = [
        {
            "title": "OpenAI",
            "content": "OpenAI is a company that makes AI models.",
            "url": "https://www.openai.com",
        },
        {
            "title": "Google",
            "content": "Google is a company that makes search engines.",
            "url": "https://www.google.com",
        },
    ]
    return docs

if __name__ == "__main__":
    weave.init('markdown_renderers')
    rag_step("Tell me about OpenAI")
Après avoir exécuté l’op, Weave affiche le Markdown mis en forme à côté des données d’origine dans la page de détails de l’Appel. La capture d’écran suivante montre les sorties non formatées et formatées côte à côte. Un Appel affiché dans l’interface Weave à l’aide de l’exemple de code.