everyai 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/everyai/agent.rb +18 -11
- data/lib/everyai/chatbot.rb +49 -0
- data/lib/everyai.rb +4 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52645f230f8c1bcd06b406d27056d1fddb9654b956dce394b29807cad04a393b
|
4
|
+
data.tar.gz: 56798d73e0ce287a5c70f75e196dbf7fdccb6c6dbe9ea8803af1ac966e58fbfb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23a448b4b60db25d004f78d03ecef88ebfec08cdda489f9357fab9067e504c0f7960c1d930da2128c961fc94c08c2ec047b6634fc80cf0458f65e3dc015edb97
|
7
|
+
data.tar.gz: 17e51b4b2ba07a454c9f129682a95abd2daaa9ceec73208d9fc281a97b2b1a051df309dad38c61f449d35ec6c27b22276c8f288bfd24f6a6a6b9743e080df04e
|
data/lib/everyai/agent.rb
CHANGED
@@ -5,12 +5,15 @@ class Everyai
|
|
5
5
|
|
6
6
|
class << self
|
7
7
|
def find(agent_id)
|
8
|
-
url = URI.parse(AGENT_PATH)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
url = URI.parse("#{AGENT_PATH}/#{agent_id}")
|
9
|
+
url.query = URI.encode_www_form({
|
10
|
+
"token" => Everyai.api_key
|
11
|
+
})
|
12
|
+
response = Net::HTTP.get_response(url)
|
13
|
+
body = JSON.parse(response.body, symbolize_names: true)
|
14
|
+
|
15
|
+
if response.is_a?(Net::HTTPSuccess)
|
16
|
+
new(**body)
|
14
17
|
else
|
15
18
|
body["errors"]
|
16
19
|
end
|
@@ -23,20 +26,24 @@ class Everyai
|
|
23
26
|
{ errors: "You need to include an agent id first" }
|
24
27
|
end
|
25
28
|
|
26
|
-
agent = new(agent_id)
|
29
|
+
agent = new(agent_id: agent_id)
|
27
30
|
agent.generate(prompt, model: model, **model_options)
|
28
31
|
end
|
29
32
|
end
|
30
33
|
|
31
|
-
attr_reader :
|
34
|
+
attr_reader :response_data, :id, :llm_model, :identity, :instructions
|
32
35
|
|
33
|
-
def initialize(
|
34
|
-
@
|
36
|
+
def initialize(**data)
|
37
|
+
@response_data = data
|
38
|
+
@id = data[:agent_id]
|
39
|
+
@llm_model = data[:llm_model]
|
40
|
+
@identity = data[:identity]
|
41
|
+
@instructions = data[:instructions]
|
35
42
|
end
|
36
43
|
|
37
44
|
def generate(prompt, model: "llama3.2", **model_options)
|
38
45
|
url = URI.parse(AGENT_GENERATION_PATH)
|
39
|
-
response = Net::HTTP.post_form(url, { "prompt": prompt, "model": model, "token": Everyai.api_key, "agent_id":
|
46
|
+
response = Net::HTTP.post_form(url, { "prompt": prompt, "model": model, "token": Everyai.api_key, "agent_id": id, "options": model_options.to_json })
|
40
47
|
body = JSON.parse(response.body)
|
41
48
|
if response.kind_of? Net::HTTPSuccess
|
42
49
|
body["results"]
|
@@ -0,0 +1,49 @@
|
|
1
|
+
class Everyai
|
2
|
+
class Chatbot
|
3
|
+
CHATBOT_PATH = "#{Everyai::DOMAIN}/api/v1/chatbots"
|
4
|
+
|
5
|
+
class << self
|
6
|
+
def find(chatbot_id)
|
7
|
+
url = URI.parse("#{CHATBOT_PATH}/#{chatbot_id}")
|
8
|
+
url.query = URI.encode_www_form({
|
9
|
+
"token" => Everyai.api_key
|
10
|
+
})
|
11
|
+
response = Net::HTTP.get_response(url)
|
12
|
+
body = JSON.parse(response.body, symbolize_names: true)
|
13
|
+
|
14
|
+
if response.is_a?(Net::HTTPSuccess)
|
15
|
+
new(**body)
|
16
|
+
else
|
17
|
+
body["errors"]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def create(name:, avatar: nil, business_url: nil, business_bio: nil)
|
22
|
+
url = URI.parse(CHATBOT_PATH)
|
23
|
+
response = Net::HTTP.post_form(url,
|
24
|
+
{ "token": Everyai.api_key,
|
25
|
+
"name": name,
|
26
|
+
"avatar": avatar,
|
27
|
+
"business_url": business_url,
|
28
|
+
"business_bio": business_bio,
|
29
|
+
})
|
30
|
+
body = JSON.parse(response.body, symbolize_names: true)
|
31
|
+
if response.kind_of? Net::HTTPSuccess
|
32
|
+
new(**body)
|
33
|
+
else
|
34
|
+
body["errors"]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
attr_reader :response_data, :id, :name, :agent_id, :iframe_code
|
40
|
+
|
41
|
+
def initialize(**data)
|
42
|
+
@response_data = data
|
43
|
+
@id = data[:chatbot_id]
|
44
|
+
@name = data[:name]
|
45
|
+
@agent_id = data[:agent_id]
|
46
|
+
@iframe_code = data[:iframe_code]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/everyai.rb
CHANGED
@@ -3,8 +3,8 @@ require 'uri'
|
|
3
3
|
require 'json'
|
4
4
|
|
5
5
|
class Everyai
|
6
|
-
DOMAIN = "https://every-llm.com"
|
7
|
-
|
6
|
+
#DOMAIN = "https://every-llm.com"
|
7
|
+
DOMAIN = "http://localhost:3000"
|
8
8
|
API_GENERATIONS_PATH = "#{DOMAIN}/api/v1/generations"
|
9
9
|
|
10
10
|
class << self
|
@@ -43,4 +43,5 @@ class Everyai
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
require_relative 'everyai/agent'
|
46
|
+
require_relative 'everyai/agent'
|
47
|
+
require_relative 'everyai/chatbot'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: everyai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Enoch Tamulonis
|
8
8
|
- Kurt Tamulonis
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-01-
|
11
|
+
date: 2025-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: This ruby gem allows you to connect to any AI model with one simple interface.
|
14
14
|
Never worry about configuration and installing libraries. We make connecting to
|
@@ -20,6 +20,7 @@ extra_rdoc_files: []
|
|
20
20
|
files:
|
21
21
|
- lib/everyai.rb
|
22
22
|
- lib/everyai/agent.rb
|
23
|
+
- lib/everyai/chatbot.rb
|
23
24
|
homepage: https://rubygems.org/gems/everyai
|
24
25
|
licenses:
|
25
26
|
- MIT
|