برنامه نویسی

راهنمای راه اندازی: pgvector با داکر

Summarize this content to 400 words in Persian Lang
آیا تا به حال فکر کرده اید که چگونه نتفلیکس فیلم هایی را پیشنهاد می کند که ممکن است دوست داشته باشید، یا چگونه Spotify لیست های پخش شخصی سازی شده را ایجاد می کند؟ این ویژگی‌ها اغلب از چیزی به نام «جستجوی شباهت برداری» استفاده می‌کنند – راهی قدرتمند برای یافتن محتوای مرتبط. در این راهنما، ما یک پایگاه داده PostgreSQL را با آن راه اندازی می کنیم pgvector برنامه افزودنی با استفاده از Docker برای ساخت ویژگی های مشابه.

مطالب

جستجوی برداری چیست؟

هنگامی که هوش مصنوعی محتوا (متن، تصاویر یا محصولات) را تجزیه و تحلیل می کند، لیست خاصی از اعداد (که “بردار” یا “جاسازی” نامیده می شود) ایجاد می کند که ویژگی های آن مورد را نشان می دهد. موارد مشابه دارای اعداد مشابه خواهند بود. pgvector به ما کمک می کند تا این اعداد را به طور موثر ذخیره و جستجو کنیم.

اگر با یادگیری ماشینی آشنایی ندارید، نگران نباشید! شما به راحتی می توانید این جاسازی ها را از API های AI محبوب مانند OpenAI's API حتی بدون دانش عمیق هوش مصنوعی به دست آورید. این جاسازی ها بلوک های ساختمانی برای ایجاد موتورهای توصیه و ویژگی های جستجوی مشابه هستند.

بیایید شروع کنیم! 🚀

پیش نیازها

مطمئن شوید که Docker Desktop را روی رایانه خود نصب کرده اید.

راه اندازی گام به گام

1. ایجاد کنید docker-compose.yml

ایجاد یک docker-compose.yml برای تعریف ظرف PostgreSQL در ریشه پروژه خود فایل کنید.

services:
db:
image: pgvector/pgvector:pg17 # PostgreSQL with pgvector support
container_name: pgvector-db
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: example_db
ports:
– “5432:5432”
volumes:
– pgdata:/var/lib/postgresql/data
– ./postgres/schema.sql:/docker-entrypoint-initdb.d/schema.sql

volumes:
pgdata: # Stores data outside the container to ensure persistence

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2. طرحواره پایگاه داده را تعریف کنید (schema.sql)

ایجاد کنید postgres دایرکتوری در ریشه پروژه، و سپس ایجاد کنید schema.sql فایل برای تعریف طرحواره اولیه شما. این طرح مثال پسوند pgvector را فعال می‌کند و جدولی برای ذخیره موارد با جاسازی‌های برداری ایجاد می‌کند.

— Enable pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;

— Create example table
CREATE TABLE items (
id SERIAL PRIMARY KEY,
name VARCHAR(255) NOT NULL,
metadata JSONB,
embedding vector(1536) — vector data
);

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

3. Docker Compose را شروع کنید

Docker Compose را اجرا کنید تا ظرف PostgreSQL را با pgvector بسازید و راه اندازی کنید.

docker compose up –build

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

4. پایگاه داده و برنامه های افزودنی را تأیید کنید

پس از اجرا شدن کانتینر، به PostgreSQL متصل شوید تا تنظیمات را تأیید کنید.

docker exec -it pgvector-db psql -U postgres -d example_db

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در پوسته PostgreSQL، اجرا کنید:

— Check installed extensions
\dx

— Check if your table exists
\dt

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

استفاده از پایگاه داده برداری

در اینجا یک مثال ساده از نحوه یافتن موارد مشابه آورده شده است:

— Find items similar to a specific vector
SELECT id, name, metadata
FROM items
ORDER BY embedding <-> ‘[0.1, 0.2, …]’::vector
LIMIT 5;

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کنید [0.1, 0.2, …] با بردار واقعی شما از یک سرویس هوش مصنوعی مانند OpenAI.

عیب یابی

خطا: پورت 5432 از قبل در حال استفاده است

پورت docker-compose.yml را به 5433 یا پورت رایگان دیگری تغییر دهید.

نمی توان به پایگاه داده متصل شد

بررسی کنید که آیا ظرف بالا است.

docker ps

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پایگاه داده به درستی مقداردهی اولیه نمی شود

صدا را بردارید و دوباره راه اندازی کنید.

docker-compose down -v # Remove existing volume
docker-compose up –build # Start fresh

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمی دانم چه مشکلی دارد

سیاهههای مربوط به ظروف را بررسی کنید.

docker compose logs db

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مراحل بعدی

اکنون که پایگاه داده برداری شما تنظیم شده است، می توانید:

با استفاده از سرویس‌های هوش مصنوعی مانند OpenAI، جاسازی‌ها را ایجاد کنید

داده های خود را با جاسازی های آن ذخیره کنید
ویژگی های جستجویی بسازید که موارد مشابه را پیدا کند

منابع

آیا اشتباهی را تشخیص می دهید یا راه بهتری دارید؟ لطفا در زیر نظر بدهید! 🙌

