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
Logfire Mirascope Antropisch gesprek
Mirascope Anthropic Oproep overspanningen en Anthropic overspanningen en gesprek

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
Logfire Mirascope Antropisch gesprek
Mirascope OpenAI Extractor-overspanningen en OpenAI-overspanningen en functieaanroepen

Mirascope OpenAI Extractor Spans en OpenAI Spans en functieaanroepen

Raadpleeg de documentatie voor meer informatie over Mirascope en wat u ermee kunt doen.


本文总阅读量次