Vektordatabaser: Pinecone, Weaviate og pgvector · Lektion

Lagring af vektorer i PostgreSQL

Lær at oprette tabeller med vektorkolonner og indsætte data om vektorrepræsentationer direkte i Deres PostgreSQL-database.

Lektion 2 af 411 trin

Lagring af vektorer i PostgreSQL er en gratis Vektordatabaser: Pinecone, Weaviate og pgvector-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Vektordatabaser: Pinecone, Weaviate og pgvector, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.

Lagring af vektorer i PostgreSQL

Velkommen tilbage! I den forrige lektion opsatte vi pgvector. Nu skal du i gang med det praktiske og lære at gemme vektorindlejringer i din PostgreSQL-database.

Denne lektion handler om at oprette tabeller med vektorkolonner og indsætte indlejringsdata.

Påmindelse om PostgreSQL-tabeller

Før vi gemmer vektorer, genopfrisker vi kort, hvordan tabeller fungerer i PostgreSQL. Du bruger sætningen CREATE TABLE til at definere tabellens struktur, herunder kolonnenavne og deres datatyper.

Efter installationen af pgvector får vi adgang til en ny og effektiv datatype!

Datatypen `vector`

Kernen i lagring af indlejringer med pgvector er datatypen vector. Når du definerer en kolonne som vector(N), repræsenterer N dimensionstallet for dine indlejringer.

  • vector(3): Gemmer tredimensionelle vektorer.
  • vector(1536): Gemmer vektorer med 1536 dimensioner, hvilket er almindeligt for OpenAI-indlejringer.

Det er afgørende, at N svarer til dimensionstallet for de indlejringer, du arbejder med.

Oprettelse af en tabel med vektorer

Hvis du vil gemme indlejringer, opretter du en tabel ligesom enhver anden tabel, men angiver én eller flere kolonner med typen vector(N).

Her er et eksempel på oprettelse af en enkel tabel, der kan indeholde elementer og deres tredimensionelle indlejringer:

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

Forstå vektordimensioner

Tallet N i vector(N) er afgørende. Det skal nøjagtigt svare til antallet af værdier, altså dimensionerne, i dine faktiske indlejringsvektorer. Hvis din indlejringsmodel producerer vektorer med 768 dimensioner, skal din kolonne være vector(768).

Dimensioner, der ikke passer sammen, giver fejl, når du indsætter data. Kontrollér altid din indlejringsmodels outputdimension!

Indsættelse af en enkelt vektor

Når din tabel er oprettet, kan du indsætte vektordata ved hjælp af standardkommandoen INSERT INTO i SQL. Vektorværdier angives som en tekstlig repræsentation af en liste med tal, for eksempel '[1.2, 3.4, 5.6]'.

INSERT INTO items (embedding)
VALUES ('[1.0, 2.0, 3.0]');

Indsættelse af flere vektorer

Du kan indsætte flere vektorer effektivt i din tabel ved at angive flere værdisæt i en enkelt INSERT INTO-sætning.

Hvert værdisæt svarer til en ny række i din tabel.

INSERT INTO items (embedding) VALUES
  ('[4.0, 5.0, 6.0]'),
  ('[7.0, 8.0, 9.0]');

Lagring af vektorer med metadata

I virkelige programmer gemmer du næsten altid yderligere oplysninger, altså metadata, sammen med dine vektorer. Det kan være tekstindhold, et bruger-id, et tidsstempel eller andre relevante data.

Du skal blot tilføje flere kolonner til din tabeldefinition:

CREATE TABLE documents (
  id SERIAL PRIMARY KEY,
  content TEXT,
  category VARCHAR(50),
  embedding vector(4)
);

Indsættelse af vektorer og metadata

Når du indsætter data i en tabel med metadata, skal du blot angive værdier for alle de kolonner, du vil udfylde. Sørg for, at værdiers rækkefølge svarer til rækkefølgen af kolonnerne i din INSERT INTO-sætning.

INSERT INTO documents (content, category, embedding) VALUES
  ('The quick brown fox.', 'animal', '[0.1, 0.2, 0.3, 0.4]');

Hurtigt tjek: Oprettelse af en tabel

Hvilken af følgende SQL-sætninger opretter korrekt en tabel med navnet products, en automatisk nummereret primærnøgle id og en vektorkolonne product_embedding med 1536 dimensioner?

Opsummering: Lagring af dine vektorer

Godt klaret! Du har lært de grundlæggende trin til at gemme vektorindlejringer i PostgreSQL ved hjælp af pgvector:

  • Definere vektorkolonner med vector(N) og sikre, at N svarer til indlejringernes dimensionstal.
  • Oprette tabeller med både vektor- og metadatakolonner.
  • Indsætte enkelte og flere vektordatapunkter sammen med deres tilknyttede metadata.

Derefter undersøger vi, hvordan du kan forespørge på disse data for at finde lignende vektorer!

Gratis at komme i gang

Lær Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Lagring af vektorer i PostgreSQL” gratis?

Ja — alle 3 lektioner i læringssporet Vektordatabaser: Pinecone, Weaviate og pgvector, inklusive “Lagring af vektorer i PostgreSQL”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Lagring af vektorer i PostgreSQL”?

Lær at oprette tabeller med vektorkolonner og indsætte data om vektorrepræsentationer direkte i Deres PostgreSQL-database. Du øver dig i Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Vektordatabaser: Pinecone, Weaviate og pgvector?

Der kræves ingen tidligere erfaring. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Lagring af vektorer i PostgreSQL”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Vektordatabaser: Pinecone, Weaviate og pgvector-lektion?

Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Opsætning af pgvector-udvidelsen
  2. Lagring af vektorer i PostgreSQL
  3. Udførelse af lighedsforespørgsler
  4. Valg af afstandsmetrics i pgvector
← Tilbage til Vektordatabaser: Pinecone, Weaviate og pgvector