Vedlegg C — Oppsett av pgvector på NAIS
Det er mulig å bruke PostgreSQL på GCP (kalt CloudSQL) som en vektordatabase som en del av en NAIS applikasjon. For å gjøre dette må man først be om en PostgreSQL database i NAIS konfigurasjonen, før man trenger å skru på pgvector som er en utvidelse til PostgreSQL som tilfører vektorsøk funksjonalitet.
NAIS D.6 er navnet på sky-plattformen til Nav.
C.1 NAIS konfigurasjon
Det anbefales å følge veiledningen til NAIS om oppsett av PostgreSQL, men vi gjenskaper de viktigste momentene her.
For at NAIS skal providere en PostgreSQL database trenger man å opprette en .nais/app.yaml fil og be om følgende.
spec:
gcp:
sqlInstances:
- type: POSTGRES_15
databases:
- name: <Ønsket navn på databasen>
envVarPrefix: <Ønsket prefix>Deretter må man deploy-e en applikasjon gjennom NAIS som så vil opprette databasen. Når dette er gjort vil man kunne inspisere databasen i NAIS Console og det burde se omtrent slik ut:

C.2 Skru på pgvector
På CloudSQL så kan ikke en hvilken som helst bruker aktivere utvidelser. Det må derfor gjøres litt manuelt arbeid før man kan bruke databasen som en vektordatabase.
- For å skru på
pgvectormanuelt må man følge lenken fra NAIS Console tilSQL Instancesom tar oss til GCP console. - Deretter må man gå til
Usersi menyen på venstreside, her er det en oversikt over brukere som har tilgang på databasen hvor<Navn på din applikasjon>er brukeren som NAIS gir tilgang til, menspostgreser en automatisk opprettet bruker fra GCP.- Det er
postgresbrukeren vi må benytte for å kunne skru påpgvector. - Velg så hamburgermenyen bak
postgresog velgChange password.
- Det er
- Når dette er gjort kan vi gå til
Cloud SQL Studio, også i menyen på venstreside. Her velger man så databasen man satt opp med NAIS og logger inn medpostgresbrukeren. - Velg så
Create extensioni hamburgermenyen bakExtensionsog skriv innCREATE EXTENSION IF NOT EXISTS vector;som vist under. Når denne spørringen er kjørt burde det dukke opp i Cloud SQL Studio at én utvidelse er aktivert.

pgvector med et SQL uttrykk.C.3 Videre arbeid
Når de to stegene over er fullført kan man så benytte CloudSQL som en vektordatabase. Neste skritt kan være å koble til lokalt og sjekke at alt fungerer som normalt.
For LangChain kan man nå benytte PGVector klassen som grunnlag for vektordatabasen.