luogu 0.1.9 → 0.1.10

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: 8b6f8d477025b929343fbd70605905c557d33550d3f0f3921d256b295f993a96
4
- data.tar.gz: 49aaf6803e6a8428bf143a743dd07ad840ddd0655a3228fad59543842af65466
3
+ metadata.gz: bf66040bab414493d1be24b2ed42780d2cefae0c79814b48b363bcc2ed094415
4
+ data.tar.gz: 4e1c53cb018a14ed2ca607d364717fd5f84a8ff7a7246c641e79cd6f17806ae7
5
5
  SHA512:
6
- metadata.gz: 6de98f0d6be3266c9b4d873fb0e97bd1cf94f63231411961af39671a1be9b4ce0040d3efd1476fe37a309bee3722e1a7e724fdbd37a0dc949e4982fb8e8425d4
7
- data.tar.gz: 0cc7c4f3f9fa709c7fd1c7ca1a3b10ede905e5be36b90701edd0f100b404e64144deb20de6f081d3f6b89c757932f2932651fb0b6c6f60ec938419dfde2d5855
6
+ metadata.gz: 9670b5c6bd270e449b2916313474c4a6ac0eafff47b550a9853e8a6b0a032375eb7d74bc29d68c431fbb8ffe2ba946cc458316aa0046fde514e710b7dc642d06
7
+ data.tar.gz: 30556b308a94306863f8f2f7e6b1ebf9d53214a3832644cb013dc99fb332e781e519e2dd6f52a99d6da367b9f9973c1b7123b5a5e524aaa4d1d4eb5015f3d0e4
data/README.md CHANGED
@@ -62,9 +62,10 @@ end
62
62
  - exit 退出
63
63
 
64
64
  ## 插件模式
65
- OpenStruct.new(request_params: params)
66
- OpenStruct.new(user_input: user_message)
67
- OpenStruct.new(request_messages: messages)
68
- OpenStruct.new(user_input: user_message, response_message: assistant_message)
65
+ - OpenStruct.new(request_params: params)
66
+ - OpenStruct.new(user_input: user_message)
67
+ - OpenStruct.new(request_messages: messages)
68
+ - OpenStruct.new(user_input: user_message, response_message: assistant_message)
69
+ - OpenStruct.new(response: response)
69
70
 
70
71
  ## MIT 协议
data/lib/luogu/chatgpt.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Luogu
2
2
  class ChatGPT
3
3
 
4
- attr_accessor :template, :limit_history, :prompt, :row_history, :history, :temperature, :model_name
4
+ attr_accessor :template, :limit_history, :prompt, :row_history, :history, :temperature, :model_name, :context
5
5
 
6
6
  def initialize(file, history_path='.', plugin_file_path=nil)
7
7
  @plugin_file_path = plugin_file_path || file.sub(File.extname(file), ".plugin.rb")
@@ -23,6 +23,8 @@ module Luogu
23
23
  @row_history = []
24
24
  @history = HistoryQueue.new @limit_history
25
25
 
26
+ @context = OpenStruct.new
27
+
26
28
  if @plugin.setup_proc
27
29
  @plugin.setup_proc.call(self, OpenStruct.new)
28
30
  end
@@ -36,21 +38,25 @@ module Luogu
36
38
  }
37
39
 
38
40
  if @plugin.before_request_proc
39
- params = @plugin.before_request_proc.call(self, OpenStruct.new(request_params: params)).request_params
41
+ @context.request_params = params
42
+ params = @plugin.before_request_proc.call(self, @context).request_params
40
43
  end
41
44
  response = client.chat(parameters: params)
42
- @plugin.after_request_proc.call(self, OpenStruct.new(response: response)) if @plugin.after_request_proc
45
+ @context.response = response
46
+ @plugin.after_request_proc.call(self, @context) if @plugin.after_request_proc
43
47
 
44
48
  response.dig("choices", 0, "message", "content")
45
49
  end
46
50
 
47
51
  def chat(user_message)
48
52
  if @plugin.before_input_proc
49
- user_message = @plugin.before_input_proc.call(self, OpenStruct.new(user_input: user_message)).user_input
53
+ @context.user_input = user_message
54
+ user_message = @plugin.before_input_proc.call(self, @context).user_input
50
55
  end
51
56
  messages = (@prompt.render + @history.to_a) << {role: "user", content: user_message}
52
57
  if @plugin.after_input_proc
53
- messages = @plugin.after_input_proc.call(self, OpenStruct.new(request_messages: messages)).request_messages
58
+ @context.request_messages = messages
59
+ messages = @plugin.after_input_proc.call(self, @context).request_messages
54
60
  end
55
61
 
56
62
  assistant_message = self.request(messages)
@@ -61,7 +67,9 @@ module Luogu
61
67
  puts "执行文档中的callback"
62
68
  instance_eval @prompt.ruby_code, @prompt.file_path, @prompt.ruby_code_line
63
69
  elsif @plugin.before_save_history_proc
64
- @plugin.before_save_history_proc.call(self, OpenStruct.new(user_input: user_message, response_message: assistant_message))
70
+ @context.user_input = user_message
71
+ @context.response_message = assistant_message
72
+ @plugin.before_save_history_proc.call(self, @context)
65
73
  else
66
74
  puts "执行默认的历史记录"
67
75
  self.push_history(user_message, assistant_message)
@@ -79,7 +87,9 @@ module Luogu
79
87
  @history.enqueue({role: "user", content: user_message})
80
88
  @history.enqueue({role: "assistant", content: assistant_message})
81
89
  if @plugin.after_save_history_proc
82
- @plugin.after_save_history_proc.call(self, OpenStruct.new(user_input: user_message, response_message: assistant_message))
90
+ @context.user_input = user_message
91
+ @context.response_message = response_message
92
+ @plugin.after_save_history_proc.call(self, @context)
83
93
  end
84
94
  end
85
95
 
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.1.9"
4
+ VERSION = "0.1.10"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: luogu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.9
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - MJ