Mirascope

Mirascope-это интуитивно понятный способ создания приложений с использованием LMs на базе искусственного интеллекта. Их библиотеки интегрируются с Logfire, что делает LLMs легко и легко отслеживаться.

Вы можете включить его с помощью их @with_logire декора, который будет применяться ко всем поставщикам моделей, которые они поддерживают (например, OpenAI, Anthropic, Groq и т. д.).

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

Это даст вам:

  • вращается вокруг AnthropicCall.call(), захватывая такие элементы, как шаблоны запросов, свойства и поля шаблона, а также свойства ввода/вывода
  • Человеческое читаемое отображение разговоров с агентами
  • Сведения о ответе, включая количество использованных токенов
Anthropic Call от Mirascope
Mirascope Anthropic Call span and Anthropic span and conversation

Поскольку Mirascope построен поверх Pydantic, вы можете использовать плагин Pydantic для отслеживания других журналов и индикаторов, связанных с проверкой модели, а также [. pydantic_plugin ][logfire.configure(pydantic_plugin)] конфигурируется для включения его.

Это может быть особенно полезным при использовании LMs для извлечения структурированной информации:

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'

Это даст вам:

  • Проверка Pydantic модели отслеживания
  • вращается вокруг OpenAIExtractor.extract(), захватывая такие элементы, как шаблоны запросов, свойства и поля шаблона, а также свойства ввода/вывода
  • Человечески читаемый дисплей разговоров с агентами, включая вызовы функций
  • Сведения о ответе, включая количество использованных токенов
Anthropic Call от Mirascope
Mirascope OpenAI Extractor span and function call

Диапазоны экстрактора OpenAI и диапазоны OpenAI и вызовы функций

Для получения дополнительной информации о Mirascope и о том, что вы можете сделать, ознакомьтесь с ее документацией.


本文总阅读量次