Class: SmartPrompt::Conversation
- Inherits:
-
Object
- Object
- SmartPrompt::Conversation
- Defined in:
- lib/smart_prompt/conversation.rb
Instance Attribute Summary collapse
-
#config_file ⇒ Object
readonly
Returns the value of attribute config_file.
-
#last_response ⇒ Object
readonly
Returns the value of attribute last_response.
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
Instance Method Summary collapse
-
#initialize(engine) ⇒ Conversation
constructor
A new instance of Conversation.
- #model(model_name) ⇒ Object
- #prompt(template_name, params = {}) ⇒ Object
- #send_msg ⇒ Object
- #sys_msg(message) ⇒ Object
- #use(llm_name) ⇒ Object
Constructor Details
#initialize(engine) ⇒ Conversation
Returns a new instance of Conversation.
7 8 9 10 11 12 13 14 15 |
# File 'lib/smart_prompt/conversation.rb', line 7 def initialize(engine) @messages = [] @engine = engine @adapters = engine.adapters @llms = engine.llms @templates = engine.templates @current_adapter = engine.current_adapter @last_response = nil end |
Instance Attribute Details
#config_file ⇒ Object (readonly)
Returns the value of attribute config_file.
5 6 7 |
# File 'lib/smart_prompt/conversation.rb', line 5 def config_file @config_file end |
#last_response ⇒ Object (readonly)
Returns the value of attribute last_response.
5 6 7 |
# File 'lib/smart_prompt/conversation.rb', line 5 def last_response @last_response end |
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
5 6 7 |
# File 'lib/smart_prompt/conversation.rb', line 5 def @messages end |
Instance Method Details
#model(model_name) ⇒ Object
23 24 25 |
# File 'lib/smart_prompt/conversation.rb', line 23 def model(model_name) @model_name = model_name end |
#prompt(template_name, params = {}) ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/smart_prompt/conversation.rb', line 27 def prompt(template_name, params = {}) template_name = template_name.to_s raise "Template #{template_name} not found" unless @templates.key?(template_name) content = @templates[template_name].render(params) @messages << { role: 'user', content: content } self end |
#send_msg ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/smart_prompt/conversation.rb', line 41 def send_msg raise "No LLM selected" if @current_llm.nil? @last_response = @current_llm.send_request(@messages, @model_name) @messages=[] @messages << { role: 'system', content: @sys_msg } @last_response end |
#sys_msg(message) ⇒ Object
35 36 37 38 39 |
# File 'lib/smart_prompt/conversation.rb', line 35 def sys_msg() @sys_msg = @messages << { role: 'system', content: } self end |
#use(llm_name) ⇒ Object
17 18 19 20 21 |
# File 'lib/smart_prompt/conversation.rb', line 17 def use(llm_name) raise "Adapter #{adapter_name} not configured" unless @llms.key?(llm_name) @current_llm = @llms[llm_name] self end |