Skip to content

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