| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include "project_settings.hpp"
- #include "collection_registry.hpp"
- #include "settings.hpp"
- namespace svapi {
- ProjectEmbeddingSettings ProjectEmbeddingSettings::fromJson(const nlohmann::json& j) {
- ProjectEmbeddingSettings p;
- p.project = j.value("project", p.project);
- p.openaiApiBase = j.value("openai_api_base", p.openaiApiBase);
- p.openaiApiKey = j.value("openai_api_key", p.openaiApiKey);
- p.defaultEmbeddingModel = j.value("default_embedding_model", p.defaultEmbeddingModel);
- return p;
- }
- nlohmann::json ProjectEmbeddingSettings::toJson() const {
- return {{"project", project},
- {"openai_api_base", openaiApiBase},
- {"openai_api_key", openaiApiKey},
- {"default_embedding_model", defaultEmbeddingModel}};
- }
- std::string projectSettingsDocId(const std::string& project) { return "project_" + project; }
- ResolvedEmbedding resolveEmbedding(const Settings& global, const ProjectEmbeddingSettings* proj,
- const CollectionMeta& coll) {
- ResolvedEmbedding r{global.openaiApiBase, global.openaiApiKey, global.defaultEmbeddingModel};
- if (proj) {
- if (!proj->openaiApiBase.empty()) r.apiBase = proj->openaiApiBase;
- if (!proj->openaiApiKey.empty()) r.apiKey = proj->openaiApiKey;
- if (!proj->defaultEmbeddingModel.empty()) r.model = proj->defaultEmbeddingModel;
- }
- if (!coll.embeddingModel.empty()) r.model = coll.embeddingModel;
- return r;
- }
- } // namespace svapi
|