Mirascope

Mirascope est un moyen intuitif de créer des applications basées sur l'IA avec LLMs. leur bibliothèque s'intègre à Logfire, ce qui rend l'observabilité et la surveillance des LLMs faciles et transparentes.

Vous pouvez l'activer avec leur décorateur @with_logire, qui fonctionnera avec tous les fournisseurs de modèles qu 'ils prennent en charge (par exemple OpenAI, Anthropic, Groq, etc.).

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: ...

Cela vous donnera:

  • entoure la portée de AnthropicCall.call(), capturant des éléments tels que des modèles d'invite, des propriétés et des champs de modèle et des propriétés d'entrée/sortie.
  • 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 Mirascope Anthropic Call
Mirascope Anthropic Call span et Anthropic span et conversion

Puisque Mirascope est construit sur Pydantic, vous pouvez utiliser le plugin Pydantic pour suivre des journaux et des métriques supplémentaires sur la validation du modèle, vous pouvez utiliser [. pydantic_plugin ][logfire.configure(pydantic_plugin)] est configuré pour l'activer.

Cela peut être particulièrement utile lorsque vous utilisez LLMs pour extraire des informations structurées:

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'

Ceci vous donnera:

  • Suivi de la validation du modèle Pydantic
  • entoure la portée de OpenAIExtractor.extract(), capturant des éléments tels que des modèles d'invite, des propriétés et des champs de modèle et des propriétés d'entrée/sortie.
  • Affichage lisible par l'homme des conversations avec l'agent, y compris les appels de fonctions
  • Détails de la réponse, y compris le nombre de jetons utilisés
Logfire Mirascope Anthropic Call
Mirascope OpenAI Extractor span et OpenAI span et fonction call

Mirascope OpenAI Extractor Span et OpenAI Span et appels de fonctions

Pour plus d'informations sur Mirascope et ce que vous pouvez faire avec lui, consultez sa documentation.


本文总阅读量次