everyai 0.0.6 → 0.0.8

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: a0d7d1e9d63e7fd278a1fb7d64aa992c38bd55a8dc1663c486af894737343faf
4
- data.tar.gz: 3115c0159b908b21ffc2c63e6686e87a2dd6f7ab33ad77fc8f89393cac06921f
3
+ metadata.gz: 52645f230f8c1bcd06b406d27056d1fddb9654b956dce394b29807cad04a393b
4
+ data.tar.gz: 56798d73e0ce287a5c70f75e196dbf7fdccb6c6dbe9ea8803af1ac966e58fbfb
5
5
  SHA512:
6
- metadata.gz: 7fac790345ee17c259018dbc1f5df69573a9d12206784e20c7dd37348b36b174158c2eb36d1b0b3229672bee948c4167e8bb93a926dc0c81c3f1b3e4b1f3099f
7
- data.tar.gz: 4d3606fa5ddb6373b48dccc90f9676e4e1d0ee4945b074f4f41f7fe5d93eedccb4d034a2330a7ee4c51c56186c98793444e00f5c59dea89f1b1b75643cba249c
6
+ metadata.gz: 23a448b4b60db25d004f78d03ecef88ebfec08cdda489f9357fab9067e504c0f7960c1d930da2128c961fc94c08c2ec047b6634fc80cf0458f65e3dc015edb97
7
+ data.tar.gz: 17e51b4b2ba07a454c9f129682a95abd2daaa9ceec73208d9fc281a97b2b1a051df309dad38c61f449d35ec6c27b22276c8f288bfd24f6a6a6b9743e080df04e
@@ -0,0 +1,55 @@
1
+ class Everyai
2
+ class Agent
3
+ AGENT_PATH = "#{Everyai::DOMAIN}/api/v1/agents"
4
+ AGENT_GENERATION_PATH = "#{AGENT_PATH}/generations"
5
+
6
+ class << self
7
+ def find(agent_id)
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)
17
+ else
18
+ body["errors"]
19
+ end
20
+ end
21
+
22
+ def generate(prompt, model: "llama3.2", **model_options)
23
+ agent_id = model_options[:agent_id]
24
+ options = model_options.except(:agent_id)
25
+ if !agent_id
26
+ { errors: "You need to include an agent id first" }
27
+ end
28
+
29
+ agent = new(agent_id: agent_id)
30
+ agent.generate(prompt, model: model, **model_options)
31
+ end
32
+ end
33
+
34
+ attr_reader :response_data, :id, :llm_model, :identity, :instructions
35
+
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]
42
+ end
43
+
44
+ def generate(prompt, model: "llama3.2", **model_options)
45
+ url = URI.parse(AGENT_GENERATION_PATH)
46
+ response = Net::HTTP.post_form(url, { "prompt": prompt, "model": model, "token": Everyai.api_key, "agent_id": id, "options": model_options.to_json })
47
+ body = JSON.parse(response.body)
48
+ if response.kind_of? Net::HTTPSuccess
49
+ body["results"]
50
+ else
51
+ body["errors"]
52
+ end
53
+ end
54
+ end
55
+ end
@@ -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,7 +3,8 @@ require 'uri'
3
3
  require 'json'
4
4
 
5
5
  class Everyai
6
- DOMAIN = "https://every-llm.com" #"http://localhost:3000"
6
+ #DOMAIN = "https://every-llm.com"
7
+ DOMAIN = "http://localhost:3000"
7
8
  API_GENERATIONS_PATH = "#{DOMAIN}/api/v1/generations"
8
9
 
9
10
  class << self
@@ -17,7 +18,7 @@ class Everyai
17
18
  @api_key
18
19
  end
19
20
 
20
- def generate(prompt, model: "llama3.1", **model_options)
21
+ def generate(prompt, model: "llama3.2", **model_options)
21
22
  url = URI.parse(API_GENERATIONS_PATH)
22
23
  response = Net::HTTP.post_form(url, { "prompt": prompt, "model": model, "token": api_key, "options": model_options.to_json })
23
24
  body = JSON.parse(response.body)
@@ -32,7 +33,7 @@ class Everyai
32
33
  generate(prompt, model: model )
33
34
  end
34
35
 
35
- def llama(prompt, model: "llama3.1", context: nil)
36
+ def llama(prompt, model: "llama3.2", context: nil)
36
37
  generate(prompt, model: model, context: context)
37
38
  end
38
39
 
@@ -41,3 +42,6 @@ class Everyai
41
42
  end
42
43
  end
43
44
  end
45
+
46
+ require_relative 'everyai/agent'
47
+ require_relative 'everyai/chatbot'
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: everyai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Enoch Tamulonis
8
8
  - Kurt Tamulonis
9
- autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2024-09-08 00:00:00.000000000 Z
11
+ date: 2025-01-23 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: This ruby gem allows you to connect to any AI model with one simple interface.
15
14
  Never worry about configuration and installing libraries. We make connecting to
@@ -20,12 +19,13 @@ extensions: []
20
19
  extra_rdoc_files: []
21
20
  files:
22
21
  - lib/everyai.rb
22
+ - lib/everyai/agent.rb
23
+ - lib/everyai/chatbot.rb
23
24
  homepage: https://rubygems.org/gems/everyai
24
25
  licenses:
25
26
  - MIT
26
27
  metadata:
27
28
  source_code_uri: https://github.com/Every-LLM/every-ai-gem
28
- post_install_message:
29
29
  rdoc_options: []
30
30
  require_paths:
31
31
  - lib
@@ -40,8 +40,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  requirements: []
43
- rubygems_version: 3.5.7
44
- signing_key:
43
+ rubygems_version: 3.6.2
45
44
  specification_version: 4
46
45
  summary: Every AI ruby gem. Connect to any AI model easily
47
46
  test_files: []