Skip to main content

Langfuse integration for pydantic-ai

Project description

pydantic-ai-langfuse

pydantic-ai-langfuse extends pydantic-ai-slim to integrate Langfuse tracking into your OpenAI model interactions. By incorporating our Langfuse OpenAI model settings, you can easily label, track, and filter your generations using enriched metadata.

Installation

Ensure you have the required dependencies installed:

pip install pydantic-ai-langfuse

Environment Setup

Before running your model, you need to set up the following environment variables:

  • OPENAI_API_KEY: Your OpenAI API key.
  • LANGFUSE_PUBLIC_KEY: Your Langfuse public key.
  • LANGFUSE_SECRET_KEY: Your Langfuse secret key.
  • LANGFUSE_HOST: Your Langfuse host endpoint.

Quickstart

Below is a complete Python example showing how to set up and use the LangfuseOpenAIModel with extra model settings. This example uses the synchronous run_sync method with basic error handling and retries built in.

if __name__ == "__main__":
    import os

    from langfuse.openai import AsyncOpenAI
    from pydantic_ai import Agent

    from pydantic_ai_langfuse import LangfuseOpenAIModel, LangfuseOpenAIModelSettings

    for var in [
        "OPENAI_API_KEY",
        "LANGFUSE_PUBLIC_KEY",
        "LANGFUSE_SECRET_KEY",
        "LANGFUSE_HOST",
    ]:
        if var not in os.environ:
            raise OSError(f"Missing env variable: {var}")

    weather_agent = Agent(
        model=LangfuseOpenAIModel("gpt-4o", openai_client=AsyncOpenAI()),
        system_prompt="Be concise: reply with one sentence.",
        retries=2,
    )

    model_settings: LangfuseOpenAIModelSettings = {
        "name": "weather_query",
        "metadata": {"location": "medolago", "query_type": "weather"},
        "session_id": "testoneditest",
        "user_id": "user123",
        "tags": ["weather", "italy", "query"],
    }

    result = weather_agent.run_sync(
        user_prompt="What the weather like in Medolago BG?",
        model_settings=model_settings,
    )

    print("Response:", result.data)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_ai_langfuse-0.2.1.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_ai_langfuse-0.2.1-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_ai_langfuse-0.2.1.tar.gz.

File metadata

  • Download URL: pydantic_ai_langfuse-0.2.1.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.10.5 Linux/6.8.0-52-generic

File hashes

Hashes for pydantic_ai_langfuse-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ac91023840182e55d0920c4774d8e55fbda246ae0010a7bd68dea167ec9a1cc5
MD5 37d370e925e39605091140f9241af7c9
BLAKE2b-256 0872bc84c59ab1e8a8b853761b07163b0019ccdb605ece725a8cd06cfbf71fb1

See more details on using hashes here.

File details

Details for the file pydantic_ai_langfuse-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: pydantic_ai_langfuse-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.0 CPython/3.10.5 Linux/6.8.0-52-generic

File hashes

Hashes for pydantic_ai_langfuse-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c60bb030686e8678847ef6a69e338b5a13d116bdf6745f410fb60a918eb5ea6
MD5 ff500233bd6bcc073feaa53e2bc838c7
BLAKE2b-256 7c7f78e468cb9af2172f8d78a7489a6d20ab24b6d019d06ad09a54b816e57f7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page