بناء سحر الذكاء الاصطناعي مع Vercel SDK 3.1: من برامج الطرفية إلى روبوتات الدردشة التفاعلية

فريق نقطة
بواسطة فريق نقطة ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

تطوير الويب بالذكاء الاصطناعي

في هذه المقالة، نغوص في Vercel AI SDK 3.1 القوي، مسلطين الضوء على كيفية تحويل برامج الطرفية الأساسية إلى روبوتات دردشة ديناميكية وتفاعلية. التركيز على استخدام ميزات SDK المختلفة لبناء تطبيق يعمل بالذكاء الاصطناعي. سواء كنت مبتدئاً أو مطوراً متقدماً، سيوفر لك هذا الدليل رؤى عملية.

البداية

المتطلبات الأساسية

  • معرفة أساسية بـ JavaScript و TypeScript
  • تثبيت Node.js
  • معرفة أساسية بـ Next.js مفيدة ولكنها ليست مطلوبة

إعداد بيئتك

ابدأ بتهيئة مشروع Node.js جديد وتثبيت Vercel AI SDK.

npm init -y
npm install @ai-sdk/openai ai dotenv zod

أنشئ ملف TypeScript (index.ts) في دليل مشروعك. هذا هو المكان الذي سنكتب فيه النص البرمجي الرئيسي.

الخطوة 1: بناء برنامج طرفية بسيط

توليد النص

ابدأ بإنشاء دالة رئيسية لتوليد بعض النص.

import { openai } from "@ai-sdk/openai";
import { generateText } from "ai";
import dotenv from "dotenv";
 
dotenv.config();
 
async function main() {
  const result = await generateText({
    model: openai("gpt-4o"),
    prompt: "أخبرني نكتة.",
  });
 
  console.log(result.text);
}
 
main().catch(console.error);

لتشغيل هذا النص البرمجي، استخدم:

npx ts-node index.ts

استخدام البث للاستجابات في الوقت الفعلي

حسّن النص البرمجي لاستخدام البث، مما يوفر تغذية راجعة في الوقت الفعلي أثناء توليد النص.

import { openai } from "@ai-sdk/openai";
import { streamText } from "ai";
import dotenv from "dotenv";
 
dotenv.config();
 
async function main() {
  const result = await streamText({
    model: openai("gpt-4o"),
    prompt: "أخبرني نكتة.",
  });
 
  for await (const textPart of result.textStream) {
    process.stdout.write(textPart);
  }
}
 
main().catch(console.error);

الخطوة 2: البيانات المهيكلة مع Zod

باستخدام Zod، يمكننا إرجاع الاستجابات بتنسيق مهيكل.

import { openai } from "@ai-sdk/openai";
import { generateObject } from "ai";
import dotenv from "dotenv";
import { z } from "zod";
 
dotenv.config();
 
async function main() {
  const result = await generateObject({
    model: openai("gpt-4o"),
    prompt: "أخبرني نكتة. يرجى تضمين درجة الحرارة الحالية في نيويورك",
    schema: z.object({
      setup: z.string().describe("مقدمة النكتة"),
      punchline: z.string().describe("نهاية النكتة المضحكة"),
    }),
  });
 
  console.log(result.object);
}
 
main().catch(console.error);

الخطوة 3: التفاعل مع العالم الخارجي باستخدام الأدوات

وسّع الوظائف من خلال تمكين النموذج من استخدام الأدوات.

import { openai } from "@ai-sdk/openai";
import { generateText, streamText } from "ai";
import dotenv from "dotenv";
import { z } from "zod";
 
dotenv.config();
 
async function main() {
  const location = "لندن";
  const result = await generateText({
    model: openai("gpt-4o"),
    prompt: `أنت روبوت دردشة مضحك. موقع المستخدم: ${location}`,
    tools: {
      weather: {
        description: "احصل على الطقس لموقع المستخدم",
        parameters: z.object({
          location: z.string().describe("موقع المستخدم"),
        }),
        execute: async ({ location }) => {
          const temperature = Math.floor(Math.random() * 31);
          return { temperature };
        },
      },
    },
  });
 
  if (result.toolResults && result.toolCalls) {
    const joke = await streamText({
      model: openai("gpt-4o"),
      prompt: `أخبرني نكتة تتضمن ${location}
               ودرجة حرارتها الحالية (${result.toolResults[0].result.temperature})`,
    });
 
    for await (const textPart of joke.textStream) {
      process.stdout.write(textPart);
    }
  }
}
 
main().catch(console.error);

الخطوة 4: بناء روبوت دردشة تفاعلي

الآن، دعنا نستفيد من SDK لإنشاء روبوت دردشة بسيط.

إنشاء معالج مسار Next.js

أولاً، هيّئ مشروع Next.js:

npx create-next-app@latest my-ai-chatbot
cd my-ai-chatbot
npm install @ai-sdk/openai ai dotenv zod ai/rsc

أنشئ ملف مسار في app/api/chat/route.ts:

import { streamText } from "ai";
import { openai } from "@ai-sdk/openai";
 
export async function POST(request: Request) {
  const { messages } = await request.json();
  const stream = await streamText({
    model: openai("gpt-4o"),
    system: "أنت مساعد مفيد.",
    messages,
  });
  return stream.toAIStreamResponse();
}

إنشاء واجهة الدردشة

داخل app/chat/page.jsx، قم بإعداد واجهة أمامية بسيطة للتفاعل مع مسار API.

"use client";
 
import { useChat } from "ai/react";
 
export default function Chat() {
  const { messages, input, handleInputChange, handleSubmit } = useChat();
  return (
    <div>
      {messages.map((m) => (
        <div key={m.id}>
          {m.role === "user" ? "المستخدم: " : "الذكاء الاصطناعي: "}
          {m.content}
        </div>
      ))}
      <form onSubmit={handleSubmit}>
        <input
          value={input}
          placeholder="قل شيئاً..."
          onChange={handleInputChange}
        />
      </form>
    </div>
  );
}

الخلاصة

لقد نجحنا في بناء مجموعة من التطبيقات التي تعمل بالذكاء الاصطناعي باستخدام Vercel AI SDK 3.1، من برامج الطرفية التي تولد النص إلى روبوتات الدردشة التفاعلية التي تستفيد من البث والمكونات. هذا يوضح الميزات القوية لـ SDK ومرونته في حالات الاستخدام المختلفة.

لمزيد من التفاصيل، راجع وثائق Vercel AI SDK الرسمية.

تعرف على المزيد حول Vercel AI SDK في الوثائق الرسمية.


هل تريد قراءة المزيد من المقالات؟ تحقق من أحدث مقال لدينا على Technological Innovations that are Changing the Face of Saudi Farming.

ناقش مشروعك معنا

نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.

دعنا نجد أفضل الحلول لاحتياجاتك.