smart_prompt 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5405e5a08476567f1737276d32ac24849eaa693c9ed302ca1c633a372e230996
4
- data.tar.gz: f5720ede56fc9eff6afa79990e25538dd6749b67bf85638f23ed94527e302401
3
+ metadata.gz: 48814b17b9e142698d6cb49efd4ab15195bddce4fca7ac5f111b52e5e8b3e04b
4
+ data.tar.gz: c0e23945a97549403ab6b5d3225e3b281b0d2f6f6f6097f5158ae98edb70d722
5
5
  SHA512:
6
- metadata.gz: a2cff6947e229493681d555ca407563d6aff0e9543d8fecb843fb1ee5c2f2534ff9e9994eb44a1ea4f9ddacdfc12a95da7b119aa2c2cd55ee638a65682a250c6
7
- data.tar.gz: 96db920d1c87b839dadeecf3b2552e6e9179d6013d3867f72e5e23370d63294261d134b9d9eb13ad6aa51743e9282d3dceac4743333d35e2554dbb8138e50eca
6
+ metadata.gz: 1dac2c898d593345d1f1d8c9508faabda41c2954938171f99aa9999fbe4f34532124e441ad2ccbb265bc6ceb65fb188fd7b60d8e8f1439ad478f6d2d62a38018
7
+ data.tar.gz: 851707ebcac1db79aa0fc29a8a92dd9e1571dd0d1207d4cd9ac75fb5992ecfac1bac09eec8599594e247066e586d4bd48b6fddf3da073e168f2039823dcce747
@@ -8,14 +8,15 @@ module SmartPrompt
8
8
  @messages = []
9
9
  @engine = engine
10
10
  @adapters = engine.adapters
11
+ @llms = engine.llms
11
12
  @templates = engine.templates
12
13
  @current_adapter = engine.current_adapter
13
14
  @last_response = nil
14
15
  end
15
16
 
16
- def use(adapter_name)
17
- raise "Adapter #{adapter_name} not configured" unless @adapters.key?(adapter_name)
18
- @current_adapter = adapter_name
17
+ def use(llm_name)
18
+ raise "Adapter #{adapter_name} not configured" unless @llms.key?(llm_name)
19
+ @current_llm = @llms[llm_name]
19
20
  self
20
21
  end
21
22
 
@@ -38,8 +39,8 @@ module SmartPrompt
38
39
  end
39
40
 
40
41
  def send_msg
41
- raise "No adapter selected" if @current_adapter.nil?
42
- @last_response = @adapters[@current_adapter].send_request(@messages, @model_name)
42
+ raise "No LLM selected" if @current_llm.nil?
43
+ @last_response = @current_llm.send_request(@messages, @model_name)
43
44
  @messages=[]
44
45
  @messages << { role: 'system', content: @sys_msg }
45
46
  @last_response
@@ -1,9 +1,10 @@
1
1
  module SmartPrompt
2
2
  class Engine
3
- attr_reader :config_file, :config, :adapters, :current_adapter, :templates
3
+ attr_reader :config_file, :config, :adapters, :current_adapter, :llms, :templates
4
4
  def initialize(config_file)
5
5
  @config_file = config_file
6
6
  @adapters={}
7
+ @llms={}
7
8
  @templates={}
8
9
  load_config(config_file)
9
10
  end
@@ -11,13 +12,18 @@ module SmartPrompt
11
12
  def load_config(config_file)
12
13
  @config_file = config_file
13
14
  @config = YAML.load_file(config_file)
14
- @config['adapters'].each do |adapter_name, adapter_config|
15
- adapter_class = SmartPrompt.const_get("#{adapter_name.capitalize}Adapter")
16
- @adapters[adapter_name] = adapter_class.new(adapter_config)
15
+ @config['adapters'].each do |adapter_name, adapter_class|
16
+ adapter_class = SmartPrompt.const_get(adapter_class)
17
+ @adapters[adapter_name] = adapter_class
17
18
  end
18
- @current_adapter = @config['default_adapter'] if @config['default_adapter']
19
- @config['templates'].each do |template_name, template_file|
20
- @templates[template_name] = PromptTemplate.new(template_file)
19
+ @config['llms'].each do |llm_name,llm_config|
20
+ adapter_class = @adapters[llm_config['adapter']]
21
+ @llms[llm_name]=adapter_class.new(llm_config)
22
+ end
23
+ @current_llm = @config['default_llm'] if @config['default_llm']
24
+ Dir.glob(File.join(@config['template_path'], '*.erb')).each do |file|
25
+ template_name = file.gsub(@config['template_path']+"/","").gsub("\.erb","")
26
+ @templates[template_name] = PromptTemplate.new(file)
21
27
  end
22
28
  load_workers
23
29
  end
@@ -15,7 +15,7 @@ module SmartPrompt
15
15
  end
16
16
  end
17
17
 
18
- class OpenaiAdapter < LLMAdapter
18
+ class OpenAIAdapter < LLMAdapter
19
19
  def initialize(config)
20
20
  super
21
21
  @client = OpenAI::Client.new(
@@ -1,3 +1,3 @@
1
1
  module SmartPrompt
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_prompt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - zhuang biaowei
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-30 00:00:00.000000000 Z
11
+ date: 2024-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yaml