diff --git a/docs/pg-vector-db-init.md b/docs/pg-vector-db-init.md index 34b7d8c..5577213 100644 --- a/docs/pg-vector-db-init.md +++ b/docs/pg-vector-db-init.md @@ -60,3 +60,17 @@ psql postgres://shenlan:<密码>@127.0.0.1:5432/mydb -c "\d+ documents" 若能看到 `embedding | vector(1536)` 字段,说明 pgvector 已成功启用。 完成以上步骤后,应用即可通过连接串 `postgres://shenlan:<密码>@127.0.0.1:5432/mydb` 使用数据库。 + +## 6. 配置嵌入服务 + +在 `server/config/server.yaml` 中新增 `embedding` 配置,使服务端能够对问题进行向量化检索: + +```yaml +global: + embedding: + base_url: http://127.0.0.1:11434 + token: "" + dimension: 1536 +``` + +其中 `dimension` 需与所使用的嵌入模型返回的向量维度一致。 diff --git a/internal/rag/config/runtime.go b/internal/rag/config/runtime.go index 3b7132b..120fc21 100644 --- a/internal/rag/config/runtime.go +++ b/internal/rag/config/runtime.go @@ -82,6 +82,11 @@ type Runtime struct { VectorDB VectorDB `yaml:"vectordb"` Datasources []DataSource `yaml:"datasources"` Proxy string `yaml:"proxy"` + Embedding struct { + BaseURL string `yaml:"base_url"` + Token string `yaml:"token"` + Dimension int `yaml:"dimension"` + } `yaml:"embedding"` } // ServerConfigPath points to the server configuration file. @@ -112,5 +117,8 @@ func (rt *Runtime) ToConfig() *Config { c.Global.VectorDB = rt.VectorDB c.Global.Datasources = rt.Datasources c.Global.Proxy = rt.Proxy + c.Embedding.BaseURL = rt.Embedding.BaseURL + c.Embedding.Token = rt.Embedding.Token + c.Embedding.Dimension = rt.Embedding.Dimension return &c } diff --git a/internal/rag/config/runtime_test.go b/internal/rag/config/runtime_test.go index d69a4b1..948b95f 100644 --- a/internal/rag/config/runtime_test.go +++ b/internal/rag/config/runtime_test.go @@ -45,3 +45,20 @@ func TestResolveChunking(t *testing.T) { t.Fatalf("expected default slices") } } + +func TestRuntimeToConfigEmbedding(t *testing.T) { + rt := &Runtime{} + rt.Embedding.BaseURL = "http://localhost:8080" + rt.Embedding.Token = "tok" + rt.Embedding.Dimension = 123 + cfg := rt.ToConfig() + if cfg.Embedding.BaseURL != "http://localhost:8080" { + t.Fatalf("unexpected base url %q", cfg.Embedding.BaseURL) + } + if cfg.Embedding.Token != "tok" { + t.Fatalf("unexpected token %q", cfg.Embedding.Token) + } + if cfg.Embedding.Dimension != 123 { + t.Fatalf("unexpected dimension %d", cfg.Embedding.Dimension) + } +} diff --git a/server/config/server.yaml b/server/config/server.yaml index 67e0978..be23c9d 100644 --- a/server/config/server.yaml +++ b/server/config/server.yaml @@ -6,6 +6,10 @@ global: vectordb: pgurl: postgres://user:password@127.0.0.1:5432/postgres datasources: [] + embedding: + base_url: http://127.0.0.1:11434 + token: "" + dimension: 1536 api: askai: timeout: 100