ابنِ وكلاء وأدوات وسير عمل بلغة TypeScript باستخدام Mastra عبر نماذج Venice الخاصة والمتوافقة مع OpenAI.
Mastra هو إطار عمل بلغة TypeScript لبناء وكلاء الذكاء الاصطناعي وأدواتهم وسير العمل. اربطه بـ Venice عبر تهيئة نقطة نهاية نموذج مخصّصة متوافقة مع OpenAI.
أنشئ وكيلًا ووجّه تهيئة النموذج الخاصة به إلى Venice API:
// src/mastra/agents/venice-agent.tsimport { Agent } from '@mastra/core/agent'export const veniceAgent = new Agent({ id: 'venice-agent', name: 'Venice Agent', instructions: ` You are a concise, privacy-respecting assistant. Give accurate answers and say when you are uncertain. `, model: { id: 'venice/venice-uncensored', url: 'https://api.venice.ai/api/v1', apiKey: process.env.VENICE_API_KEY, },})
الجزء الأول من id هو تسمية التوجيه في Mastra. يرسل Mastra بقية معرّف النموذج، وهو venice-uncensored، إلى Venice.
اضبط url على عنوان URL الأساسي للـ API الموضح أعلاه. لا تُلحق /chat/completions؛ فـ Mastra يضيف هذا المسار.
سجّل الوكيل في نسخة Mastra الخاصة بك:
// src/mastra/index.tsimport { Mastra } from '@mastra/core'import { veniceAgent } from './agents/venice-agent'export const mastra = new Mastra({ agents: { veniceAgent },})
شغّل خادم التطوير وافتح عنوان URL الظاهر في الطرفية لاختبار الوكيل داخل Mastra Studio:
import { mastra } from './src/mastra/index'const agent = mastra.getAgentById('venice-agent')const result = await agent.generate( 'Explain why zero data retention matters in two sentences.',)console.log(result.text)console.log(result.usage)
استخدم stream() عندما ترغب في عرض المخرجات لحظة وصولها:
const agent = mastra.getAgentById('venice-agent')const result = await agent.stream( 'Write a short poem about private AI inference.',)for await (const chunk of result.textStream) { process.stdout.write(chunk)}
مرّر مخطط Zod عبر structuredOutput لاستقبال بيانات موثّقة:
import { z } from 'zod'const result = await veniceAgent.generate( 'Compare private and data-retaining AI inference.', { structuredOutput: { schema: z.object({ summary: z.string(), privacyBenefits: z.array(z.string()), recommendation: z.string(), }), }, },)console.log(result.object)
إذا كان النموذج المختار لا يدعم وضع المخرجات المهيكلة في الـ API، فاضبط jsonPromptInjection: true داخل structuredOutput ليقوم Mastra بإضافة المخطط إلى التوجيه (prompt) بدلًا من ذلك.