@omegaengine/vercel-ai
v0.1.0
Published
Vercel AI SDK integration with OmegaEngine governance
Maintainers
Readme
✨ Features
- 🚀 Drop-in Middleware — Add governance with one line
- 📡 Streaming Support — Governed streaming responses
- 🛡️ Edge Compatible — Works on Vercel Edge Functions
- 🔧 Tool Validation — Validate AI tool calls
- 📊 Analytics — Full observability for AI usage
📦 Installation
npm install @omegaengine/vercel-ai
# or
pnpm add @omegaengine/vercel-ai🚀 Quick Start
Next.js App Router
// app/api/chat/route.ts
import { openai } from '@ai-sdk/openai';
import { streamText } from 'ai';
import { withOmega } from '@omegaengine/vercel-ai';
export async function POST(req: Request) {
const { messages } = await req.json();
// Wrap with OmegaEngine governance
const result = await withOmega(
() => streamText({
model: openai('gpt-4-turbo'),
messages,
}),
{
apiKey: process.env.OMEGA_API_KEY,
policyId: 'chat_policy',
}
);
return result.toDataStreamResponse();
}Middleware Approach
import { createOmegaMiddleware } from '@omegaengine/vercel-ai';
const omegaMiddleware = createOmegaMiddleware({
apiKey: process.env.OMEGA_API_KEY,
policyId: 'global_policy',
});
// Use as middleware
export const POST = omegaMiddleware(async (req: Request) => {
// Your AI logic here
});📡 Governed Streaming
Stream with governance checks:
import { streamText } from 'ai';
import { omegaStream } from '@omegaengine/vercel-ai';
const result = await omegaStream(
streamText({
model: openai('gpt-4-turbo'),
messages: [{ role: 'user', content: 'Hello' }],
}),
{
apiKey: process.env.OMEGA_API_KEY,
validateChunks: true, // Check each chunk
blockOnDeny: true, // Stop stream if denied
}
);🔧 Tool Governance
Validate tool calls before execution:
import { tool } from 'ai';
import { governedTool } from '@omegaengine/vercel-ai';
const weatherTool = governedTool(
tool({
description: 'Get weather',
parameters: z.object({ city: z.string() }),
execute: async ({ city }) => getWeather(city),
}),
{
apiKey: process.env.OMEGA_API_KEY,
policyId: 'tool_policy',
}
);📊 Analytics Hook
Track AI usage in your app:
// components/Chat.tsx
import { useOmegaAnalytics } from '@omegaengine/vercel-ai/react';
export function Chat() {
const { decisions, violations, usage } = useOmegaAnalytics({
apiKey: process.env.OMEGA_API_KEY,
});
return (
<div>
<p>Total decisions: {decisions}</p>
<p>Policy violations: {violations}</p>
<p>Tokens used: {usage.tokens}</p>
</div>
);
}🔌 Works With All Providers
- ✅ OpenAI
- ✅ Anthropic
- ✅ Google AI
- ✅ Mistral
- ✅ Cohere
- ✅ Any Vercel AI SDK provider
📄 License
Licensed under the Apache-2.0 License.
