Wrap any LLM model from the @ai-sdk/* library, to automatically fire prompt- & completion tokens used by every model call.
Copy
Ask AI
pnpm add @polar-sh/ingestion ai @ai-sdk/openai
Copy
Ask AI
import { Ingestion } from "@polar-sh/ingestion";import { LLMStrategy } from "@polar-sh/ingestion/strategies/LLM";import { generateText } from "ai";import { openai } from "@ai-sdk/openai";// Setup the LLM Ingestion Strategyconst llmIngestion = Ingestion({ accessToken: process.env.POLAR_ACCESS_TOKEN }) .strategy(new LLMStrategy(openai("gpt-4o"))) .ingest("openai-usage");export async function POST(req: Request) { const { prompt }: { prompt: string } = await req.json(); // Get the wrapped LLM model with ingestion capabilities // Pass Customer Id to properly annotate the ingestion events with a specific customer const model = llmIngestion.client({ customerId: request.headers.get("X-Polar-Customer-Id") ?? "", }); const { text } = await generateText({ model, system: "You are a helpful assistant.", prompt, }); return Response.json({ text });}
The ingestion helper is a simple wrapper around the Polar events ingestion API. It takes care of batching and sending events to Polar in the background, without blocking your main thread.
PydanticAI is an AI agent framework for Python. A common use-case with AI applications is to track the usage of LLMs, like the number of input and output tokens, and bill the customer accordingly.With our PydanticAI strategy, you can easily track the usage of LLMs and send the data to Polar for billing.
Copy
Ask AI
import osfrom polar_sdk.ingestion import Ingestionfrom polar_sdk.ingestion.strategies import PydanticAIStrategyfrom pydantic import BaseModelfrom pydantic_ai import Agentingestion = Ingestion(os.getenv("POLAR_ACCESS_TOKEN"))strategy = ingestion.strategy(PydanticAIStrategy, "ai_usage")class MyModel(BaseModel): city: str country: stragent = Agent("gpt-4.1-nano", output_type=MyModel)if __name__ == '__main__': result = agent.run_sync("The windy city in the US of A.") print(result.output) strategy.ingest("CUSTOMER_ID", result)