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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce823cedfccc6a2288e6a37b2a91571d4bc784d26440d11503697c43d5558de
|
4
|
+
data.tar.gz: b8f4cbb2104d640f423f727afcb38962a7cfa663887ada0d32ec3a61d2ce513c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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'] ||
|
47
|
+
temperature: @config['temperature'] || send_request
|
48
48
|
}
|
49
49
|
)
|
50
50
|
rescue OpenAI::Error => e
|
data/lib/smart_prompt/version.rb
CHANGED
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.
|
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:
|
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-
|
41
|
+
name: ollama-ruby
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
44
43
|
requirements:
|
45
44
|
- - "~>"
|
46
45
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
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:
|
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.
|
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: []
|