appchat 0.0.2 → 0.0.4
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 +4 -4
- data/lib/generators/appchat/appchat_generator.rb +11 -1
- data/lib/generators/appchat/templates/assets/appchat.tailwind.css +62 -0
- data/lib/generators/appchat/templates/chats/chat.html.erb +1 -1
- data/lib/generators/appchat/templates/chats/index.html.erb +1 -1
- data/lib/generators/appchat/templates/get_ai_response_job.rb +2 -0
- data/lib/generators/appchat/templates/messages/_typing_bubbles.html.erb +5 -0
- data/lib/generators/appchat/templates/messages/message.html.erb +5 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f741156bd18664bfb66a4700b633dad255bc2c5e41cacc6b297acbc6d67492b8
|
4
|
+
data.tar.gz: d4612a8a1ee88a6caf7bc4e039cf74fa44b369fe79b5d595b0e9544329749819
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0959e29a0ed53649f7f51523e5b4c6f4089b05449f8649165ed7bf7505bdb111774e0c24661e5344f0752df1fa08a38b250a3fe911543530adb7f8a3020f2bd6'
|
7
|
+
data.tar.gz: '08f3d14d68ea6c2cf9c50da6842051b78bafa250bf58fc77475e09c32090344d06fe4d98205294aa08e9331bf1817e8d5b23213da001b136dd1fb2101c98aca8'
|
@@ -24,7 +24,7 @@ class AppchatGenerator < Rails::Generators::Base
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def generate_scaffolds
|
27
|
-
generate "model", "Chat"
|
27
|
+
generate "model", "Chat context:text"
|
28
28
|
route "resources :chats"
|
29
29
|
generate "scaffold", "Message chat:references content:text role:integer"
|
30
30
|
end
|
@@ -37,6 +37,8 @@ class AppchatGenerator < Rails::Generators::Base
|
|
37
37
|
copy_file "messages/index.html.erb", "app/views/messages/index.html.erb", force: true
|
38
38
|
copy_file "messages/new.html.erb", "app/views/messages/new.html.erb", force: true
|
39
39
|
copy_file "messages/message.html.erb", "app/views/messages/_message.html.erb", force: true
|
40
|
+
copy_file "messages/_typing_bubbles.html.erb", "app/views/messages/_typing_bubbles.html.erb", force: true
|
41
|
+
copy_file "assets/appchat.tailwind.css", "app/assets/stylesheets/appchat.tailwind.css", force: true
|
40
42
|
copy_file "javascript/chat_message_controller.js", "app/javascript/controllers/chat_message_controller.js"
|
41
43
|
end
|
42
44
|
|
@@ -45,6 +47,10 @@ class AppchatGenerator < Rails::Generators::Base
|
|
45
47
|
copy_file "models/chat.rb", "app/models/chat.rb", force: true
|
46
48
|
end
|
47
49
|
|
50
|
+
def serialize_context
|
51
|
+
inject_into_class 'app/models/chat.rb', 'Chat', "serialize :context, coder:JSON, type: Array\n"
|
52
|
+
end
|
53
|
+
|
48
54
|
def set_associations
|
49
55
|
inject_into_class 'app/models/chat.rb', 'Chat', " has_many :messages, dependent: :destroy\n"
|
50
56
|
end
|
@@ -76,6 +82,10 @@ class AppchatGenerator < Rails::Generators::Base
|
|
76
82
|
ART
|
77
83
|
end
|
78
84
|
|
85
|
+
def get_started
|
86
|
+
puts "Congratulations on setting up appchat! \n run bin/dev to spin up your app, and visit localhost:3000/chats to start chatting"
|
87
|
+
end
|
88
|
+
|
79
89
|
private
|
80
90
|
|
81
91
|
def gem_exists?(gem_name)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
@tailwind base;
|
2
|
+
@tailwind components;
|
3
|
+
@tailwind utilities;
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
@layer components {
|
8
|
+
|
9
|
+
.typing {
|
10
|
+
background-color: #e0e0e0;
|
11
|
+
display: block;
|
12
|
+
width: 60px;
|
13
|
+
height: 40px;
|
14
|
+
border-radius: 20px;
|
15
|
+
margin: 0 1rem;
|
16
|
+
display: flex;
|
17
|
+
justify-content: center;
|
18
|
+
align-items: center;
|
19
|
+
}
|
20
|
+
|
21
|
+
.circle {
|
22
|
+
display: block;
|
23
|
+
height: 10px;
|
24
|
+
width: 10px;
|
25
|
+
border-radius: 50%;
|
26
|
+
background-color: #8d8d8d;
|
27
|
+
margin: 3px;
|
28
|
+
}
|
29
|
+
|
30
|
+
.circle.scaling {
|
31
|
+
animation: typing 1000ms ease-in-out infinite;
|
32
|
+
animation-delay: 3600ms;
|
33
|
+
}
|
34
|
+
|
35
|
+
.circle:nth-child(1) {
|
36
|
+
animation-delay: 0ms;
|
37
|
+
}
|
38
|
+
|
39
|
+
.circle:nth-child(2) {
|
40
|
+
animation-delay: 333ms;
|
41
|
+
}
|
42
|
+
|
43
|
+
.circle:nth-child(3) {
|
44
|
+
animation-delay: 666ms;
|
45
|
+
}
|
46
|
+
|
47
|
+
@keyframes typing {
|
48
|
+
0% {
|
49
|
+
transform: scale(1);
|
50
|
+
}
|
51
|
+
33% {
|
52
|
+
transform: scale(1);
|
53
|
+
}
|
54
|
+
50% {
|
55
|
+
transform: scale(1.4);
|
56
|
+
}
|
57
|
+
100% {
|
58
|
+
transform: scale(1);
|
59
|
+
}
|
60
|
+
}
|
61
|
+
|
62
|
+
}
|
@@ -5,7 +5,7 @@
|
|
5
5
|
</style>
|
6
6
|
<div class="flex w-full">
|
7
7
|
<%= turbo_stream_from :chats %>
|
8
|
-
<div class="max-w-sm w-full flex flex-col gap-4 p-2 w-full flex-shrink-0 bg-[#2e2e2e] rounded-lg" id="chats">
|
8
|
+
<div class="max-w-sm w-full h-full flex flex-col gap-4 p-2 w-full flex-shrink-0 bg-[#2e2e2e] rounded-lg" id="chats">
|
9
9
|
<%= link_to chats_path, data: { turbo_method: :post, turbo_frame: :chat }, class: "flex gap-2 justify-center items-center bg-gray-500 text-gray-100 rounded-lg p-2 text-center mr-auto" do %>
|
10
10
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6">
|
11
11
|
<path stroke-linecap="round" stroke-linejoin="round" d="M12 4.5v15m7.5-7.5h-15" />
|
@@ -22,6 +22,7 @@ class GetAiResponseJob < ApplicationJob
|
|
22
22
|
{
|
23
23
|
model: 'llama3.1',
|
24
24
|
prompt: user_prompt,
|
25
|
+
context: chat.context,
|
25
26
|
stream: true,
|
26
27
|
}
|
27
28
|
) do |event, raw|
|
@@ -32,5 +33,6 @@ class GetAiResponseJob < ApplicationJob
|
|
32
33
|
message.update(content: new_content)
|
33
34
|
end
|
34
35
|
end
|
36
|
+
chat.update(context: response.last["context"])
|
35
37
|
end
|
36
38
|
end
|
@@ -1,3 +1,7 @@
|
|
1
1
|
<div data-chat-message-target="message" id="<%= dom_id(message) %>" class="bg-gray-200 text-gray-900 shadow-lg p-4 rounded-lg">
|
2
|
-
|
2
|
+
<% if message.content? %>
|
3
|
+
<%= message.content %>
|
4
|
+
<% else %>
|
5
|
+
<%= render 'messages/typing_bubbles' %>
|
6
|
+
<% end %>
|
3
7
|
</div>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appchat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- hackliteracy
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-08-
|
11
|
+
date: 2024-08-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -73,12 +73,14 @@ extensions: []
|
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
75
|
- lib/generators/appchat/appchat_generator.rb
|
76
|
+
- lib/generators/appchat/templates/assets/appchat.tailwind.css
|
76
77
|
- lib/generators/appchat/templates/chats/chat.html.erb
|
77
78
|
- lib/generators/appchat/templates/chats/index.html.erb
|
78
79
|
- lib/generators/appchat/templates/chats/show.html.erb
|
79
80
|
- lib/generators/appchat/templates/chats_controller.rb
|
80
81
|
- lib/generators/appchat/templates/get_ai_response_job.rb
|
81
82
|
- lib/generators/appchat/templates/javascript/chat_message_controller.js
|
83
|
+
- lib/generators/appchat/templates/messages/_typing_bubbles.html.erb
|
82
84
|
- lib/generators/appchat/templates/messages/index.html.erb
|
83
85
|
- lib/generators/appchat/templates/messages/message.html.erb
|
84
86
|
- lib/generators/appchat/templates/messages/new.html.erb
|
@@ -88,7 +90,8 @@ files:
|
|
88
90
|
homepage: https://rubygems.org/gems/appchat
|
89
91
|
licenses:
|
90
92
|
- MIT
|
91
|
-
metadata:
|
93
|
+
metadata:
|
94
|
+
source_code_uri: https://github.com/ktamulonis/appchat
|
92
95
|
post_install_message:
|
93
96
|
rdoc_options: []
|
94
97
|
require_paths:
|
@@ -104,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
104
107
|
- !ruby/object:Gem::Version
|
105
108
|
version: '0'
|
106
109
|
requirements: []
|
107
|
-
rubygems_version: 3.5.
|
110
|
+
rubygems_version: 3.5.17
|
108
111
|
signing_key:
|
109
112
|
specification_version: 4
|
110
113
|
summary: Appchat makes it easy to add a chat to your app
|