Aller au contenu

anthropologie

Introduction à

Logfire prend en charge l'utilisation d'une ligne de code supplémentaire pour détecter les appels à Anthropic.

import anthropic
import logfire

client = anthropic.Anthropic()

logfire.configure()
logfire.instrument_anthropic(client)  # (1)!

response = client.messages.create(
    max_tokens=1000,
    model='claude-3-haiku-20240307',
    system='You are a helpful assistant.',
    messages=[{'role': 'user', 'content': 'Please write me a limerick about Python logging.'}],
)
print(response.content[0].text)
  1. Si vous n'avez pas accès à l'instance cliente, vous pouvez passer une classe (par exemple logfire.instrument_anthropic(anthropic.Anthropic)) ou simplement détecter les classes 两者。人类学 et 人类学。AsyncAnthropic sans passer d'argument (par exemple logfire.instrument_anthropic()).

_
Pour plus d'informations, voir instrument_anthropic() API reference.

Avec cela, vous pouvez obtenir:

  • La durée autour de l'appel à Anthropic, qui enregistre la durée et capture toute exception qui pourrait se produire

  • Affichage lisible par l'homme des conversations avec les agents

  • Détails de la réponse, y compris le nombre de jetons utilisés

Logfire Anthropique
Anthropic span et conversation
Arguments anthropiques Logfire
Les arguments Span incluent les détails de la réponse

Méthodes couvertes

Les approches anthropologiques suivantes sont couvertes:

Toutes les méthodes couvertes par 人为的方法。人类学 et 人类学。异步人。

Stream réponse

Lors de la détection d'une réponse de flux, Logfire crée deux spreads-un autour de la demande initiale et un autour de la réponse de flux.

Ici, nous utilisons également les types Rich Live et Markdown pour rendre la réponse en temps réel dans le terminal.: Danseur:

import anthropic
import logfire
from rich.console import Console
from rich.live import Live
from rich.markdown import Markdown

client = anthropic.AsyncAnthropic()
logfire.configure()
logfire.instrument_anthropic(client)


async def main():
    console = Console()
    with logfire.span('Asking Anthropic to write some code'):
        response = client.messages.stream(
            max_tokens=1000,
            model='claude-3-haiku-20240307',
            system='Reply in markdown one.',
            messages=[{'role': 'user', 'content': 'Write Python to show a tree of files 🤞.'}],
        )
        content = ''
        with Live('', refresh_per_second=15, console=console) as live:
            async with response as stream:
                async for chunk in stream:
                    if chunk.type == 'content_block_delta':
                        content += chunk.delta.text
                        live.update(Markdown(content))


if __name__ == '__main__':
    import asyncio

    asyncio.run(main())

Dans Logfire, cela ressemble à ceci:

Logfire Anthropic Streaming avec Logfire
Anthropic Streaming Réponse

本文总阅读量次