pedicab 0.1.5 → 0.1.6

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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/#README.md# +51 -0
  3. data/Gemfile.lock +49 -0
  4. data/books/Arnold_Bennett-How_to_Live_on_24_Hours_a_Day.txt +1247 -0
  5. data/books/Edward_L_Bernays-crystallizing_public_opinion.txt +4422 -0
  6. data/books/Emma_Goldman-Anarchism_and_Other_Essays.txt +7654 -0
  7. data/books/Office_of_Strategic_Services-Simple_Sabotage_Field_Manual.txt +1057 -0
  8. data/books/Sigmund_Freud-Group_Psychology_and_The_Analysis_of_The_Ego.txt +2360 -0
  9. data/books/Steve_Hassan-The_Bite_Model.txt +130 -0
  10. data/books/Steve_Hassan-The_Bite_Model.txt~ +132 -0
  11. data/books/Sun_Tzu-Art_of_War.txt +159 -0
  12. data/books/Sun_Tzu-Art_of_War.txt~ +166 -0
  13. data/books/US-Constitution.txt +502 -0
  14. data/books/US-Constitution.txt~ +502 -0
  15. data/books/cia-kubark.txt +4637 -0
  16. data/books/machiavelli-the_prince.txt +4599 -0
  17. data/books/sun_tzu-art_of_war.txt +1017 -0
  18. data/books/us_army-bayonette.txt +843 -0
  19. data/lib/pedicab/calc.rb~ +8 -0
  20. data/lib/pedicab/link.rb +38 -0
  21. data/lib/pedicab/link.rb~ +14 -0
  22. data/lib/pedicab/mark.rb +9 -0
  23. data/lib/pedicab/mark.rb~ +5 -0
  24. data/lib/pedicab/on.rb +6 -0
  25. data/lib/pedicab/on.rb~ +6 -0
  26. data/lib/pedicab/poke.rb +14 -0
  27. data/lib/pedicab/poke.rb~ +15 -0
  28. data/lib/pedicab/query.rb +92 -0
  29. data/lib/pedicab/query.rb~ +93 -0
  30. data/lib/pedicab/rank.rb +92 -0
  31. data/lib/pedicab/rank.rb~ +89 -0
  32. data/lib/pedicab/ride.rb +109 -0
  33. data/lib/pedicab/ride.rb~ +101 -0
  34. data/lib/pedicab/version.rb +1 -1
  35. data/pedicab-0.1.0.gem +0 -0
  36. data/pedicab-0.1.1.gem +0 -0
  37. data/pedicab-0.1.2.gem +0 -0
  38. data/pedicab-0.1.3.gem +0 -0
  39. data/pedicab-0.1.4.gem +0 -0
  40. data/pedicab-0.1.5.gem +0 -0
  41. metadata +39 -1
