Class: VectorAmp::IntelligenceResource
- Inherits:
-
Object
- Object
- VectorAmp::IntelligenceResource
- Defined in:
- lib/vector_amp/intelligence.rb
Overview
Intelligence API resource for retrieval-augmented question answering.
Instance Method Summary collapse
-
#append_message(session_id, role:, content:, metadata: nil) ⇒ Hash
Append a message to a session.
-
#create_session(title: nil, dataset_id: nil, workspace_id: nil, metadata: nil) ⇒ Hash
Create an intelligence conversation session.
-
#delete_session(session_id) ⇒ Hash
Delete an intelligence session.
-
#get_session(session_id) ⇒ Hash
Fetch an intelligence session.
- #initialize(transport) ⇒ IntelligenceResource constructor
-
#list_messages(session_id, limit: 100) ⇒ Hash
List messages in a session.
-
#list_sessions(limit: 50) ⇒ Hash
List intelligence sessions.
-
#query(query, dataset_id: nil, top_k: nil, conversation_history: nil, include_sources: nil, stream: false, **unknown) {|chunk| ... } ⇒ Hash, ...
Ask an intelligence query, optionally scoped to a dataset and streamed.
Constructor Details
#initialize(transport) ⇒ IntelligenceResource
10 11 12 |
# File 'lib/vector_amp/intelligence.rb', line 10 def initialize(transport) @transport = transport end |
Instance Method Details
#append_message(session_id, role:, content:, metadata: nil) ⇒ Hash
Append a message to a session.
88 89 90 91 |
# File 'lib/vector_amp/intelligence.rb', line 88 def (session_id, role:, content:, metadata: nil) body = Utils.compact_hash(role: role, content: content, metadata: ) @transport.request(:post, "/intelligence/sessions/#{session_id}/messages", body: body) end |
#create_session(title: nil, dataset_id: nil, workspace_id: nil, metadata: nil) ⇒ Hash
Create an intelligence conversation session.
51 52 53 54 55 56 57 58 59 |
# File 'lib/vector_amp/intelligence.rb', line 51 def create_session(title: nil, dataset_id: nil, workspace_id: nil, metadata: nil) body = Utils.compact_hash( title: title, dataset_id: dataset_id, workspace_id: workspace_id, metadata: ) @transport.request(:post, "/intelligence/sessions", body: body) end |
#delete_session(session_id) ⇒ Hash
Delete an intelligence session.
78 79 80 |
# File 'lib/vector_amp/intelligence.rb', line 78 def delete_session(session_id) @transport.request(:delete, "/intelligence/sessions/#{session_id}") end |
#get_session(session_id) ⇒ Hash
Fetch an intelligence session.
71 72 73 |
# File 'lib/vector_amp/intelligence.rb', line 71 def get_session(session_id) @transport.request(:get, "/intelligence/sessions/#{session_id}") end |
#list_messages(session_id, limit: 100) ⇒ Hash
List messages in a session.
97 98 99 |
# File 'lib/vector_amp/intelligence.rb', line 97 def (session_id, limit: 100) @transport.request(:get, "/intelligence/sessions/#{session_id}/messages", query: { limit: limit }) end |
#list_sessions(limit: 50) ⇒ Hash
List intelligence sessions.
64 65 66 |
# File 'lib/vector_amp/intelligence.rb', line 64 def list_sessions(limit: 50) @transport.request(:get, "/intelligence/sessions", query: { limit: limit }) end |
#query(query, dataset_id: nil, top_k: nil, conversation_history: nil, include_sources: nil, stream: false, **unknown) {|chunk| ... } ⇒ Hash, ...
Ask an intelligence query, optionally scoped to a dataset and streamed.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/vector_amp/intelligence.rb', line 23 def query(query, dataset_id: nil, top_k: nil, conversation_history: nil, include_sources: nil, stream: false, **unknown, &block) Utils.ensure_no_unknown!(unknown, "query") body = Utils.compact_hash( query: query, dataset_id: dataset_id, top_k: top_k, conversation_history: conversation_history, include_sources: include_sources, stream: stream ) if stream return enum_for(:query, query, dataset_id: dataset_id, top_k: top_k, conversation_history: conversation_history, include_sources: include_sources, stream: true) unless block @transport.request(:post, "/intelligence/query", body: body, stream: true, &block) else @transport.request(:post, "/intelligence/query", body: body) end end |