knowledge/knowledge_retrieval.hpp¶
Namespaces¶
| Name |
|---|
| sgns |
| sgns::neoswarm |
| sgns::neoswarm::knowledge |
Classes¶
| Name | |
|---|---|
| class | sgns::neoswarm::knowledge::KnowledgeRetrieval Retrieves top-k structured facts from a Grokipedia index. |
| struct | sgns::neoswarm::knowledge::KnowledgeRetrieval::Config |
Source code¶
#ifndef NEOSWARM_KNOWLEDGE_KNOWLEDGERETRIEVAL_HPP
#define NEOSWARM_KNOWLEDGE_KNOWLEDGERETRIEVAL_HPP
#include "common/error.hpp"
#include "common/types.hpp"
#include <memory>
#include <string>
#include <vector>
namespace sgns::neoswarm::knowledge
{
class KnowledgeRetrieval
{
public:
struct Config
{
std::string index_path_ = "";
std::string m_factsPath = "";
int top_k_ = 3;
float min_score_ = 0.5f;
bool enabled_ = true;
};
KnowledgeRetrieval();
explicit KnowledgeRetrieval( Config cfg );
~KnowledgeRetrieval();
outcome::result<void> Load();
bool IsLoaded() const
{
return m_loaded;
}
outcome::result<std::vector<KnowledgeFact>> Retrieve( const std::string& query ) const;
private:
struct Impl;
std::unique_ptr<Impl> m_impl;
Config m_cfg;
bool m_loaded = false;
std::vector<float> Embed( const std::string& text ) const;
static float CosineSimilarity( const std::vector<float>& a, const std::vector<float>& b );
};
} // namespace sgns::neoswarm::knowledge
#endif // NEOSWARM_KNOWLEDGE_KNOWLEDGERETRIEVAL_HPP
Updated on 2026-07-25 at 22:56:57 +0000