mirror of
https://github.com/zhayujie/chatgpt-on-wechat.git
synced 2026-04-05 10:38:15 +08:00
formatting code
This commit is contained in:
@@ -24,7 +24,7 @@ see https://ai.baidu.com/unit/home#/home?track=61fe1b0d3407ce3face1d92cb5c291087
|
||||
``` json
|
||||
{
|
||||
"service_id": "s...", #"机器人ID"
|
||||
"api_key": "",
|
||||
"api_key": "",
|
||||
"secret_key": ""
|
||||
}
|
||||
```
|
||||
@@ -1 +1 @@
|
||||
from .bdunit import *
|
||||
from .bdunit import *
|
||||
|
||||
@@ -2,21 +2,29 @@
|
||||
import json
|
||||
import os
|
||||
import uuid
|
||||
from uuid import getnode as get_mac
|
||||
|
||||
import requests
|
||||
|
||||
import plugins
|
||||
from bridge.context import ContextType
|
||||
from bridge.reply import Reply, ReplyType
|
||||
from common.log import logger
|
||||
import plugins
|
||||
from plugins import *
|
||||
from uuid import getnode as get_mac
|
||||
|
||||
|
||||
"""利用百度UNIT实现智能对话
|
||||
如果命中意图,返回意图对应的回复,否则返回继续交付给下个插件处理
|
||||
"""
|
||||
|
||||
|
||||
@plugins.register(name="BDunit", desire_priority=0, hidden=True, desc="Baidu unit bot system", version="0.1", author="jackson")
|
||||
@plugins.register(
|
||||
name="BDunit",
|
||||
desire_priority=0,
|
||||
hidden=True,
|
||||
desc="Baidu unit bot system",
|
||||
version="0.1",
|
||||
author="jackson",
|
||||
)
|
||||
class BDunit(Plugin):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
@@ -40,11 +48,10 @@ class BDunit(Plugin):
|
||||
raise e
|
||||
|
||||
def on_handle_context(self, e_context: EventContext):
|
||||
|
||||
if e_context['context'].type != ContextType.TEXT:
|
||||
if e_context["context"].type != ContextType.TEXT:
|
||||
return
|
||||
|
||||
content = e_context['context'].content
|
||||
content = e_context["context"].content
|
||||
logger.debug("[BDunit] on_handle_context. content: %s" % content)
|
||||
parsed = self.getUnit2(content)
|
||||
intent = self.getIntent(parsed)
|
||||
@@ -53,7 +60,7 @@ class BDunit(Plugin):
|
||||
reply = Reply()
|
||||
reply.type = ReplyType.TEXT
|
||||
reply.content = self.getSay(parsed)
|
||||
e_context['reply'] = reply
|
||||
e_context["reply"] = reply
|
||||
e_context.action = EventAction.BREAK_PASS # 事件结束,并跳过处理context的默认逻辑
|
||||
else:
|
||||
e_context.action = EventAction.CONTINUE # 事件继续,交付给下个插件或默认逻辑
|
||||
@@ -70,17 +77,15 @@ class BDunit(Plugin):
|
||||
string: access_token
|
||||
"""
|
||||
url = "https://aip.baidubce.com/oauth/2.0/token?client_id={}&client_secret={}&grant_type=client_credentials".format(
|
||||
self.api_key, self.secret_key)
|
||||
self.api_key, self.secret_key
|
||||
)
|
||||
payload = ""
|
||||
headers = {
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json'
|
||||
}
|
||||
headers = {"Content-Type": "application/json", "Accept": "application/json"}
|
||||
|
||||
response = requests.request("POST", url, headers=headers, data=payload)
|
||||
|
||||
# print(response.text)
|
||||
return response.json()['access_token']
|
||||
return response.json()["access_token"]
|
||||
|
||||
def getUnit(self, query):
|
||||
"""
|
||||
@@ -90,11 +95,14 @@ class BDunit(Plugin):
|
||||
"""
|
||||
|
||||
url = (
|
||||
'https://aip.baidubce.com/rpc/2.0/unit/service/v3/chat?access_token='
|
||||
"https://aip.baidubce.com/rpc/2.0/unit/service/v3/chat?access_token="
|
||||
+ self.access_token
|
||||
)
|
||||
request = {"query": query, "user_id": str(
|
||||
get_mac())[:32], "terminal_id": "88888"}
|
||||
request = {
|
||||
"query": query,
|
||||
"user_id": str(get_mac())[:32],
|
||||
"terminal_id": "88888",
|
||||
}
|
||||
body = {
|
||||
"log_id": str(uuid.uuid1()),
|
||||
"version": "3.0",
|
||||
@@ -142,11 +150,7 @@ class BDunit(Plugin):
|
||||
:param parsed: UNIT 解析结果
|
||||
:returns: 意图数组
|
||||
"""
|
||||
if (
|
||||
parsed
|
||||
and "result" in parsed
|
||||
and "response_list" in parsed["result"]
|
||||
):
|
||||
if parsed and "result" in parsed and "response_list" in parsed["result"]:
|
||||
try:
|
||||
return parsed["result"]["response_list"][0]["schema"]["intent"]
|
||||
except Exception as e:
|
||||
@@ -163,11 +167,7 @@ class BDunit(Plugin):
|
||||
:param intent: 意图的名称
|
||||
:returns: True: 包含; False: 不包含
|
||||
"""
|
||||
if (
|
||||
parsed
|
||||
and "result" in parsed
|
||||
and "response_list" in parsed["result"]
|
||||
):
|
||||
if parsed and "result" in parsed and "response_list" in parsed["result"]:
|
||||
response_list = parsed["result"]["response_list"]
|
||||
for response in response_list:
|
||||
if (
|
||||
@@ -189,11 +189,7 @@ class BDunit(Plugin):
|
||||
:returns: 词槽列表。你可以通过 name 属性筛选词槽,
|
||||
再通过 normalized_word 属性取出相应的值
|
||||
"""
|
||||
if (
|
||||
parsed
|
||||
and "result" in parsed
|
||||
and "response_list" in parsed["result"]
|
||||
):
|
||||
if parsed and "result" in parsed and "response_list" in parsed["result"]:
|
||||
response_list = parsed["result"]["response_list"]
|
||||
if intent == "":
|
||||
try:
|
||||
@@ -236,11 +232,7 @@ class BDunit(Plugin):
|
||||
:param parsed: UNIT 解析结果
|
||||
:returns: UNIT 的回复文本
|
||||
"""
|
||||
if (
|
||||
parsed
|
||||
and "result" in parsed
|
||||
and "response_list" in parsed["result"]
|
||||
):
|
||||
if parsed and "result" in parsed and "response_list" in parsed["result"]:
|
||||
response_list = parsed["result"]["response_list"]
|
||||
answer = {}
|
||||
for response in response_list:
|
||||
@@ -266,11 +258,7 @@ class BDunit(Plugin):
|
||||
:param intent: 意图的名称
|
||||
:returns: UNIT 的回复文本
|
||||
"""
|
||||
if (
|
||||
parsed
|
||||
and "result" in parsed
|
||||
and "response_list" in parsed["result"]
|
||||
):
|
||||
if parsed and "result" in parsed and "response_list" in parsed["result"]:
|
||||
response_list = parsed["result"]["response_list"]
|
||||
if intent == "":
|
||||
try:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"service_id": "s...",
|
||||
"api_key": "",
|
||||
"secret_key": ""
|
||||
}
|
||||
"service_id": "s...",
|
||||
"api_key": "",
|
||||
"secret_key": ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user