آیا تا به حال فکر کرده اید که چگونه نتفلیکس فیلم هایی را پیشنهاد می کند که ممکن است دوست داشته باشید، یا چگونه Spotify لیست های پخش شخصی سازی شده را ایجاد می کند؟ این ویژگی‌ها اغلب از چیزی به نام «جستجوی شباهت برداری» استفاده می‌کنند – راهی قدرتمند برای یافتن محتوای مرتبط. در این راهنما، ما یک پایگاه داده PostgreSQL را با آن راه اندازی می کنیم pgvector برنامه افزودنی با استفاده از Docker برای ساخت ویژگی های مشابه.


مطالب


جستجوی برداری چیست؟

هنگامی که هوش مصنوعی محتوا (متن، تصاویر یا محصولات) را تجزیه و تحلیل می کند، لیست خاصی از اعداد (که “بردار” یا “جاسازی” نامیده می شود) ایجاد می کند که ویژگی های آن مورد را نشان می دهد. موارد مشابه دارای اعداد مشابه خواهند بود. pgvector به ما کمک می کند تا این اعداد را به طور موثر ذخیره و جستجو کنیم.

اگر با یادگیری ماشینی آشنایی ندارید، نگران نباشید! شما به راحتی می توانید این جاسازی ها را از API های AI محبوب مانند OpenAI's API حتی بدون دانش عمیق هوش مصنوعی به دست آورید. این جاسازی ها بلوک های ساختمانی برای ایجاد موتورهای توصیه و ویژگی های جستجوی مشابه هستند.

بیایید شروع کنیم! 🚀


پیش نیازها

مطمئن شوید که Docker Desktop را روی رایانه خود نصب کرده اید.


راه اندازی گام به گام

1. ایجاد کنید docker-compose.yml

ایجاد یک docker-compose.yml برای تعریف ظرف PostgreSQL در ریشه پروژه خود فایل کنید.

services:
  db:
    image: pgvector/pgvector:pg17 # PostgreSQL with pgvector support
    container_name: pgvector-db
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_DB: example_db
    ports:
      - "5432:5432"
    volumes:
      - pgdata:/var/lib/postgresql/data
      - ./postgres/schema.sql:/docker-entrypoint-initdb.d/schema.sql

volumes:
  pgdata: # Stores data outside the container to ensure persistence
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


2. طرحواره پایگاه داده را تعریف کنید (schema.sql)

ایجاد کنید postgres دایرکتوری در ریشه پروژه، و سپس ایجاد کنید schema.sql فایل برای تعریف طرحواره اولیه شما. این طرح مثال پسوند pgvector را فعال می‌کند و جدولی برای ذخیره موارد با جاسازی‌های برداری ایجاد می‌کند.

-- Enable pgvector extension
CREATE EXTENSION IF NOT EXISTS vector;

-- Create example table
CREATE TABLE items (
    id SERIAL PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    metadata JSONB,
    embedding vector(1536) -- vector data
);
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


3. Docker Compose را شروع کنید

Docker Compose را اجرا کنید تا ظرف PostgreSQL را با pgvector بسازید و راه اندازی کنید.

docker compose up --build
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


4. پایگاه داده و برنامه های افزودنی را تأیید کنید

پس از اجرا شدن کانتینر، به PostgreSQL متصل شوید تا تنظیمات را تأیید کنید.

docker exec -it pgvector-db psql -U postgres -d example_db
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در پوسته PostgreSQL، اجرا کنید:

-- Check installed extensions
\dx

-- Check if your table exists
\dt
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


استفاده از پایگاه داده برداری

در اینجا یک مثال ساده از نحوه یافتن موارد مشابه آورده شده است:

-- Find items similar to a specific vector
SELECT id, name, metadata
FROM items
ORDER BY embedding <-> '[0.1, 0.2, ...]'::vector
LIMIT 5;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جایگزین کنید [0.1, 0.2, …] با بردار واقعی شما از یک سرویس هوش مصنوعی مانند OpenAI.


عیب یابی

خطا: پورت 5432 از قبل در حال استفاده است

پورت docker-compose.yml را به 5433 یا پورت رایگان دیگری تغییر دهید.

نمی توان به پایگاه داده متصل شد

بررسی کنید که آیا ظرف بالا است.

  docker ps
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پایگاه داده به درستی مقداردهی اولیه نمی شود

صدا را بردارید و دوباره راه اندازی کنید.

  docker-compose down -v    # Remove existing volume
  docker-compose up --build # Start fresh
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نمی دانم چه مشکلی دارد

سیاهههای مربوط به ظروف را بررسی کنید.

  docker compose logs db
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


مراحل بعدی

اکنون که پایگاه داده برداری شما تنظیم شده است، می توانید:

  • با استفاده از سرویس‌های هوش مصنوعی مانند OpenAI، جاسازی‌ها را ایجاد کنید
  • داده های خود را با جاسازی های آن ذخیره کنید
  • ویژگی های جستجویی بسازید که موارد مشابه را پیدا کند

منابع


آیا اشتباهی را تشخیص می دهید یا راه بهتری دارید؟ لطفا در زیر نظر بدهید! 🙌

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا