kamigo 0.9.0 → 0.10.0
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/README.md +24 -19
- data/lib/kamigo/version.rb +1 -1
- metadata +8 -9
- data/lib/generators/rails/kamigo/state_generator.rb +0 -56
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6c37d93e670d52741747f5c8757b42d2945833b12c74366010ba4b70b665685f
|
|
4
|
+
data.tar.gz: 37c612b5bbe34236e3a3d583c6c212b4352be10cfcd5c9f5ef9a1ecfa203fbdc
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4e94bee3022f707c23024408e1e77b543a06de37a72231efff58136f621bbe6f5ebcb81eb152134001b19215832e7629ad8ffd0cbf9760351a4a9b0be7aa920b
|
|
7
|
+
data.tar.gz: e62730e1fff290e8ffe94677d9a0a9fca5c2a126bf95430b5262dfd982435659cb5071453df7652bff710e5a3476cb0736317bdaa345bec45ec6ac478879ddff
|
data/README.md
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# Kamigo 簡介
|
|
2
|
-
|
|
3
2
|
Kamigo 是一個基於 Rails 的 Chatbot MVC Framework。
|
|
4
3
|
|
|
5
4
|
Kamigo 讓你開發 Chatbot 就跟開發網站一樣容易,甚至可以同時開發網站以及 Chatbot 介面,共用 Controller 和 Model,只需要針對 Chatbot 實作 View。
|
|
@@ -9,7 +8,7 @@ Kamigo 提供了重要的 generator,讓你開發聊天機器人時可以快的
|
|
|
9
8
|
以下將說明如何使用 Kamigo 來製作 Todo 的教學文件。
|
|
10
9
|
|
|
11
10
|
# 建立新的 rails 專案
|
|
12
|
-
|
|
11
|
+
將以下指令全部複製,直接貼到 bash 執行即可。
|
|
13
12
|
|
|
14
13
|
```bash
|
|
15
14
|
# 建立新專案
|
|
@@ -26,49 +25,53 @@ rails db:migrate
|
|
|
26
25
|
```
|
|
27
26
|
|
|
28
27
|
# 設定首頁
|
|
29
|
-
在 config/routes.rb 當中加入首頁設定:
|
|
28
|
+
在 `config/routes.rb` 當中加入首頁設定:
|
|
30
29
|
|
|
31
30
|
```
|
|
32
31
|
root to: "todos#index"
|
|
33
32
|
```
|
|
34
33
|
|
|
35
34
|
# 安裝 js 套件
|
|
35
|
+
<!-- TODO: 待卡米修改完 Kamiliff 後,需新增不同使用方式的說明 -->
|
|
36
36
|
在 `app/assets/javascripts/application.js` 當中加入一行程式碼:
|
|
37
37
|
|
|
38
38
|
```
|
|
39
39
|
//= require kamiliff
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
#
|
|
43
|
-
|
|
42
|
+
# 設定聊天機器人 Webhook URL
|
|
43
|
+
本文假設你已經有一個自己的聊天機器人,請將以下網址填入 LINE Bot 的 Webhook URL 欄位中:
|
|
44
44
|
|
|
45
45
|
```
|
|
46
|
-
|
|
47
|
-
LINE_CHANNEL_TOKEN=這裡填入你的 LINE_CHANNEL_TOKEN
|
|
48
|
-
LIFF_COMPACT=這裡填入你的 LIFF_COMPACT
|
|
49
|
-
LIFF_TALL=這裡填入你的 LIFF_TALL
|
|
50
|
-
LIFF_FULL=這裡填入你的 LIFF_FULL
|
|
46
|
+
https://你的網域/line
|
|
51
47
|
```
|
|
52
48
|
|
|
53
|
-
|
|
49
|
+
第一次開發 LINE Bot 的人可以服用此帖 [Webhook URL 設定 QA](/doc/06_setting.md#Webhook-URL-設定-QA)。
|
|
54
50
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
# 設定聊天機器人 webhook url
|
|
58
|
-
|
|
59
|
-
請將以下網址填入 LINE Bot 的 webhook url 欄位中:
|
|
51
|
+
# 設定聊天機器人環境變數
|
|
52
|
+
請在專案根目錄下新增一個 `.env` 檔並且填入以下內容:
|
|
60
53
|
|
|
61
54
|
```
|
|
62
|
-
|
|
55
|
+
LINE_CHANNEL_SECRET=這裡填入你的 LINE_CHANNEL_SECRET
|
|
56
|
+
LINE_CHANNEL_TOKEN=這裡填入你的 LINE_CHANNEL_ACCESS_TOKEN
|
|
57
|
+
LIFF_COMPACT=這裡填入你的 COMPACT_LIFF_URL
|
|
58
|
+
LIFF_TALL=這裡填入你的 TALL_LIFF_URL
|
|
59
|
+
LIFF_FULL=這裡填入你的 FULL_LIFF_URL
|
|
63
60
|
```
|
|
64
61
|
|
|
62
|
+
- `LINE_CHANNEL_SECRET` 可以在 Messaging API 後台的 Basic settings 分頁中找到。
|
|
63
|
+
- `LINE_CHANNEL_ACCESS_TOKEN` 可以在 Messaging API 後台的 Messaging API 分頁中找到。
|
|
64
|
+
- `COMPACT_LIFF_URL`、`TALL_LIFF_URL` 和 `FULL_LIFF_URL` 需要到 LINE 後台的 LIFF 分頁新增後,即可獲得一組 LIFF URL。
|
|
65
|
+
|
|
66
|
+
Kamigo 預設的 LIFF Size 為 Compact,你也可以只新增 Compact LIFF URL。
|
|
67
|
+
詳細的 LIFF 設定說明可以服用此帖 [LIFF 設定 QA](/doc/06_setting.md#LIFF-設定-QA)。
|
|
68
|
+
|
|
65
69
|
至此串接完成。
|
|
66
70
|
|
|
67
71
|
# 實際使用
|
|
68
|
-
|
|
69
72
|
Kamigo 預設使用基本的語意理解模型,會將使用者輸入視為在瀏覽器網址上輸入文字,並且以 LINE Flex Message 來顯示對應的結果。
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
開啟 LINE 和聊天機器人說 `/`,就能看到首頁的樣子。
|
|
72
75
|
|
|
73
76
|
# 使用 kamigo 製作的聊天機器人
|
|
74
77
|
- [kamigo demo](https://github.com/etrex/kamigo_demo)
|
|
@@ -77,12 +80,14 @@ Kamigo 預設使用基本的語意理解模型,會將使用者輸入視為在
|
|
|
77
80
|
<p><img width="100" height="100" src="https://camo.githubusercontent.com/b8c51b15b20b159d356245277d079c04482acc01/68747470733a2f2f692e696d6775722e636f6d2f7534547675676e2e706e67"></p>
|
|
78
81
|
- 守護寵物機器人
|
|
79
82
|
<p><img width="100" height="100" src="/doc/images/pet_loved_qrcode.png"></p>
|
|
83
|
+
|
|
80
84
|
# 詳細的說明文件
|
|
81
85
|
- [Kamigo 架構概觀](/doc/01_intro.md)
|
|
82
86
|
- [Route 的使用說明](/doc/02_route.md)
|
|
83
87
|
- [Controller 的使用說明](/doc/03_controller.md)
|
|
84
88
|
- [View 的使用說明](/doc/04_view.md)
|
|
85
89
|
- [Form 的使用說明](/doc/05_form.md)
|
|
90
|
+
- [Kamigo 相關設定與 QA](/doc/06_setting.md)
|
|
86
91
|
|
|
87
92
|
# 計畫
|
|
88
93
|
- 提供多種語意理解模型串接
|
data/lib/kamigo/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kamigo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- etrex
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-10-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ">="
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.
|
|
33
|
+
version: 0.17.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ">="
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.
|
|
40
|
+
version: 0.17.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: kamiflex
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -97,7 +97,6 @@ files:
|
|
|
97
97
|
- config/routes.rb
|
|
98
98
|
- lib/generators/rails/kamigo/USAGE
|
|
99
99
|
- lib/generators/rails/kamigo/kamigo_generator.rb
|
|
100
|
-
- lib/generators/rails/kamigo/state_generator.rb
|
|
101
100
|
- lib/generators/rails/kamigo/templates/edit.liff.erb
|
|
102
101
|
- lib/generators/rails/kamigo/templates/index.line.erb
|
|
103
102
|
- lib/generators/rails/kamigo/templates/new.liff.erb
|
|
@@ -117,7 +116,7 @@ homepage: https://github.com/etrex/kamigo
|
|
|
117
116
|
licenses:
|
|
118
117
|
- MIT
|
|
119
118
|
metadata: {}
|
|
120
|
-
post_install_message:
|
|
119
|
+
post_install_message:
|
|
121
120
|
rdoc_options: []
|
|
122
121
|
require_paths:
|
|
123
122
|
- lib
|
|
@@ -132,8 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
132
131
|
- !ruby/object:Gem::Version
|
|
133
132
|
version: '0'
|
|
134
133
|
requirements: []
|
|
135
|
-
rubygems_version: 3.
|
|
136
|
-
signing_key:
|
|
134
|
+
rubygems_version: 3.1.4
|
|
135
|
+
signing_key:
|
|
137
136
|
specification_version: 4
|
|
138
137
|
summary: a chatbot framework based on rails
|
|
139
138
|
test_files: []
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require 'rails/generators/named_base'
|
|
2
|
-
require 'rails/generators/resource_helpers'
|
|
3
|
-
|
|
4
|
-
module Rails
|
|
5
|
-
module Generators
|
|
6
|
-
class CreateStateGenerator < NamedBase
|
|
7
|
-
include Rails::Generators::ResourceHelpers
|
|
8
|
-
namespace "devise"
|
|
9
|
-
argument :attributes, type: :string, default: 'kamigo_state'
|
|
10
|
-
|
|
11
|
-
class_option :timestamps, type: :boolean, default: true
|
|
12
|
-
|
|
13
|
-
def create_root_folder
|
|
14
|
-
path = File.join('app/views', controller_file_path)
|
|
15
|
-
empty_directory path unless File.directory?(path)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def copy_view_files
|
|
19
|
-
filenames.each do |filename|
|
|
20
|
-
template filename, File.join('app/views', controller_file_path, filename)
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
protected
|
|
25
|
-
|
|
26
|
-
def attributes_names
|
|
27
|
-
[:id] + super
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def filenames
|
|
31
|
-
[
|
|
32
|
-
"index.line.erb",
|
|
33
|
-
"show.line.erb",
|
|
34
|
-
"edit.liff.erb",
|
|
35
|
-
"new.liff.erb",
|
|
36
|
-
]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def full_attributes_list
|
|
40
|
-
if options[:timestamps]
|
|
41
|
-
attributes_list(attributes_names + %w(created_at updated_at))
|
|
42
|
-
else
|
|
43
|
-
attributes_list(attributes_names)
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def attributes_list(attributes = attributes_names)
|
|
48
|
-
if self.attributes.any? {|attr| attr.name == 'password' && attr.type == :digest}
|
|
49
|
-
attributes = attributes.reject {|name| %w(password password_confirmation).include? name}
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
attributes.map { |a| ":#{a}"} * ', '
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|