embed work

This commit is contained in:
Radu Macocian (admac)
2026-06-23 14:36:34 +02:00
parent 8599de09de
commit 789f3b5dd3
5 changed files with 133 additions and 84 deletions
+33 -8
View File
@@ -5,6 +5,8 @@ import (
"errors"
"io"
"log/slog"
"net"
"net/url"
"os"
)
@@ -18,13 +20,30 @@ type Config struct {
}
type DbConfig struct {
Url string
Port string
DbName string
User string
Password string
History HistoryConfig
Memory MemoryConfig
Url string
Port string
DbName string
User string
Password string
History HistoryConfig
Memory MemoryConfig
Embedding EmbeddingConfig
}
func (config DbConfig) ConnectionString() string {
u := &url.URL{
Scheme: "postgres",
User: url.UserPassword(config.User, config.Password),
Host: net.JoinHostPort(config.Url, config.Port),
Path: config.DbName,
}
return u.String()
}
type EmbeddingConfig struct {
Url string
key string
Model string
}
type MemoryConfig struct {
@@ -126,13 +145,16 @@ func overrideFromEnv(cfg *Config) {
{conf: &cfg.Api.Url, key: ENV_PREFIX + "api__url"},
{conf: &cfg.Api.Key, key: ENV_PREFIX + "api__key"},
{conf: &cfg.Llm.Model, key: ENV_PREFIX + "llm__model"},
{conf: &cfg.Db.Embedding.Url, key: ENV_PREFIX + "db__embedding__url"},
{conf: &cfg.Db.Embedding.key, key: ENV_PREFIX + "db__embedding__key"},
{conf: &cfg.Db.Embedding.Model, key: ENV_PREFIX + "db__embedding__model"},
{conf: &cfg.Db.DbName, key: ENV_PREFIX + "db__dbName"},
{conf: &cfg.Db.Url, key: ENV_PREFIX + "db__url"},
{conf: &cfg.Db.User, key: ENV_PREFIX + "db__user"},
{conf: &cfg.Db.Password, key: ENV_PREFIX + "db__password"},
{conf: &cfg.Db.Port, key: ENV_PREFIX + "db__port"},
}
for _, override := range(overrides) {
for _, override := range overrides {
val := os.Getenv(override.key)
if val != "" {
*override.conf = val
@@ -144,5 +166,8 @@ func (cfg Config) validate() error {
if cfg.Api.Url == "" {
return errors.New("No API url configured")
}
if cfg.Db.Embedding.Model == "" {
return errors.New("No embedding model configured")
}
return nil
}