mirror of
https://github.com/zhayujie/bot-on-anything.git
synced 2026-01-19 01:21:06 +08:00
解决LinkAI bot不能在slack回复和生图的问题
解决了LinkAI bot不能在slack回复和生图的问题
This commit is contained in:
@@ -35,26 +35,29 @@ class LinkAIBot(Model):
|
||||
return '记忆已清除'
|
||||
new_query = Session.build_session_query(query, from_user_id)
|
||||
context['session'] = new_query # 将 new_query 添加到 context 字典中 session
|
||||
log.debug("[lINKAI] session query={}".format(new_query))
|
||||
log.debug("[LINKAI] session query={}".format(new_query))
|
||||
|
||||
# if context.get('stream'):
|
||||
# # reply in stream
|
||||
# return self.reply_text_stream(query, context)
|
||||
|
||||
reply_content = self._chat(query, context)
|
||||
log.debug("[lINKAI] new_query={}, user={}, reply_cont={}".format(new_query, from_user_id, reply_content))
|
||||
log.debug("[LINKAI] new_query={}, user={}, reply_cont={}".format(new_query, from_user_id, reply_content))
|
||||
return reply_content
|
||||
|
||||
elif context.get('type', None) == 'IMAGE_CREATE':
|
||||
ok, res = self.create_img(query, 0)
|
||||
if ok:
|
||||
return [res]
|
||||
#return [res]
|
||||
reply_content = res
|
||||
else:
|
||||
return res
|
||||
#return res
|
||||
reply_content = "failed to create images"
|
||||
# return reply
|
||||
# else:
|
||||
# # reply = Reply(ReplyType.ERROR, "Bot不支持处理{}类型的消息".format(context.type))
|
||||
# return reply
|
||||
return reply_content
|
||||
|
||||
def _chat(self, query, context, retry_count=0):
|
||||
"""
|
||||
@@ -95,7 +98,7 @@ class LinkAIBot(Model):
|
||||
headers = {"Authorization": "Bearer " + linkai_api_key}
|
||||
|
||||
# do http request
|
||||
base_url = model_conf(const.LINKAI).get("api_base", "https://api.link-ai.chat")
|
||||
base_url = model_conf(const.LINKAI).get("api_base", "https://api.link-ai.tech")
|
||||
res = requests.post(url=base_url + "/v1/chat/completions", json=body, headers=headers,
|
||||
timeout=180)
|
||||
if res.status_code == 200:
|
||||
@@ -118,11 +121,15 @@ class LinkAIBot(Model):
|
||||
reply_content += knowledge_suffix
|
||||
# image process
|
||||
if response["choices"][0].get("img_urls"):
|
||||
thread = threading.Thread(target=self._send_image, args=(context['channel'], context, response["choices"][0].get("img_urls")))
|
||||
thread.start()
|
||||
if response["choices"][0].get("text_content"):
|
||||
reply_content = response["choices"][0].get("text_content")
|
||||
reply_content = self._process_url(reply_content)
|
||||
reply_content = response["choices"][0].get("text_content", "") + " " + " ".join(response["choices"][0].get("img_urls"))
|
||||
else:
|
||||
reply_content = response["choices"][0]["message"]["content"]
|
||||
|
||||
# thread = threading.Thread(target=self._send_image, args=(context['channel'], context, response["choices"][0].get("img_urls")))
|
||||
# thread.start()
|
||||
# if response["choices"][0].get("text_content"):
|
||||
# reply_content = response["choices"][0].get("text_content")
|
||||
#reply_content = self._process_url(reply_content)
|
||||
return reply_content
|
||||
|
||||
else:
|
||||
@@ -244,7 +251,7 @@ class LinkAIBot(Model):
|
||||
headers = {"Authorization": "Bearer " + linkai_api_key}
|
||||
|
||||
# do http request
|
||||
base_url = model_conf(const.LINKAI).get("api_base", "https://api.link-ai.chat")
|
||||
base_url = model_conf(const.LINKAI).get("api_base", "https://api.link-ai.tech")
|
||||
res = requests.post(url=base_url + "/v1/chat/completions", json=body, headers=headers, stream=True,
|
||||
timeout=180)
|
||||
if res.status_code == 200:
|
||||
@@ -439,7 +446,7 @@ class Session(object):
|
||||
'''
|
||||
session = user_session.get(user_id, [])
|
||||
if len(session) == 0:
|
||||
system_prompt = model_conf(const.OPEN_AI).get("character_desc", "")
|
||||
system_prompt = model_conf(const.LINKAI).get("character_desc", "")
|
||||
system_item = {'role': 'system', 'content': system_prompt}
|
||||
session.append(system_item)
|
||||
user_session[user_id] = session
|
||||
@@ -449,8 +456,8 @@ class Session(object):
|
||||
|
||||
@staticmethod
|
||||
def save_session(query, answer, user_id, used_tokens=0):
|
||||
max_tokens = model_conf(const.OPEN_AI).get('conversation_max_tokens')
|
||||
max_history_num = model_conf(const.OPEN_AI).get('max_history_num', None)
|
||||
max_tokens = model_conf(const.LINKAI).get('conversation_max_tokens')
|
||||
max_history_num = model_conf(const.LINKAI).get('max_history_num', None)
|
||||
if not max_tokens or max_tokens > 4000:
|
||||
# default value
|
||||
max_tokens = 1000
|
||||
|
||||
Reference in New Issue
Block a user