@@ -0,0 +1,101 @@
1
+ module Pedicab
2
+ @@Ride = Hash.new { |h,k| h[k] = Ride.new(k) }
3
+ class Ride
4
+ attr_accessor :state, :action, :goal, :ride, :info, :tale, :path, :model
5
+ def initialize k
6
+ @id = k
7
+ @tale = 3
8
+ @model = 'model'
9
+ reset!
10
+ end
11
+ def reset!
12
+ @state = {}
13
+ @ride = []
14
+ @path = []
15
+ @info = ""
16
+ end
17
+
18
+ ##
19
+ # tell the "tale" of the ride.
20
+ def tale
21
+ a = []
22
+ if @ride.length > 0
23
+ h = @ride[-1]
24
+ return %[#{h[:input]}\n#{h[:output]}\n]
25
+ else
26
+ return ""
27
+ end
28
+ end
29
+
30
+ ##
31
+ # process input.
32
+ def go i
33
+ @path << "go #{i}"
34
+ @state[:action] = "go"
35
+ @state[:input] = i
36
+ Pedicab.on[:work].call(self)
37
+ @state[:output] = rider(role: 'user', model: 'planner', content: "#{@info}#{tale}#{i}")
38
+ @ride << @state
39
+ @state[:output].gsub(/\n+/, "\n")
40
+ end
41
+
42
+ ##
43
+ # process condition
44
+ def go? i
45
+ @path << "go? #{i}"
46
+ @state[:action] = "go?"
47
+ @state[:input] = i
48
+ @state[:yes] = false
49
+ Pedicab.on[:gate].call(self)
50
+ if rider(role: 'system', model: 'model', content: %[#{@info}#{tale}if the following statement is true respond 'yes', otherwise respond 'no':\n#{i}], response: 'bool' ) == 'yes'
51
+ @state[:yes] = true
52
+ Pedicab.on[:go].call(self)
53
+ end
54
+ @ride << @state
55
+ @state[:yes]
56
+ end
57
+
58
+ ##
59
+ # process list
60
+ def go! i, p, &b
61
+ @path << "with #{i} of #{p}"
62
+ @state[:action] = "go! fork"
63
+ @state[:input] = %[#{@info}#{tale}List only #{i} without repeating yourself:\n#{p}]
64
+ Pedicab.on[:fork].call(self)
65
+ @state[:list] = rider(role: 'user', model: 'model', content: @state[:input]).split("\n").uniq.map { |e| if e.strip.length > 0; puts %[#[fork]>]; Pedicab.on[:with].call(self); b.call(e.strip); end; }
66
+ @ride << @state
67
+ @state[:list]
68
+ end
69
+
70
+ private
71
+
72
+ def rider h={}, &b
73
+ @state[:content] = "I don't know."
74
+ puts %[#====[ #{@ride.length} ][#{@state[:action]}]\n#{@state[:input]}]
75
+ Pedicab.on[:before].call(self)
76
+ @state[:took] = Benchmark.realtime do
77
+ Open3.popen3("sudo python3 bin/pedicab.py /models/#{h[:model]}.gguf") do |stdin, stdout, stderr, wait_thread|
78
+ x = lambda { stdin.puts(JSON.generate(h)); stdout.gets }
79
+ begin
80
+ xx = x.call()
81
+ if "#{xx}".strip.length > 0
82
+ @state[:content] = JSON.parse("#{xx}")['content']
83
+ end
84
+ rescue => e
85
+ @state[:content] = "Error: #{e}"
86
+ end
87
+ end
88
+ end
89
+ Pedicab.on[:after].call(self)
90
+ puts %[#====[ #{@ride.length} ] took: #{@state[:took]} seconds.\n#{@state[:content]}\n##{Array.new(80,'=').join('')}#]
91
+ if block_given?
92
+ return b.call(self).gsub(/\n+/, "\n")
93
+ else
94
+ return @state[:content].gsub(/\n+/, "\n")
95
+ end
96
+ end
97
+ end
98
+ def self.ride
99
+ @@Ride
100
+ end
101
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pedicab
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
data/pedicab-0.1.0.gem ADDED
Binary file
data/pedicab-0.1.1.gem ADDED
Binary file
data/pedicab-0.1.2.gem ADDED
Binary file
data/pedicab-0.1.3.gem ADDED
Binary file
data/pedicab-0.1.4.gem ADDED
Binary file
data/pedicab-0.1.5.gem ADDED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pedicab
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Olson
@@ -115,14 +115,52 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
+ - "#README.md#"
118
119
  - CHANGELOG.md
119
120
  - CODE_OF_CONDUCT.md
120
121
  - Gemfile
122
+ - Gemfile.lock
121
123
  - LICENSE.txt
122
124
  - README.md
123
125
  - Rakefile
126
+ - books/Arnold_Bennett-How_to_Live_on_24_Hours_a_Day.txt
127
+ - books/Edward_L_Bernays-crystallizing_public_opinion.txt
128
+ - books/Emma_Goldman-Anarchism_and_Other_Essays.txt
129
+ - books/Office_of_Strategic_Services-Simple_Sabotage_Field_Manual.txt
130
+ - books/Sigmund_Freud-Group_Psychology_and_The_Analysis_of_The_Ego.txt
131
+ - books/Steve_Hassan-The_Bite_Model.txt
132
+ - books/Steve_Hassan-The_Bite_Model.txt~
133
+ - books/Sun_Tzu-Art_of_War.txt
134
+ - books/Sun_Tzu-Art_of_War.txt~
135
+ - books/US-Constitution.txt
136
+ - books/US-Constitution.txt~
137
+ - books/cia-kubark.txt
138
+ - books/machiavelli-the_prince.txt
139
+ - books/sun_tzu-art_of_war.txt
140
+ - books/us_army-bayonette.txt
124
141
  - lib/pedicab.rb
142
+ - lib/pedicab/calc.rb~
143
+ - lib/pedicab/link.rb
144
+ - lib/pedicab/link.rb~
145
+ - lib/pedicab/mark.rb
146
+ - lib/pedicab/mark.rb~
147
+ - lib/pedicab/on.rb
148
+ - lib/pedicab/on.rb~
149
+ - lib/pedicab/poke.rb
150
+ - lib/pedicab/poke.rb~
151
+ - lib/pedicab/query.rb
152
+ - lib/pedicab/query.rb~
153
+ - lib/pedicab/rank.rb
154
+ - lib/pedicab/rank.rb~
155
+ - lib/pedicab/ride.rb
156
+ - lib/pedicab/ride.rb~
125
157
  - lib/pedicab/version.rb
158
+ - pedicab-0.1.0.gem
159
+ - pedicab-0.1.1.gem
160
+ - pedicab-0.1.2.gem
161
+ - pedicab-0.1.3.gem
162
+ - pedicab-0.1.4.gem
163
+ - pedicab-0.1.5.gem
126
164
  - sig/pedicab.rbs
127
165
  homepage: https://github.com/xorgnak/pedicab
128
166
  licenses: