{"id":82720,"date":"2024-11-06T01:36:39","date_gmt":"2024-11-05T22:06:39","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/"},"modified":"2024-11-06T01:36:39","modified_gmt":"2024-11-05T22:06:39","slug":"setting-up-postgresql-with-pgvector-using-docker-hcl","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/","title":{"rendered":"\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc: pgvector \u0628\u0627 \u062f\u0627\u06a9\u0631"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0622\u06cc\u0627 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u062a\u0641\u0644\u06cc\u06a9\u0633 \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0648\u0633\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u06cc\u0627 \u0686\u06af\u0648\u0646\u0647 Spotify \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u062e\u0634 \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u061f \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0627\u063a\u0644\u0628 \u0627\u0632 \u0686\u06cc\u0632\u06cc \u0628\u0647 \u0646\u0627\u0645 \u00ab\u062c\u0633\u062a\u062c\u0648\u06cc \u0634\u0628\u0627\u0647\u062a \u0628\u0631\u062f\u0627\u0631\u06cc\u00bb \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f &#8211; \u0631\u0627\u0647\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u0631\u062a\u0628\u0637. \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 PostgreSQL \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 pgvector \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u0634\u0627\u0628\u0647.<\/p>\n<p>  \u0645\u0637\u0627\u0644\u0628<\/p>\n<p>  \u062c\u0633\u062a\u062c\u0648\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u062d\u062a\u0648\u0627 (\u0645\u062a\u0646\u060c \u062a\u0635\u0627\u0648\u06cc\u0631 \u06cc\u0627 \u0645\u062d\u0635\u0648\u0644\u0627\u062a) \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0644\u06cc\u0633\u062a \u062e\u0627\u0635\u06cc \u0627\u0632 \u0627\u0639\u062f\u0627\u062f (\u06a9\u0647 &#8220;\u0628\u0631\u062f\u0627\u0631&#8221; \u06cc\u0627 &#8220;\u062c\u0627\u0633\u0627\u0632\u06cc&#8221; \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f) \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0622\u0646 \u0645\u0648\u0631\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u062f\u0627\u0631\u0627\u06cc \u0627\u0639\u062f\u0627\u062f \u0645\u0634\u0627\u0628\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f. pgvector \u0628\u0647 \u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u06cc\u0646 \u0627\u0639\u062f\u0627\u062f \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0627 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0646\u06af\u0631\u0627\u0646 \u0646\u0628\u0627\u0634\u06cc\u062f! \u0634\u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0631\u0627 \u0627\u0632 API \u0647\u0627\u06cc AI \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f OpenAI&#39;s API \u062d\u062a\u06cc \u0628\u062f\u0648\u0646 \u062f\u0627\u0646\u0634 \u0639\u0645\u06cc\u0642 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u062e\u062a\u0645\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u0634\u0627\u0628\u0647 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645! \ud83d\ude80<\/p>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/p>\n<p>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 Docker Desktop \u0631\u0627 \u0631\u0648\u06cc \u0631\u0627\u06cc\u0627\u0646\u0647 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645<\/p>\n<p>  1. \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f docker-compose.yml<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 docker-compose.yml \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0638\u0631\u0641 PostgreSQL \u062f\u0631 \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>services:<br \/>\n  db:<br \/>\n    image: pgvector\/pgvector:pg17 # PostgreSQL with pgvector support<br \/>\n    container_name: pgvector-db<br \/>\n    environment:<br \/>\n      POSTGRES_USER: postgres<br \/>\n      POSTGRES_PASSWORD: password<br \/>\n      POSTGRES_DB: example_db<br \/>\n    ports:<br \/>\n      &#8211; &#8220;5432:5432&#8221;<br \/>\n    volumes:<br \/>\n      &#8211; pgdata:\/var\/lib\/postgresql\/data<br \/>\n      &#8211; .\/postgres\/schema.sql:\/docker-entrypoint-initdb.d\/schema.sql<\/p>\n<p>volumes:<br \/>\n  pgdata: # Stores data outside the container to ensure persistence<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  2. \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f (schema.sql)<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f postgres \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0631 \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647\u060c \u0648 \u0633\u067e\u0633 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f schema.sql \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0634\u0645\u0627. \u0627\u06cc\u0646 \u0637\u0631\u062d \u0645\u062b\u0627\u0644 \u067e\u0633\u0648\u0646\u062f pgvector \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062c\u062f\u0648\u0644\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u0648\u0627\u0631\u062f \u0628\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>&#8212; Enable pgvector extension<br \/>\nCREATE EXTENSION IF NOT EXISTS vector;<\/p>\n<p>&#8212; Create example table<br \/>\nCREATE TABLE items (<br \/>\n    id SERIAL PRIMARY KEY,<br \/>\n    name VARCHAR(255) NOT NULL,<br \/>\n    metadata JSONB,<br \/>\n    embedding vector(1536) &#8212; vector data<br \/>\n);<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  3. Docker Compose \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f<\/p>\n<p>Docker Compose \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0638\u0631\u0641 PostgreSQL \u0631\u0627 \u0628\u0627 pgvector \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>docker compose up &#8211;build<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  4. \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062c\u0631\u0627 \u0634\u062f\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u060c \u0628\u0647 PostgreSQL \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<p>docker exec -it pgvector-db psql -U postgres -d example_db<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062f\u0631 \u067e\u0648\u0633\u062a\u0647 PostgreSQL\u060c \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>&#8212; Check installed extensions<br \/>\n\\dx<\/p>\n<p>&#8212; Check if your table exists<br \/>\n\\dt<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0632 \u0646\u062d\u0648\u0647 \u06cc\u0627\u0641\u062a\u0646 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>&#8212; Find items similar to a specific vector<br \/>\nSELECT id, name, metadata<br \/>\nFROM items<br \/>\nORDER BY embedding &lt;-&gt; &#8216;[0.1, 0.2, &#8230;]&#8217;::vector<br \/>\nLIMIT 5;<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f [0.1, 0.2, &#8230;] \u0628\u0627 \u0628\u0631\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0634\u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0627\u0646\u0646\u062f OpenAI.<\/p>\n<p>  \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<\/p>\n<p>  \u062e\u0637\u0627: \u067e\u0648\u0631\u062a 5432 \u0627\u0632 \u0642\u0628\u0644 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0633\u062a<\/p>\n<p>\u067e\u0648\u0631\u062a docker-compose.yml \u0631\u0627 \u0628\u0647 5433 \u06cc\u0627 \u067e\u0648\u0631\u062a \u0631\u0627\u06cc\u06af\u0627\u0646 \u062f\u06cc\u06af\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<p>  \u0646\u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u062f<\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0638\u0631\u0641 \u0628\u0627\u0644\u0627 \u0627\u0633\u062a.<\/p>\n<p>  docker ps<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f<\/p>\n<p>\u0635\u062f\u0627 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  docker-compose down -v    # Remove existing volume<br \/>\n  docker-compose up &#8211;build # Start fresh<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0646\u0645\u06cc \u062f\u0627\u0646\u0645 \u0686\u0647 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0627\u0631\u062f<\/p>\n<p>\u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0638\u0631\u0648\u0641 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  docker compose logs db<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0634\u0645\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f:<\/p>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0627\u0646\u0646\u062f OpenAI\u060c \u062c\u0627\u0633\u0627\u0632\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f<\/p>\n<p>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627\u06cc \u0622\u0646 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f<br \/>\n\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f<\/p>\n<p>  \u0645\u0646\u0627\u0628\u0639<\/p>\n<p>\u0622\u06cc\u0627 \u0627\u0634\u062a\u0628\u0627\u0647\u06cc \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u0645\u06cc \u062f\u0647\u06cc\u062f \u06cc\u0627 \u0631\u0627\u0647 \u0628\u0647\u062a\u0631\u06cc \u062f\u0627\u0631\u06cc\u062f\u061f \u0644\u0637\u0641\u0627 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u0628\u062f\u0647\u06cc\u062f! \ud83d\ude4c<\/p>\n<div data-article-id=\"2079554\" id=\"article-body\">\n<p>\u0622\u06cc\u0627 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u062a\u0641\u0644\u06cc\u06a9\u0633 \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0648\u0633\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u06cc\u0627 \u0686\u06af\u0648\u0646\u0647 Spotify \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u062e\u0634 \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u061f \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0627\u063a\u0644\u0628 \u0627\u0632 \u0686\u06cc\u0632\u06cc \u0628\u0647 \u0646\u0627\u0645 \u00ab\u062c\u0633\u062a\u062c\u0648\u06cc \u0634\u0628\u0627\u0647\u062a \u0628\u0631\u062f\u0627\u0631\u06cc\u00bb \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f &#8211; \u0631\u0627\u0647\u06cc \u0642\u062f\u0631\u062a\u0645\u0646\u062f \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0645\u0631\u062a\u0628\u0637. \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0645\u0627 \u06cc\u06a9 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 PostgreSQL \u0631\u0627 \u0628\u0627 \u0622\u0646 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>pgvector<\/code> \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Docker \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u0634\u0627\u0628\u0647.<\/p>\n<hr\/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%85%D8%B7%D8%A7%D9%84%D8%A8\" >\u0645\u0637\u0627\u0644\u0628<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\" >\u062c\u0633\u062a\u062c\u0648\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\" >\u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%AF%D8%A7%D9%85_%D8%A8%D9%87_%DA%AF%D8%A7%D9%85\" >\u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#1_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_docker-composeyml\" >1. \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f docker-compose.yml<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#2_%D8%B7%D8%B1%D8%AD%D9%88%D8%A7%D8%B1%D9%87_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%B1%D8%A7_%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%DA%A9%D9%86%DB%8C%D8%AF_schemasql\" >2. \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f (schema.sql)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#3_Docker_Compose_%D8%B1%D8%A7_%D8%B4%D8%B1%D9%88%D8%B9_%DA%A9%D9%86%DB%8C%D8%AF\" >3. Docker Compose \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#4_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D9%88_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86%DB%8C_%D8%B1%D8%A7_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\" >4. \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1%DB%8C\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D8%B9%DB%8C%D8%A8_%DB%8C%D8%A7%D8%A8%DB%8C\" >\u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D8%AE%D8%B7%D8%A7_%D9%BE%D9%88%D8%B1%D8%AA_5432_%D8%A7%D8%B2_%D9%82%D8%A8%D9%84_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\" >\u062e\u0637\u0627: \u067e\u0648\u0631\u062a 5432 \u0627\u0632 \u0642\u0628\u0644 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0633\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%86%D9%85%DB%8C_%D8%AA%D9%88%D8%A7%D9%86_%D8%A8%D9%87_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%AA%D8%B5%D9%84_%D8%B4%D8%AF\" >\u0646\u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D9%87_%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C_%D9%85%D9%82%D8%AF%D8%A7%D8%B1%D8%AF%D9%87%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%87_%D9%86%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\" >\u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%86%D9%85%DB%8C_%D8%AF%D8%A7%D9%86%D9%85_%DA%86%D9%87_%D9%85%D8%B4%DA%A9%D9%84%DB%8C_%D8%AF%D8%A7%D8%B1%D8%AF\" >\u0646\u0645\u06cc \u062f\u0627\u0646\u0645 \u0686\u0647 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0627\u0631\u062f<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A8%D8%B9%D8%AF%DB%8C\" >\u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/setting-up-postgresql-with-pgvector-using-docker-hcl\/#%D9%85%D9%86%D8%A7%D8%A8%D8%B9\" >\u0645\u0646\u0627\u0628\u0639<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B7%D8%A7%D9%84%D8%A8\"><\/span>\n<p>  \u0645\u0637\u0627\u0644\u0628<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C_%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1%DB%8C_%DA%86%DB%8C%D8%B3%D8%AA%D8%9F\"><\/span>\n<p>  \u062c\u0633\u062a\u062c\u0648\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0686\u06cc\u0633\u062a\u061f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u062d\u062a\u0648\u0627 (\u0645\u062a\u0646\u060c \u062a\u0635\u0627\u0648\u06cc\u0631 \u06cc\u0627 \u0645\u062d\u0635\u0648\u0644\u0627\u062a) \u0631\u0627 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0644\u06cc\u0633\u062a \u062e\u0627\u0635\u06cc \u0627\u0632 \u0627\u0639\u062f\u0627\u062f (\u06a9\u0647 &#8220;\u0628\u0631\u062f\u0627\u0631&#8221; \u06cc\u0627 &#8220;\u062c\u0627\u0633\u0627\u0632\u06cc&#8221; \u0646\u0627\u0645\u06cc\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f) \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0622\u0646 \u0645\u0648\u0631\u062f \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f. \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u062f\u0627\u0631\u0627\u06cc \u0627\u0639\u062f\u0627\u062f \u0645\u0634\u0627\u0628\u0647 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f. <code>pgvector<\/code> \u0628\u0647 \u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0627\u06cc\u0646 \u0627\u0639\u062f\u0627\u062f \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0630\u062e\u06cc\u0631\u0647 \u0648 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0627 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646\u06cc \u0622\u0634\u0646\u0627\u06cc\u06cc \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0646\u06af\u0631\u0627\u0646 \u0646\u0628\u0627\u0634\u06cc\u062f! \u0634\u0645\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0631\u0627 \u0627\u0632 API \u0647\u0627\u06cc AI \u0645\u062d\u0628\u0648\u0628 \u0645\u0627\u0646\u0646\u062f OpenAI&#39;s API \u062d\u062a\u06cc \u0628\u062f\u0648\u0646 \u062f\u0627\u0646\u0634 \u0639\u0645\u06cc\u0642 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0628\u0647 \u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627 \u0628\u0644\u0648\u06a9 \u0647\u0627\u06cc \u0633\u0627\u062e\u062a\u0645\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062a\u0648\u0635\u06cc\u0647 \u0648 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc \u0645\u0634\u0627\u0628\u0647 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645! \ud83d\ude80<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%D8%B4_%D9%86%DB%8C%D8%A7%D8%B2%D9%87%D8%A7\"><\/span>\n<p>  \u067e\u06cc\u0634 \u0646\u06cc\u0627\u0632\u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u06a9\u0647 Docker Desktop \u0631\u0627 \u0631\u0648\u06cc \u0631\u0627\u06cc\u0627\u0646\u0647 \u062e\u0648\u062f \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D8%A7%D9%87_%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C_%DA%AF%D8%A7%D9%85_%D8%A8%D9%87_%DA%AF%D8%A7%D9%85\"><\/span>\n<p>  \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06af\u0627\u0645 \u0628\u0647 \u06af\u0627\u0645<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF_docker-composeyml\"><\/span>\n<p>  1. \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>docker-compose.yml<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>docker-compose.yml<\/code> \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0638\u0631\u0641 PostgreSQL \u062f\u0631 \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0641\u0627\u06cc\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">services<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">db<\/span><span class=\"pi\">:<\/span>\n    <span class=\"na\">image<\/span><span class=\"pi\">:<\/span> <span class=\"s\">pgvector\/pgvector:pg17<\/span> <span class=\"c1\"># PostgreSQL with pgvector support<\/span>\n    <span class=\"na\">container_name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">pgvector-db<\/span>\n    <span class=\"na\">environment<\/span><span class=\"pi\">:<\/span>\n      <span class=\"na\">POSTGRES_USER<\/span><span class=\"pi\">:<\/span> <span class=\"s\">postgres<\/span>\n      <span class=\"na\">POSTGRES_PASSWORD<\/span><span class=\"pi\">:<\/span> <span class=\"s\">password<\/span>\n      <span class=\"na\">POSTGRES_DB<\/span><span class=\"pi\">:<\/span> <span class=\"s\">example_db<\/span>\n    <span class=\"na\">ports<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s2\">\"<\/span><span class=\"s\">5432:5432\"<\/span>\n    <span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">pgdata:\/var\/lib\/postgresql\/data<\/span>\n      <span class=\"pi\">-<\/span> <span class=\"s\">.\/postgres\/schema.sql:\/docker-entrypoint-initdb.d\/schema.sql<\/span>\n\n<span class=\"na\">volumes<\/span><span class=\"pi\">:<\/span>\n  <span class=\"na\">pgdata<\/span><span class=\"pi\">:<\/span> <span class=\"c1\"># Stores data outside the container to ensure persistence<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%B7%D8%B1%D8%AD%D9%88%D8%A7%D8%B1%D9%87_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%B1%D8%A7_%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%DA%A9%D9%86%DB%8C%D8%AF_schemasql\"><\/span>\n<p>  2. \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u062f (<code>schema.sql<\/code>)<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>postgres<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u062f\u0631 \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647\u060c \u0648 \u0633\u067e\u0633 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f <code>schema.sql<\/code> \u0641\u0627\u06cc\u0644 \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0634\u0645\u0627. \u0627\u06cc\u0646 \u0637\u0631\u062d \u0645\u062b\u0627\u0644 \u067e\u0633\u0648\u0646\u062f pgvector \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062c\u062f\u0648\u0644\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0645\u0648\u0627\u0631\u062f \u0628\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc\u200c\u0647\u0627\u06cc \u0628\u0631\u062f\u0627\u0631\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"c1\">-- Enable pgvector extension<\/span>\n<span class=\"k\">CREATE<\/span> <span class=\"n\">EXTENSION<\/span> <span class=\"n\">IF<\/span> <span class=\"k\">NOT<\/span> <span class=\"k\">EXISTS<\/span> <span class=\"n\">vector<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">-- Create example table<\/span>\n<span class=\"k\">CREATE<\/span> <span class=\"k\">TABLE<\/span> <span class=\"n\">items<\/span> <span class=\"p\">(<\/span>\n    <span class=\"n\">id<\/span> <span class=\"nb\">SERIAL<\/span> <span class=\"k\">PRIMARY<\/span> <span class=\"k\">KEY<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">name<\/span> <span class=\"nb\">VARCHAR<\/span><span class=\"p\">(<\/span><span class=\"mi\">255<\/span><span class=\"p\">)<\/span> <span class=\"k\">NOT<\/span> <span class=\"k\">NULL<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">metadata<\/span> <span class=\"n\">JSONB<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">embedding<\/span> <span class=\"n\">vector<\/span><span class=\"p\">(<\/span><span class=\"mi\">1536<\/span><span class=\"p\">)<\/span> <span class=\"c1\">-- vector data<\/span>\n<span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"3_Docker_Compose_%D8%B1%D8%A7_%D8%B4%D8%B1%D9%88%D8%B9_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  3. Docker Compose \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Docker Compose \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0638\u0631\u0641 PostgreSQL \u0631\u0627 \u0628\u0627 pgvector \u0628\u0633\u0627\u0632\u06cc\u062f \u0648 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose up <span class=\"nt\">--build<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"4_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D9%88_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%87%D8%A7%DB%8C_%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86%DB%8C_%D8%B1%D8%A7_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%DA%A9%D9%86%DB%8C%D8%AF\"><\/span>\n<p>  4. \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646\u06cc \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062c\u0631\u0627 \u0634\u062f\u0646 \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u060c \u0628\u0647 PostgreSQL \u0645\u062a\u0635\u0644 \u0634\u0648\u06cc\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker <span class=\"nb\">exec<\/span> <span class=\"nt\">-it<\/span> pgvector-db psql <span class=\"nt\">-U<\/span> postgres <span class=\"nt\">-d<\/span> example_db\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u067e\u0648\u0633\u062a\u0647 PostgreSQL\u060c \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"c1\">-- Check installed extensions<\/span>\n<span class=\"err\">\\<\/span><span class=\"n\">dx<\/span>\n\n<span class=\"c1\">-- Check if your table exists<\/span>\n<span class=\"err\">\\<\/span><span class=\"n\">dt<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D8%B1%D8%AF%D8%A7%D8%B1%DB%8C\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u0645\u062b\u0627\u0644 \u0633\u0627\u062f\u0647 \u0627\u0632 \u0646\u062d\u0648\u0647 \u06cc\u0627\u0641\u062a\u0646 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"c1\">-- Find items similar to a specific vector<\/span>\n<span class=\"k\">SELECT<\/span> <span class=\"n\">id<\/span><span class=\"p\">,<\/span> <span class=\"n\">name<\/span><span class=\"p\">,<\/span> <span class=\"n\">metadata<\/span>\n<span class=\"k\">FROM<\/span> <span class=\"n\">items<\/span>\n<span class=\"k\">ORDER<\/span> <span class=\"k\">BY<\/span> <span class=\"n\">embedding<\/span> <span class=\"o\">&lt;-&gt;<\/span> <span class=\"s1\">'[0.1, 0.2, ...]'<\/span><span class=\"p\">::<\/span><span class=\"n\">vector<\/span>\n<span class=\"k\">LIMIT<\/span> <span class=\"mi\">5<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u06a9\u0646\u06cc\u062f [0.1, 0.2, &#8230;] \u0628\u0627 \u0628\u0631\u062f\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc \u0634\u0645\u0627 \u0627\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u06cc\u0633 \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0627\u0646\u0646\u062f OpenAI.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B9%DB%8C%D8%A8_%DB%8C%D8%A7%D8%A8%DB%8C\"><\/span>\n<p>  \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AE%D8%B7%D8%A7_%D9%BE%D9%88%D8%B1%D8%AA_5432_%D8%A7%D8%B2_%D9%82%D8%A8%D9%84_%D8%AF%D8%B1_%D8%AD%D8%A7%D9%84_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\"><\/span>\n<p>  \u062e\u0637\u0627: \u067e\u0648\u0631\u062a 5432 \u0627\u0632 \u0642\u0628\u0644 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0633\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u067e\u0648\u0631\u062a docker-compose.yml \u0631\u0627 \u0628\u0647 5433 \u06cc\u0627 \u067e\u0648\u0631\u062a \u0631\u0627\u06cc\u06af\u0627\u0646 \u062f\u06cc\u06af\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D9%85%DB%8C_%D8%AA%D9%88%D8%A7%D9%86_%D8%A8%D9%87_%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D9%85%D8%AA%D8%B5%D9%84_%D8%B4%D8%AF\"><\/span>\n<p>  \u0646\u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0645\u062a\u0635\u0644 \u0634\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0638\u0631\u0641 \u0628\u0627\u0644\u0627 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>  docker ps\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF%D9%87_%D8%A8%D9%87_%D8%AF%D8%B1%D8%B3%D8%AA%DB%8C_%D9%85%D9%82%D8%AF%D8%A7%D8%B1%D8%AF%D9%87%DB%8C_%D8%A7%D9%88%D9%84%DB%8C%D9%87_%D9%86%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\"><\/span>\n<p>  \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0645\u0642\u062f\u0627\u0631\u062f\u0647\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0635\u062f\u0627 \u0631\u0627 \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u0648 \u062f\u0648\u0628\u0627\u0631\u0647 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>  docker-compose down <span class=\"nt\">-v<\/span>    <span class=\"c\"># Remove existing volume<\/span>\n  docker-compose up <span class=\"nt\">--build<\/span> <span class=\"c\"># Start fresh<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D9%85%DB%8C_%D8%AF%D8%A7%D9%86%D9%85_%DA%86%D9%87_%D9%85%D8%B4%DA%A9%D9%84%DB%8C_%D8%AF%D8%A7%D8%B1%D8%AF\"><\/span>\n<p>  \u0646\u0645\u06cc \u062f\u0627\u0646\u0645 \u0686\u0647 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0627\u0631\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u0638\u0631\u0648\u0641 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>  docker compose logs db\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A8%D8%B9%D8%AF%DB%8C\"><\/span>\n<p>  \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0631\u062f\u0627\u0631\u06cc \u0634\u0645\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0647\u0648\u0634 \u0645\u0635\u0646\u0648\u0639\u06cc \u0645\u0627\u0646\u0646\u062f OpenAI\u060c \u062c\u0627\u0633\u0627\u0632\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f\n<\/li>\n<li>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062c\u0627\u0633\u0627\u0632\u06cc \u0647\u0627\u06cc \u0622\u0646 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0646\u06cc\u062f<\/li>\n<li>\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u06cc\u06cc \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0645\u0648\u0627\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f<\/li>\n<\/ul>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D9%86%D8%A7%D8%A8%D8%B9\"><\/span>\n<p>  \u0645\u0646\u0627\u0628\u0639<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<hr\/>\n<p>\u0622\u06cc\u0627 \u0627\u0634\u062a\u0628\u0627\u0647\u06cc \u0631\u0627 \u062a\u0634\u062e\u06cc\u0635 \u0645\u06cc \u062f\u0647\u06cc\u062f \u06cc\u0627 \u0631\u0627\u0647 \u0628\u0647\u062a\u0631\u06cc \u062f\u0627\u0631\u06cc\u062f\u061f \u0644\u0637\u0641\u0627 \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0638\u0631 \u0628\u062f\u0647\u06cc\u062f! \ud83d\ude4c<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0622\u06cc\u0627 \u062a\u0627 \u0628\u0647 \u062d\u0627\u0644 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0646\u062a\u0641\u0644\u06cc\u06a9\u0633 \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u067e\u06cc\u0634\u0646\u0647\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0648\u0633\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u06cc\u0627 \u0686\u06af\u0648\u0646\u0647 Spotify \u0644\u06cc\u0633\u062a \u0647\u0627\u06cc \u067e\u062e\u0634 \u0634\u062e\u0635\u06cc \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f\u061f \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc\u200c\u0647\u0627 \u0627\u063a\u0644\u0628 \u0627\u0632 \u0686\u06cc\u0632\u06cc \u0628\u0647 \u0646\u0627\u0645 \u00ab\u062c\u0633\u062a\u062c\u0648\u06cc \u0634\u0628\u0627\u0647\u062a \u0628\u0631\u062f\u0627\u0631\u06cc\u00bb \u0627\u0633\u062a\u0641\u0627\u062f\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":82721,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-82720","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/82720","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=82720"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/82720\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/82721"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=82720"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=82720"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=82720"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}