اوصف المشكلة/الخطأ/السؤال
أتابع دورة n8n وأنا متأكد تماماً من أن لدي كل شيء معد بشكل صحيح، لكن كلما قمت بتنفيذ سير العمل أحصل على خطأ في الوصول. حسابي في Supabase متصل عبر مفتاح API “service_role
secret” في علامة التبويب القديمة، لذا لا أفهم لماذا لا يستطيع العقدة الوصول إلى الجدول.
حاولت للتو فتح Data API access في Supabase وكشفت جدولي للوصول، لكنني ما زلت تلقيت خطأ وصول مختلفاً.
سأكون ممتناً لأي مساعدة مقدمة
ما رسالة الخطأ (إن وجدت)؟
Error inserting: permission denied for sequence documents_id_seq 403 Forbidden
يرجى مشاركة سير العمل الخاص بك
شارك الإخراج الذي أرجعته العقدة الأخيرة
لم تُرجع إخراجاً واضحاً، لكن كل ما أحتاجه هو إرسال بيانات المتجه المدمجة مرة أخرى إلى Supabase في أجزاء.
معلومات حول إعداد n8n الخاص بك
- إصدار n8n: 2.35.7
- قاعدة البيانات (الافتراضي: SQLite):
- إعداد n8n EXECUTIONS_PROCESS (الافتراضي: own, main):
- تشغيل n8n عبر (Docker, npm, n8n cloud, تطبيق سطح المكتب): في المتصفح
- نظام التشغيل: Windows 11 Home
هذا هو كود محرر SQL الخاص بي لمتجر متجهات بسيط في حالة ارتباطه بأي شيء:
-- 1. تفعيل امتداد pgvector للسماح بأنواع بيانات المتجهات
create extension if not exists vector;
-- 2. إنشاء جدول المستندات لتخزين التضمينات الخاصة بك
create table if not exists documents (
id bigserial primary key,
content text, -- يخزن جزء النص
metadata jsonb, -- يخزن البيانات الوصفية للمصدر أو اسم الملف أو المؤلف
embedding vector(1536) -- 1536 بُعد هو المعيار لنماذج OpenAI
);
-- 3. إنشاء فهرس HNSW للبحث عن التشابه بأداء عالي
-- ملاحظة: استخدم 'vector_cosine_ops' لعمليات البحث عن مسافة الكوساين
create index on documents using hnsw (embedding vector_cosine_ops);
-- 4. إنشاء دالة البحث عن التشابه (يتم استدعاؤها بواسطة أدوات الذكاء الاصطناعي/RAG)
create or replace function match_documents (
query_embedding vector(1536),
match_threshold float,
match_count int
)
returns table (
id bigint,
content text,
metadata jsonb,
similarity float
)
language plpgsql stable
as $$
begin
return query
select
documents.id,
documents.content,
documents.metadata,
1 - (documents.embedding <=> query_embedding) as similarity
from documents
where 1 - (documents.embedding <=> query_embedding) > match_threshold
order documents.embedding <=> query_embedding asc
limit match_count;
end;
$$;