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)
-
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人类学。AsyncAnthropicsans passer d'argument (par exemplelogfire.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
Méthodes couvertes¶
Les approches anthropologiques suivantes sont couvertes:
client.messages.createclient.messages.stream(客户端.messages.stream)client.beta.tools.messages.create
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:
本文总阅读量次