Class: BxBuilderChain::QuestionAskingService

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(question:, user_groups: ['public'], client_class_name: 'BxBuilderChain::Vectorsearch::Pgvector', llm_class_name: 'BxBuilderChain::Llm::OpenAi', context_results: 6) ⇒ QuestionAskingService

Returns a new instance of QuestionAskingService.



5
6
7
8
9
10
11
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 5

def initialize(question:, user_groups: ['public'], client_class_name: 'BxBuilderChain::Vectorsearch::Pgvector', llm_class_name: 'BxBuilderChain::Llm::OpenAi', context_results: 6)
  @question = question
  @user_groups = user_groups
  @client_class_name = client_class_name
  @llm_class_name = llm_class_name
  @context_results = context_results
end

Instance Attribute Details

#client_class_nameObject (readonly)

Returns the value of attribute client_class_name.



3
4
5
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 3

def client_class_name
  @client_class_name
end

#context_resultsObject (readonly)

Returns the value of attribute context_results.



3
4
5
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 3

def context_results
  @context_results
end

#llm_class_nameObject (readonly)

Returns the value of attribute llm_class_name.



3
4
5
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 3

def llm_class_name
  @llm_class_name
end

#questionObject (readonly)

Returns the value of attribute question.



3
4
5
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 3

def question
  @question
end

#user_groupsObject (readonly)

Returns the value of attribute user_groups.



3
4
5
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 3

def user_groups
  @user_groups
end

Instance Method Details

#askObject



13
14
15
16
17
18
# File 'lib/generators/bx_builder_chain/templates/app/services/bx_builder_chain/question_asking_service.rb', line 13

def ask
  return { error: 'No question provided' } unless question.present?
  
  response = client.ask(question: question, context_results: context_results)
  { answer: response }
end