luogu 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36995c054afd074896aed6b09044a2bcaa3389596718c5fd87043cfb7419fd93
4
- data.tar.gz: ed7fbc4e583ecae24134a74cb4bb21ffe177d148fc5b75b7f0ea7f697e68e867
3
+ metadata.gz: a148eff2b580b1fc02bf9a71ffbef28bcfbe54752bc73c877ea17ed19cf301c4
4
+ data.tar.gz: edeb9d2d566292180ad9cc29c172a2e7545c1656dd3791258780adf8a0587571
5
5
  SHA512:
6
- metadata.gz: d138fb4affaa66fcca67922163e8200e60754de318111a9c6ca1fb8688886f1b8e7a7a8669b3589931d5303cad57e99c7c596315d95cdacbb0c0e93d87350b3c
7
- data.tar.gz: 82d3508621872fc20337d39ae3084115c16efb1e3d1fa6823ebeb205dc332c77cc6065fc12c350129440d1f47eb111f22dd40b9007bfef0a815fd5796e7f4636
6
+ metadata.gz: 3fd79fb77f48a73cd6e64194cd2826e23ad27c18d7904c0a737c0b2340bc080a33e65271f005f91a6182eed36f77ccb08c15efd4f93c43588b3ac6800af2e48c
7
+ data.tar.gz: 4f3fbb7674ae5dd9ddf3df8979ccbea102552527eba4090309cf6a0265d4022701e1338d91fa8dba4283acc9bede24398365ad8dddc4e4efe606e0b28e9b3e9f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- luogu (0.2.1)
4
+ luogu (0.2.2)
5
5
  dotenv (~> 2.8, >= 2.8.1)
6
6
  dry-cli (~> 1.0)
7
7
  dry-configurable (~> 1.0, >= 1.0.1)
data/README.md CHANGED
@@ -142,6 +142,7 @@ end
142
142
  - 0.1.15:http库替换成HTTP.rb并且加入了重试机制,默认为3次,可通过设置环境变量OPENAI_REQUEST_RETRIES来设置次数
143
143
  - 0.1.16:增加对agent的支持
144
144
  - 0.2.0:重构了代码,agent的支持基本达到可用状态,具体看`bin/agent.rb`示例,有破坏性更新,不兼容0.1.x的agent写法
145
+ - 0.2.3: 增加了 AIUI 客户端,具体情况示例,openai的接口加入message类用于快速拼接messages,具体看 lib/luogu/openai.rb
145
146
 
146
147
  ## License
147
148
 
data/lib/luogu/aiui.rb ADDED
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Luogu
4
+ class AIUI < Base
5
+ setting :id, default: Application.config.aiui.id
6
+ setting :key, default: Application.config.aiui.key
7
+ setting :request_url, default: 'http://api.iflyos.cn/external/ls_log/aiui_request'
8
+ setting :parse, default: ->(response) { response.parse.dig("data", 0, "intent", "answer") }
9
+
10
+ class << self
11
+ def request(text: nil, uid: SecureRandom.hex(16))
12
+ response = HTTP.post(config.request_url, json: {
13
+ appid: config.id,
14
+ appkey: config.key,
15
+ uid: uid,
16
+ text: text
17
+ })
18
+ if response.code == 200
19
+ config.parse.call(response)
20
+ else
21
+ raise RequestError, response.body.to_s
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -12,6 +12,11 @@ module Luogu
12
12
  setting :temperature, default: ENV.fetch('OPENAI_TEMPERATURE', 1).to_i
13
13
  end
14
14
 
15
+ setting :aiui do
16
+ setting :id, default: ENV.fetch('AIUI_APP_ID')
17
+ setting :key, default: ENV.fetch('AIUI_APP_KEY')
18
+ end
19
+
15
20
  setting :run_agent_retries, default: ENV.fetch('RUN_AGENT_RETRIES', 5).to_i
16
21
 
17
22
  setting :logger, reader: true,
data/lib/luogu/init.rb CHANGED
@@ -8,6 +8,7 @@ require 'ostruct'
8
8
  require 'benchmark'
9
9
  require 'erb'
10
10
  require 'logger'
11
+ require 'securerandom'
11
12
 
12
13
  require "dry/cli"
13
14
  require 'dry-configurable'
@@ -29,6 +30,8 @@ require_relative "agent_runner"
29
30
  require_relative 'openai'
30
31
  require_relative 'terminal'
31
32
 
33
+ require_relative 'aiui'
34
+
32
35
  class String
33
36
  def cover_chinese
34
37
  self.gsub(/[\uFF01-\uFF0F]/) {|s| (s.ord-65248).chr}
data/lib/luogu/openai.rb CHANGED
@@ -74,5 +74,41 @@ module Luogu::OpenAI
74
74
  end
75
75
  end
76
76
 
77
+ class Messages
78
+ def initialize
79
+ @messages = []
80
+ @system = {}
81
+ end
82
+
83
+ def system(text: nil, file_: nil)
84
+ data = text || File.read(file)
85
+ @system = {role: "system", content: data}
86
+ self
87
+ end
88
+
89
+ def user(text: nil, file: nil)
90
+ data = text || File.read(file)
91
+ @messages << {role: "user", content: data}
92
+ self
93
+ end
94
+
95
+ def assistant(text: nil, file: nil)
96
+ data = text || File.read(file)
97
+ @messages << {role: "assistant", content: data}
98
+ self
99
+ end
100
+
101
+ def to_a
102
+ @messages.unshift @system
103
+ end
104
+
105
+ class << self
106
+ def create
107
+ self.new
108
+ end
109
+ end
110
+
111
+ end
112
+
77
113
  module_function :chat, :client, :parse_json, :chat_response_handle, :find_final_answer, :get_content
78
114
  end
data/lib/luogu/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Luogu
4
- VERSION = "0.2.2"
4
+ VERSION = "0.2.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luogu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - MJ
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-22 00:00:00.000000000 Z
11
+ date: 2023-04-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -115,6 +115,7 @@ files:
115
115
  - lib/luogu.rb
116
116
  - lib/luogu/agent.rb
117
117
  - lib/luogu/agent_runner.rb
118
+ - lib/luogu/aiui.rb
118
119
  - lib/luogu/application.rb
119
120
  - lib/luogu/base.rb
120
121
  - lib/luogu/chatllm.rb