Heim > Web-Frontend > js-Tutorial > Richten Sie PostgreSQL mit pgvector in einem Docker-Container ein

Richten Sie PostgreSQL mit pgvector in einem Docker-Container ein

Susan Sarandon
Freigeben: 2024-12-02 17:07:12
Original
811 Leute haben es durchsucht

Setup PostgreSQL w/ pgvector in a docker container

Dieser Beitrag ist eine Fortsetzung meines vorherigen Beitrags zum Einrichten einer lokalen MySQL-Instanz in Docker.

RAG (Retrieval Augmented Generation) entwickelt sich schnell zur „Hallo Welt“ der KI-Apps. Wenn Sie mit großen Sprachmodellen arbeiten oder spielen, müssen Sie zweifellos irgendwann eine RAG-Pipeline erstellen. Eine wichtige Komponente von RAG ist eine Vektordatenbank, und eine beliebte Option ist pgvector – eine Open-Source-Vektorähnlichkeitssuche für Postgres. So richten Sie schnell eine lokale Instanz in einem Docker-Container ein.

Ziehen Sie das Bild und führen Sie es aus

Laden Sie das neueste Image aus dem Docker-Repository herunter. Ersetzen Sie 17 durch die Postgres-Serverversion Ihrer Wahl.

docker pull pgvector/pgvector:pg17
Nach dem Login kopieren

Führen Sie das Image aus, legen Sie das Root-Benutzerkennwort fest und legen Sie den Standard-Postgres-Port offen.

docker run -d --name <container_name> -e POSTGRES_PASSWORD=postgres -p 5432:5432 pgvector/pgvector:pg17
Nach dem Login kopieren

Erstellen Sie eine Datenbank im Container

Erstellen Sie bei laufendem Postgres-Server eine Datenbank im Container.

docker exec -it <container_name> createdb -U postgres <database_name>
Nach dem Login kopieren

Stellen Sie eine Verbindung zur Datenbank her

Jetzt können wir von unserer Anwendung aus eine Verbindung zur Datenbank herstellen und die pgvector-Erweiterung initialisieren. Ich werde JavaScript verwenden. Das Einrichten der gesamten Anwendung liegt außerhalb des Rahmens dieses Beitrags, Sie müssen jedoch einige Abhängigkeiten installieren:

pnpm add pg pgvector
Nach dem Login kopieren

Legen Sie eine DATABASE_URL in Ihrer Umgebung fest. Ich verwende eine .env-Datei. Es sollte diesem Format folgen:

DATABASE_URL=postgresql://<pg_user>:<pg_password>@localhost:5432/<database_name>
Nach dem Login kopieren

Für die lokale Entwicklung verwenden Sie @localhost, aber wenn Sie etwas wie docker-compose.yml verwenden und dem Dienst einen Namen gegeben haben, sollten Sie den Namen des Dienstes verwenden, z. B. @db.

Erstellen Sie in Ihrem Anwendungscode die Verbindung:

const pool = new pg.Pool({
  connectionString: process.env.DATABASE_URL,
});
Nach dem Login kopieren

Dann initialisieren Sie pgvector und erstellen Sie eine neue Tabelle:

async function createStore() {
  // Initialize pgvector extension and create table if not exists
  await pool.query('CREATE EXTENSION IF NOT EXISTS vector');

  return {
    vectorStore: await PGVectorStore.initialize(embeddings, {
      postgresConnectionOptions: {
        connectionString: process.env.DATABASE_URL,
      },
      tableName: 'documents', // Default table name
    }),
  };
}
Nach dem Login kopieren

Mit dem vectorStore-Setup können Sie mit vectorStore.addDocuments Inhalte hinzufügen und mit vectorStore.similaritySearch den Kontext abfragen.

Das war's für diesen Beitrag. Vielleicht werde ich das nächste Mal spezifischere Einsatzmöglichkeiten von pgvector erkunden und/oder es mit Drizzle ORM verwenden! ?

Das obige ist der detaillierte Inhalt vonRichten Sie PostgreSQL mit pgvector in einem Docker-Container ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage