使用Watson API使用Python在Slack中创建多语言解释器机器人


介绍

让我们使用Slack上的Watson语言翻译器制作翻译机器人。
假设您加入了一个不会说日语的跨国团队,那么您就可以跟上Slack上的对话!将多语言解释器作为机器人。
在这里,我们将使用三种语言:日语,英语和德语。
使它成为一个始终像口译员一样翻译您的言论的机器人。

<表格>

用户评论

机器人翻译1

机器人翻译2


<身体>

英文

日语

德语

日语

英文

德语

德语

英文

日语


环境

操作系统:Windows 10
机器人程序:Python3-slackbot库
在哪里制作机器人:松弛
转换器:Watson-语言转换器

机器人程序留在这里。
https://github.com/kg1-thub/bot.git

翻译使用Watson API。
IBM Cloud Lite计划可免费使用某些功能,包括Language Translator。
这是一篇有关Watson API服务入门的文章。
[启动AI]尝试在Python(语言翻译器)中使用Watson API

提前准备

在Slack上创建漫游器并获取API令牌

首先,在Slack中创建一个机器人,并获取API密钥以连接到Python程序。
从下面的链接创建一个机器人。创建机器人需要Slack工作区的管理员权限。

创建Slack机器人

单击此链接移至以下屏幕。

image.png

在此屏幕上输入您的用户名(机器人名称),然后按"添加机器人集成"按钮。
可以在下一个屏幕上设置机器人在Slack上的显示名称。

单击"添加机器人集成"按钮以移至以下机器人设置屏幕。

image.png

是的,我们不要使用API??令牌。
我将在稍后用Python创建的程序中指定它。
之后,可以在同一设置屏幕的"全名"项中指定机器人的松弛状态下的显示名称。
本文中创建的解释器机器人的名称将为" Watson Translator"。

这是机器人的图像。
接下来,我们将构成机器人内容。

创建一个机器人程序

这是Bot程序内容的描述。

关于如何实现多语言翻译的思考

机器人程序的程序中使用Watson API,并使用Language Translator对其进行翻译。

语言翻译器模型注意事项

在这里,您需要注意日语-德语翻译。

语言翻译器具有用于翻译的语言和域的模型。
例如
?将日文翻译成英文的新闻领域模型
从英语翻译为西班牙语的会话域模型
它是定义这种翻译语言的模型。
您无法在没有模型的语言之间进行翻译。

在创建语言翻译器服务时,日语,德语和英语之间的模型的存在状态如下。 1

<表格>

翻译语言

模型


<身体>

日语?英语


德语?英语


日语?德语




没有在日语和德语之间直接翻译的模型。

不带模型的语言之间的翻译措施

我想知道是否应该制作模型 2但是,我想暂时使它工作而不花费时间和精力,所以
在这里,我们将以英语为中心,并将英语翻译成德语或日语。

<表格>

用户评论

中继翻译

机器人翻译


<身体>

英文

日语

英文

德语

日语

英文

日语

英文

德语

德语

英文

德语

英文

日语


Python编程

chatbot程序使用Python的slackbot库。
我指的是slackbot的介绍和用法。
使用Python的slackbot库

创建一个Slack机器人

如果您保持Python程序运行,该机器人将响应您在Slack上所说的内容。

文件结构

文件结构如下。

1
2
3
4
5
6
slackbot
├─ run.py
├─ slackbot_settings.py
└─ plugins              
   ├─ __init__.py  
   └─ translator.py

py文件的内容

描述每个py文件的内容。

run.py

通过执行此程序,可以启动bot程序。

运行

1
2
3
4
5
6
7
8
9
10
11
# coding: utf-8

from slackbot.bot import Bot

def main():
    bot = Bot()
    bot.run()

if __name__ == "__main__":
    print('start slackbot')
    main()

slackbot_settings.py

机器人设置程序。
对于API_TOKEN,指定在Slack上创建漫游器时编号的API令牌。

slackbot_settings.py

1
2
3
4
5
6
7
8
9
10
# coding: utf-8

# Slack-botのAPIトークンを指定
API_TOKEN = "{{ API_Token }}"

# このbot宛のメッセージで、どの応答にも当てはまらない場合の応答文字列
DEFAULT_REPLY = "ちょっと何言ってるかよくわかんないです"

# プラグインスクリプトを置いてあるサブディレクトリ名のリスト
PLUGINS = ['plugins']

__init __。py

一个空文件可以。

translator.py

这是解释器机器人程序内容(运动)的核心程序。
解释器机器人的移动如下。
听所有评论
一,言论的语言识别
然后翻译并发送

翻译器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# coding: utf-8

from slackbot.bot import listen_to      # チャネル内発言で反応するデコーダ
from watson_developer_cloud import LanguageTranslatorV2 as LanguageTranslator

language_translator = LanguageTranslator(
  username = '{{ username }}',
  password = '{{ password }}'
)

@listen_to(r'.+') # すべての発言をリッスンする。正規表現。
def listen_func(message):
    text = message.body['text']     # メッセージを取り出す
    language = language_translator.identify(text)  
    source = language['languages'][0]['language']   # 言語識別
    if source not in ['ja','de'] :
        source = 'en'
        target1 = 'ja'
        target2 = 'de'
        msg1 = language_translator.translate(
            text=text,
            source=source,
            target=target1)
        msg2 = language_translator.translate(
            text=text,
            source=source,
            target=target2)
    else :
        if source == 'ja':
            target1 = 'en'
            target2 = 'de'
        elif source == 'de':
            target1 = 'en'
            target2 = 'ja'
        msg1 = language_translator.translate(
            text=text,
            source=source,
            target=target1)
        msg2 = language_translator.translate(
            text=msg1,
            source=target1,
            target=target2)
    message.send(msg1)      # target1への翻訳結果をsend
    message.send(msg2)      # target2への翻訳結果をsend

省略了

参数含义的解释。请阅读API参考。
就这样。

尝试使用

以下是使用

机器人的三个步骤。

1.(松弛)确定使用解释器程序的通道,让我们使解释器程序兼职工作并属于该通道。

2.(本地PC)让我们启动python程序。

1
2
$ cd slackbot
$ python run.py

3.(松弛),让我们在解释器bot所属的Channel上讲话。

执行示例

在下面的示例中,将以3个角色(日语/英语/德语)发送每个人。
" Watson Translator-kun"是一个口译机器人。

image.png

我不确定德语翻译的意思是否正确。 ..但这有效!

结论

只需结合使用在Python中发布的库和服务(Watson,Slack)的组合,
我能够轻松地形成一个聊天机器人,根据输入内容说话。
这次我使用了一个解释器机器人,但是似乎我可以通过将其与其他Watson功能和其他AI服务结合起来,自己制作各种聊天机器人。

  • 您可以使用称为

    语言转换器的列表模型的API来检查模型信息。 Watson API参考-语言翻译器-列表模型?

  • 您可以使用称为Langage Translator的create model的API创建模型。 Watson API参考-语言转换器-创建模型?