Anthropologische¶
präsentiert¶
Logfire unterstützt die Verwendung einer zusätzlichen Codezeile, um Aufrufe an Anthropic zu erkennen.
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)
-
Wenn Sie keinen Zugriff auf die Clientinstanz haben, können Sie entweder eine Klasse übergeben (z.B.
logfire.instrument_anthropic(anthropic.Anthropic)) oder einfach keine Parameter übergeben (z.B.logfire.instrument_anthropic()), um die Klassen两者。人类学und人类学。AsyncAnthropiczu erkennen.
_
Weitere Informationen finden Sie unter [instrument_anthropic() API-Referenz][logfire. Logfire. instrument_anthropic].
Mit ihm können Sie bekommen:
-
Um die Spanne eines Aufrufs zum Anthropischen herum, der die Dauer aufzeichnet und etwaige Anomalien erfasst, die auftreten können
-
Vom Menschen lesbare Displays für Gespräche mit einem Sitzplatz
-
Details der Antworten, einschließlich der Anzahl der verwendeten Token
Die abgedeckten Methoden¶
Folgende anthropologische Methoden werden abgedeckt:
client.messages.createclient.messages.stream(客户端.messages.stream)client.beta.tools.messages.create
Alle Methoden werden von 人为的方法。人类学 und 人类学。异步人。 abgedeckt
Flow antworten¶
Bei der Erkennung von Streaming-Antworten erstellt Logfire zwei Spulen-eine um die ursprüngliche Anfrage und eine um die Streaming-Antwort.
Hier verwenden wir Rich. Live und Markdown Typ Rendering Antwort in Echtzeit im Terminal: Tänzer:.
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())
In Logfire sieht es wie folgt aus:
本文总阅读量次