بناء أداة تحليل SQL مدعومة بالذكاء الاصطناعي

في هذا الدليل، سنمر عبر عملية بناء تطبيق مدعوم بالذكاء الاصطناعي يتفاعل مع قاعدة بيانات PostgreSQL باستخدام اللغة الطبيعية. سيكون هذا التطبيق قادراً على توليد استعلامات SQL من مدخلات اللغة الطبيعية، وشرح مكونات الاستعلام بلغة بسيطة، وإنشاء رسوم بيانية لتمثيل نتائج الاستعلام.
إعداد المشروع
للبدء، سنستخدم مجموعة التقنيات التالية:
- Next.js (App Router)
- AI SDK
- OpenAI
- Zod
- Postgres مع Vercel Postgres
- shadcn-ui وTailwindCSS للتنسيق
- Recharts لتصور البيانات
استنساخ المستودع
للتركيز على وظائف الذكاء الاصطناعي، استنسخ مستودع البداية:
git clone https://github.com/vercel-labs/natural-language-postgres
cd natural-language-postgres
git checkout starterتثبيت التبعيات
ثبت التبعيات الضرورية باستخدام pnpm:
pnpm installإعداد قاعدة البيانات
أنشئ قاعدة بيانات Postgres وأعد متغيرات البيئة:
# .env.local
POSTGRES_URL="postgres://..."
OPENAI_API_KEY="sk-..."بناء واجهة الاستعلام
إنشاء مكون الإدخال
// components/QueryInput.tsx
'use client';
import { useState } from 'react';
export function QueryInput({ onSubmit }: { onSubmit: (query: string) => void }) {
const [input, setInput] = useState('');
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (input.trim()) {
onSubmit(input);
}
};
return (
<form onSubmit={handleSubmit} className="w-full max-w-2xl">
<div className="flex gap-2">
<input
type="text"
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="اسأل عن بياناتك بلغة طبيعية..."
className="flex-1 p-3 border rounded-lg"
/>
<button
type="submit"
className="px-6 py-3 bg-blue-500 text-white rounded-lg hover:bg-blue-600"
>
تحليل
</button>
</div>
</form>
);
}إنشاء مسار API
// app/api/analyze/route.ts
import { openai } from '@ai-sdk/openai';
import { generateObject } from 'ai';
import { z } from 'zod';
import { sql } from '@vercel/postgres';
const QuerySchema = z.object({
sqlQuery: z.string().describe('استعلام SQL المولد'),
explanation: z.string().describe('شرح ما يفعله الاستعلام'),
});
export async function POST(req: Request) {
const { question } = await req.json();
// توليد استعلام SQL من السؤال
const { object } = await generateObject({
model: openai('gpt-4-turbo'),
schema: QuerySchema,
prompt: `بناءً على السؤال التالي، ولد استعلام SQL لقاعدة بيانات PostgreSQL:
السؤال: ${question}
ولد استعلام SQL صالحاً وآمناً.`,
});
// تنفيذ الاستعلام
try {
const result = await sql.query(object.sqlQuery);
return Response.json({
query: object.sqlQuery,
explanation: object.explanation,
results: result.rows,
});
} catch (error) {
return Response.json(
{ error: 'فشل تنفيذ الاستعلام' },
{ status: 500 }
);
}
}تصور النتائج
إنشاء مكون الرسم البياني
// components/ResultChart.tsx
'use client';
import {
BarChart,
Bar,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
ResponsiveContainer,
} from 'recharts';
interface ResultChartProps {
data: Record<string, any>[];
xKey: string;
yKey: string;
}
export function ResultChart({ data, xKey, yKey }: ResultChartProps) {
return (
<div className="w-full h-80">
<ResponsiveContainer width="100%" height="100%">
<BarChart data={data}>
<CartesianGrid strokeDasharray="3 3" />
<XAxis dataKey={xKey} />
<YAxis />
<Tooltip />
<Bar dataKey={yKey} fill="#3b82f6" />
</BarChart>
</ResponsiveContainer>
</div>
);
}أمثلة على الاستعلامات
يمكن للمستخدمين طرح أسئلة مثل:
- "أظهر لي أفضل 10 عملاء حسب إجمالي المبيعات"
- "ما هو متوسط قيمة الطلب لكل شهر؟"
- "أي المنتجات لديها أعلى هامش ربح؟"
الخاتمة
لقد بنيت أداة تحليل SQL مدعومة بالذكاء الاصطناعي تتيح للمستخدمين استعلام قواعد البيانات باستخدام اللغة الطبيعية. يمكن توسيع هذه الأداة بإضافة المزيد من أنواع التصور ودعم استعلامات أكثر تعقيداً.
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.
مقالات ذات صلة

دليل دمج روبوت الدردشة الذكي: بناء واجهات محادثة ذكية
دليل شامل لدمج روبوتات الدردشة الذكية في تطبيقاتك باستخدام OpenAI وAnthropic Claude وElevenLabs. تعلم بناء روبوتات دردشة نصية وصوتية مع Next.js.

مركز دروس AI SDK: دليلك الشامل لبناء تطبيقات الذكاء الاصطناعي
دليلك الشامل لأدوات وSDKs الذكاء الاصطناعي. اعثر على دروس منظمة حسب مستوى الصعوبة تغطي Vercel AI SDK وModelFusion وOpenAI وAnthropic والمزيد.

بناء وكيل ذكاء اصطناعي مستقل باستخدام Agentic RAG و Next.js
تعلم كيف تبني وكيل ذكاء اصطناعي يقرر بشكل مستقل متى وكيف يسترجع المعلومات من قواعد البيانات المتجهية. دليل عملي شامل باستخدام Vercel AI SDK و Next.js مع أمثلة قابلة للتنفيذ.