LlmOracle

class LlmOracle(ai: <Error class: unknown class>, prologResult: PrologProjectionResult, prologSchema: PrologSchema, propositionRepository: PropositionRepository? = null, entityNames: Map<String, String> = emptyMap(), llmOptions: <Error class: unknown class> = LlmOptions()) : Oracle

LLM-based Oracle that answers questions using Prolog reasoning with fallback to proposition search.

Strategy:

  1. Use LLM to translate question to Prolog query

  2. Run Prolog query against the knowledge base

  3. If no results, fall back to searching propositions

  4. Use LLM to formulate natural language answer

Parameters

ai

AI service for LLM calls

prologResult

Prolog facts from projection

prologSchema

Schema with predicate mappings and rules

propositionRepository

Store to search propositions (for fallback)

entityNames

Mapping of entity IDs to human-readable names

llmOptions

LLM configuration

Constructors

Link copied to clipboard
constructor(ai: <Error class: unknown class>, prologResult: PrologProjectionResult, prologSchema: PrologSchema, propositionRepository: PropositionRepository? = null, entityNames: Map<String, String> = emptyMap(), llmOptions: <Error class: unknown class> = LlmOptions())

Functions

Link copied to clipboard
open override fun ask(question: Question): Answer

Answer a natural language question.

open fun ask(questionText: String): Answer

Answer a question given as a string.