Class: LLMed::LLM::Agent
- Inherits:
-
Object
- Object
- LLMed::LLM::Agent
- Defined in:
- lib/llm.rb
Instance Method Summary collapse
- #chat(messages: []) ⇒ Object
-
#initialize(llm_instance) ⇒ Agent
constructor
A new instance of Agent.
Constructor Details
#initialize(llm_instance) ⇒ Agent
Returns a new instance of Agent.
22 23 24 25 26 27 |
# File 'lib/llm.rb', line 22 def initialize(llm_instance) @llm_instance = llm_instance @assistant = Langchain::Assistant.new( llm: @llm_instance.llm ) end |
Instance Method Details
#chat(messages: []) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/llm.rb', line 29 def chat(messages: []) = .map do |m| case m when Message::System { role: 'system', content: m.content } when Message::User { role: 'user', content: m.content } end end start = Time.now @assistant.(messages: ) = @assistant.run! assistant_response = .select { |m| m.role == 'assistant' }.last stop = Time.now Response.new({ provider: @llm_instance.provider, model: @llm_instance.model, duration_seconds: stop.to_i - start.to_i, source_code: @llm_instance.source_code(assistant_response.content), total_tokens: @assistant.total_tokens }) end |