Module: TriCoreDB::LlmSource
- Defined in:
- lib/tricoredb/builders.rb
Overview
Builders for LlmSource.
Class Method Summary collapse
-
.coerce(src) ⇒ Hash
Accepts a built source, or
{sql:}/{collection:, filter:, limit:}. - .documents(collection, filter: Filter.all, limit: nil) ⇒ Hash
- .sql(query) ⇒ Hash
Class Method Details
.coerce(src) ⇒ Hash
Accepts a built source, or {sql:} / {collection:, filter:, limit:}.
129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/tricoredb/builders.rb', line 129 def coerce(src) return src if src.is_a?(Hash) && (src.key?("Sql") || src.key?("DocumentFind")) raise ArgumentError, "an LLM source must be a Hash" unless src.is_a?(Hash) sql_text = src[:sql] || src["sql"] return sql(sql_text) if sql_text coll = src[:collection] || src["collection"] raise ArgumentError, "an LLM source needs :sql or :collection" unless coll documents(coll, filter: src[:filter] || src["filter"] || Filter.all, limit: src[:limit] || src["limit"]) end |
.documents(collection, filter: Filter.all, limit: nil) ⇒ Hash
123 124 125 |
# File 'lib/tricoredb/builders.rb', line 123 def documents(collection, filter: Filter.all, limit: nil) { "DocumentFind" => { "collection" => collection.to_s, "filter" => filter, "limit" => limit } } end |
.sql(query) ⇒ Hash
118 119 120 |
# File 'lib/tricoredb/builders.rb', line 118 def sql(query) { "Sql" => { "query" => query.to_s } } end |