Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

혼자서 앱 만드는 개발자 함께하는 AI 세상

postgres 우분투 2.0 설치 환경에서 pgvector 설치 본문

nextjs 랭체인 챗봇만들기

postgres 우분투 2.0 설치 환경에서 pgvector 설치

혼앱사 2023. 8. 11. 17:03
반응형

prisma 에서 랭체인을연동을 위한 postgres 를 설치

아래 내용을 보면 

vector

 백터 칼러을 아용하기 위해 

 

https://js.langchain.com/docs/modules/data_connection/vectorstores/integrations/prisma

 

Prisma | 🦜️🔗 Langchain

For augmenting existing models in PostgreSQL database with vector search, Langchain supports using Prisma together with PostgreSQL and pgvector Postgres extension.

js.langchain.com

 pgvector 를 설치 해야만 한다.

우분투에서 설치를 위해

 

cd /tmp
git clone --branch v0.4.4 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo

 하지만 에러발견

postgres.h 에러 발견

postgres.h 발견 하여

sudo apt install postgresql-server-dev-15 => 12 버전 적용 (나의경우 12버전이라서)

그리고 

시작하기

확장을 활성화합니다(이를 사용하려는 각 데이터베이스에서 한 번 수행).

CREATE EXTENSION vector;

3차원 벡터 열 만들기

CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));

벡터 삽입

INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');

L2 거리로 가장 가까운 이웃 얻기

SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 5;
 

내적( <#>) 및 코사인 거리( <=>) 도 지원합니다.

참고: Postgres는 연산자에 대한 주문 인덱스 스캔 <#>만 지원하므로 음수 내적을 반환합니다.ASC

 

 

 

GitHub - pgvector/pgvector: Open-source vector similarity search for Postgres

Open-source vector similarity search for Postgres. Contribute to pgvector/pgvector development by creating an account on GitHub.

github.com

https://github.com/pgvector/pgvector#installation-notes

다시 nextjs에서 postgres 적용하고 마이그레이션을 해준다.

 

Create a new schema

Assuming you haven't created a schema yet, create a new model with a vector field of type Unsupported("vector"):

model Document {
  id      String                 @id @default(cuid())
  content String
  vector  Unsupported("vector")?
}
 

Afterwards, create a new migration with --create-only to avoid running the migration directly.

  • npm
  • Yarn
  • pnpm
npx prisma migrate dev --create-only
 

Add the following line to the newly created migration to enable pgvector extension if it hasn't been enabled yet:

CREATE EXTENSION IF NOT EXISTS vector;
 

Run the migration afterwards:

 

728x90
반응형
Comments