smart_prompt 0.1.8 → 0.1.9

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: ab0d62158bbd98af9d2f57d9708426cceb95c2d3b2797abc0094de3caf96adf8
4
- data.tar.gz: d2a50c4ede575eb70caeda1893b60412b04afdec665690b8fd2d4d0f3bdd410e
3
+ metadata.gz: dce823cedfccc6a2288e6a37b2a91571d4bc784d26440d11503697c43d5558de
4
+ data.tar.gz: b8f4cbb2104d640f423f727afcb38962a7cfa663887ada0d32ec3a61d2ce513c
5
5
  SHA512:
6
- metadata.gz: 6d61c7f8db100a715b16a8bd08ef27bf49f3e38127d68cb37a5fc55c3d5ee781e505d8c4acbc6ac98206bd2aeb22bcdd4dc6d749ed65293fecb5abbc361ffac9
7
- data.tar.gz: 7f8ff17971d9979a95400bb1e4497737fab2c503d69a1c415a0003ff514400b55ade390d0f007a146e43569978b98e29f5e308091d74e25cd8b405689b73b136
6
+ metadata.gz: 70c6bd8c45f433cbc4a60bd4d3964f694b836178ff09a84873aeaedc62cc9064e5c4d043d45b7f864d95b5f60f3a8eb6571230abb9c45385a8525014417493db
7
+ data.tar.gz: 43eca2651ae52dab6e8ca1fff67acbc1099e3adc839c8035111148aae45b3bdcaf64f8b1f5daed8e45c4b2962449eef86c19a16d7e69fe59f874af2e4b66b4d1
@@ -0,0 +1,17 @@
1
+ module SmartPrompt
2
+ module APIHandler
3
+ MAX_RETRIES = 3
4
+ RETRY_OPTIONS = {
5
+ tries: MAX_RETRIES,
6
+ base_interval: 1,
7
+ max_interval: 10,
8
+ rand_factor: 0.5,
9
+ on: [
10
+ Errno::ECONNRESET,
11
+ Errno::ECONNABORTED,
12
+ Errno::EPIPE,
13
+ Errno::ETIMEDOUT
14
+ ]
15
+ }
16
+ end
17
+ end
@@ -28,6 +28,10 @@ module SmartPrompt
28
28
  @model_name = model_name
29
29
  end
30
30
 
31
+ def temperature(temperature)
32
+ @temperature = temperature
33
+ end
34
+
31
35
  def prompt(template_name, params = {})
32
36
  if template_name.class == Symbol
33
37
  template_name = template_name.to_s
@@ -50,7 +54,7 @@ module SmartPrompt
50
54
 
51
55
  def send_msg
52
56
  raise "No LLM selected" if @current_llm.nil?
53
- @last_response = @current_llm.send_request(@messages, @model_name)
57
+ @last_response = @current_llm.send_request(@messages, @model_name, @temperature)
54
58
  @messages=[]
55
59
  @messages << { role: 'system', content: @sys_msg }
56
60
  @last_response
@@ -0,0 +1,45 @@
1
+ require "sequel"
2
+ require "json"
3
+
4
+ module SmartPrompt
5
+ class DBAdapter
6
+ attr_reader :db, :tables
7
+ def initialize(config)
8
+ db_uri = config[:database]
9
+ @db = Sequel.connect(db_uri)
10
+ @tables = {}
11
+ @db.tables.each do |table_name|
12
+ define_table(table_name)
13
+ end
14
+ end
15
+
16
+ def define_table(table_name, class_name=table_name.to_s.capitalize)
17
+ class_define = <<-EOT
18
+ class #{class_name} < Sequel::Model(:#{table_name})
19
+ end
20
+ EOT
21
+ eval(class_define)
22
+ @tables[table_name] = eval(class_name)
23
+ end
24
+
25
+ def get_table_schema(table_name)
26
+ @tables[table_name].db_schema
27
+ end
28
+
29
+ def get_table_schema_str(table_name)
30
+ JSON.pretty_generate(get_table_schema(table_name))
31
+ end
32
+
33
+ def get_db_schema
34
+ schema = {}
35
+ @db.tables.each do |table_name|
36
+ schema[table_name] = get_table_schema(table_name)
37
+ end
38
+ schema
39
+ end
40
+
41
+ def get_db_schema_str
42
+ JSON.pretty_generate(get_db_schema)
43
+ end
44
+ end
45
+ end
@@ -31,7 +31,7 @@ module SmartPrompt
31
31
  end
32
32
  end
33
33
 
34
- def send_request(messages, model=nil)
34
+ def send_request(messages, model=nil, send_request=0.7)
35
35
  SmartPrompt.logger.info "OpenAIAdapter: Sending request to OpenAI"
36
36
  if model
37
37
  model_name = model
@@ -44,7 +44,7 @@ module SmartPrompt
44
44
  parameters: {
45
45
  model: model_name,
46
46
  messages: messages,
47
- temperature: @config['temperature'] || 0.7
47
+ temperature: @config['temperature'] || send_request
48
48
  }
49
49
  )
50
50
  rescue OpenAI::Error => e
@@ -1,3 +1,3 @@
1
1
  module SmartPrompt
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_prompt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - zhuang biaowei
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-11-28 00:00:00.000000000 Z
10
+ date: 2025-01-14 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: yaml
@@ -39,19 +38,19 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: 7.1.0
41
40
  - !ruby/object:Gem::Dependency
42
- name: ollama-ai
41
+ name: ollama-ruby
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: 1.3.0
46
+ version: 0.13.0
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: 1.3.0
53
+ version: 0.13.0
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: json
57
56
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +106,9 @@ files:
107
106
  - README.md
108
107
  - Rakefile
109
108
  - lib/smart_prompt.rb
109
+ - lib/smart_prompt/api_handler.rb
110
110
  - lib/smart_prompt/conversation.rb
111
+ - lib/smart_prompt/db_adapter.rb
111
112
  - lib/smart_prompt/engine.rb
112
113
  - lib/smart_prompt/llamacpp_adapter.rb
113
114
  - lib/smart_prompt/llm_adapter.rb
@@ -124,7 +125,6 @@ metadata:
124
125
  homepage_uri: https://github.com/zhuangbiaowei/smart_prompt
125
126
  source_code_uri: https://github.com/zhuangbiaowei/smart_prompt
126
127
  changelog_uri: https://github.com/zhuangbiaowei/smart_prompt/blob/master/CHANGELOG.md
127
- post_install_message:
128
128
  rdoc_options: []
129
129
  require_paths:
130
130
  - lib
@@ -139,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
139
139
  - !ruby/object:Gem::Version
140
140
  version: '0'
141
141
  requirements: []
142
- rubygems_version: 3.5.23
143
- signing_key:
142
+ rubygems_version: 3.6.2
144
143
  specification_version: 4
145
144
  summary: A smart prompt management and LLM interaction gem
146
145
  test_files: []