Mirascope
Mirascope is een intuïtieve manier om kunstmatige intelligentie-gestuurde applicaties te bouwen met behulp van LLM 's. Hun bibliotheek integreert met Logfire om observatie en monitoring van LLM 's eenvoudig en naadloos te maken.
Je kunt het inschakelen met hun @with_logire-decorateur, die zal werken met alle modelaanbieders die ze ondersteunen (bijv. OpenAI, Anthropic, Groq, enz.).
import logfire
from mirascope.logfire import with_logfire
from mirascope.anthropic import AnthropicCall
logfire.configure()
@with_logfire
class BookRecommender(AnthropicCall):
prompt_template = "Please recommend some {genre} books"
genre: str
recommender = BookRecommender(genre="fantasy")
response = recommender.call() # this will automatically get logged with logfire
print(response.content)
#> Here are some recommendations for great fantasy book series: ...
Dit geeft je:
- omvat
AnthropicCall.call()en legt items vast zoals promptsjablonen, sjablooneigenschappen en velden en invoer- / uitvoereigenschappen - Menselijk leesbare weergave van het gesprek met de agent
- Details van de reactie, inclusief het aantal gebruikte tokens
Omdat Mirascope bovenop Pydantic is gebouwd, kunt u de Pydantic-plug-in gebruiken om aanvullende logboeken en statistieken over modelvalidatie bij te houden, die u kunt inschakelen met de [pydantic_plugin ][logfire.configure(pydantic_plugin)]-configuratie.
Dit kan met name handig zijn bij het gebruik van LLM 's om gestructureerde informatie te extraheren.
from typing import Literal, Type
import logfire
from mirascope.logfire import with_logfire
from mirascope.openai import OpenAIExtractor
from pydantic import BaseModel
logfire.configure(pydantic_plugin=logfire.PydanticPlugin(record="all"))
class TaskDetails(BaseModel):
description: str
due_date: str
priority: Literal["low", "normal", "high"]
@with_logfire
class TaskExtractor(OpenAIExtractor[TaskDetails]):
extract_schema: Type[TaskDetails] = TaskDetails
prompt_template = """
Extract the task details from the following task:
{task}
"""
task: str
task = "Submit quarterly report by next Friday. Task is high priority."
task_details = TaskExtractor(
task=task
).extract() # this will be logged automatically with logfire
assert isinstance(task_details, TaskDetails)
print(task_details)
#> description='Submit quarterly report' due_date='next Friday' priority='high'
Dit geeft je:
- Tracking voor validatie van pydantische modellen
- omvat
OpenAIExtractor.extract()en legt items vast zoals promptsjablonen, sjablooneigenschappen en velden en invoer- / uitvoereigenschappen - Door mensen leesbare weergave van gesprekken met agenten, inclusief functieaanroepen
- Details van de reactie, inclusief het aantal gebruikte tokens
Mirascope OpenAI Extractor Spans en OpenAI Spans en functieaanroepen
Raadpleeg de documentatie voor meer informatie over Mirascope en wat u ermee kunt doen.
本文总阅读量次