v服务器转发处理,nginx可能后续要再调整配置,使用一个 toai.py 来处理转发请求,细节待Fix

This commit is contained in:
ivan deng
2023-04-18 05:14:11 +08:00
parent 437da3d5b3
commit 845358621f
3 changed files with 59 additions and 43 deletions

View File

@@ -17,12 +17,12 @@
<p>Please ask me any question.</p>]]></field> <p>Please ask me any question.</p>]]></field>
</record> </record>
<record model="mail.channel.member" id="channel_member_chatgtp_channel_for_admin"> <!-- <record model="mail.channel.member" id="channel_member_chatgtp_channel_for_admin">-->
<field name="partner_id" ref="base.partner_admin"/> <!-- <field name="partner_id" ref="base.partner_admin"/>-->
<field name="channel_id" ref="app_chatgpt.channel_chatgpt"/> <!-- <field name="channel_id" ref="app_chatgpt.channel_chatgpt"/>-->
<field name="fetched_message_id" ref="app_chatgpt.module_install_notification"/> <!-- <field name="fetched_message_id" ref="app_chatgpt.module_install_notification"/>-->
<field name="seen_message_id" ref="app_chatgpt.module_install_notification"/> <!-- <field name="seen_message_id" ref="app_chatgpt.module_install_notification"/>-->
</record> <!-- </record>-->
<record model="mail.channel" id="app_chatgpt.channel_chatgpt"> <record model="mail.channel" id="app_chatgpt.channel_chatgpt">
<field name="group_ids" eval="[Command.link(ref('base.group_user'))]"/> <field name="group_ids" eval="[Command.link(ref('base.group_user'))]"/>

View File

@@ -229,12 +229,12 @@ GPT-3 A set of models that can understand and generate natural language
o_url = self.endpoint or "https://api.openai.com/v1/chat/completions" o_url = self.endpoint or "https://api.openai.com/v1/chat/completions"
# 处理传参,传过来的优先于 robot 默认的 # 处理传参,传过来的优先于 robot 默认的
max_tokens = param.get('max_tokens') or self.max_tokens or 600, max_tokens = param.get('max_tokens') if param.get('max_tokens') else self.max_tokens
temperature = param.get('temperature') or self.temperature or 0.8, temperature = param.get('temperature') if param.get('temperature') else self.temperature
top_p = param.get('top_p') or self.top_p or 0.6, top_p = param.get('top_p') if param.get('top_p') else self.top_p
frequency_penalty = param.get('frequency_penalty') or self.frequency_penalty or 0.5, frequency_penalty = param.get('frequency_penalty') if param.get('frequency_penalty') else self.frequency_penalty
presence_penalty = param.get('presence_penalty') or self.presence_penalty or 0.5, presence_penalty = param.get('presence_penalty') if param.get('presence_penalty') else self.presence_penalty
# request_timeout = param.get('request_timeout') or self.ai_timeout or 120, request_timeout = param.get('request_timeout') if param.get('request_timeout') else self.ai_timeout
if self.stop: if self.stop:
stop = self.stop.split(',') stop = self.stop.split(',')
@@ -254,21 +254,40 @@ GPT-3 A set of models that can understand and generate natural language
sys_content = self.get_ai_system(param.get('sys_content')) sys_content = self.get_ai_system(param.get('sys_content'))
if sys_content: if sys_content:
messages.insert(0, sys_content) messages.insert(0, sys_content)
# 暂时不变 # todo: 当前反向代理方式不通,要调整为 远程主机中接受请求post到openai再将结果返回给请求者
response = openai.ChatCompletion.create( # response = openai.ChatCompletion.create(
model=self.ai_model, # model=self.ai_model,
messages=messages, # messages=messages,
n=1, # # 返回的回答数量
temperature=self.temperature or 0.8, # n=1,
max_tokens=self.max_tokens or 600, # max_tokens=max_tokens,
top_p=self.top_p or 0.6, # temperature=temperature,
frequency_penalty=self.frequency_penalty or 0.5, # top_p=top_p,
presence_penalty=self.presence_penalty or 0.5, # frequency_penalty=frequency_penalty,
stop=stop, # presence_penalty=presence_penalty,
request_timeout=self.ai_timeout or 120, # stop=stop,
) # request_timeout=request_timeout,
if 'choices' in response: # )
return response # if 'choices' in response:
# return response
# todo: 两种方式一样,要调整 v 服务器的二次处理 /root/toai.py
pdata = {
"model": self.ai_model,
"messages": messages,
"max_tokens": max_tokens,
"temperature": temperature,
"top_p": top_p,
"frequency_penalty": frequency_penalty,
"presence_penalty": presence_penalty,
"stop": stop
}
response = requests.post(o_url, data=json.dumps(pdata), headers=headers, timeout=R_TIMEOUT)
try:
res = response.json()
if 'choices' in res:
return res
except Exception as e:
_logger.warning("Get Response Json failed: %s", e)
else: else:
_logger.warning('=====================Openai output data: %s' % response) _logger.warning('=====================Openai output data: %s' % response)
elif self.ai_model == 'dall-e2': elif self.ai_model == 'dall-e2':
@@ -320,13 +339,13 @@ GPT-3 A set of models that can understand and generate natural language
else: else:
messages = [{"role": "user", "content": data}] messages = [{"role": "user", "content": data}]
# todo: 处理传参,传过来的优先于 robot 默认的当前有问题无法做tuple转换 # 处理传参,传过来的优先于 robot 默认的
max_tokens = param.get('max_tokens') or self.max_tokens or 600, max_tokens = param.get('max_tokens') if param.get('max_tokens') else self.max_tokens
temperature = param.get('temperature') or self.temperature or 0.8, temperature = param.get('temperature') if param.get('temperature') else self.temperature
top_p = param.get('top_p') or self.top_p or 0.6, top_p = param.get('top_p') if param.get('top_p') else self.top_p
frequency_penalty = param.get('frequency_penalty') or self.frequency_penalty or 0.5, frequency_penalty = param.get('frequency_penalty') if param.get('frequency_penalty') else self.frequency_penalty
presence_penalty = param.get('presence_penalty') or self.presence_penalty or 0.5, presence_penalty = param.get('presence_penalty') if param.get('presence_penalty') else self.presence_penalty
# request_timeout = param.get('request_timeout') or self.ai_timeout or 120, request_timeout= param.get('request_timeout') if param.get('request_timeout') else self.ai_timeout
# Ai角色设定如果没设定则再处理 # Ai角色设定如果没设定则再处理
if messages[0].get('role') != 'system': if messages[0].get('role') != 'system':
@@ -339,13 +358,13 @@ GPT-3 A set of models that can understand and generate natural language
messages=messages, messages=messages,
# 返回的回答数量 # 返回的回答数量
n=1, n=1,
temperature=self.temperature or 0.8, max_tokens=max_tokens,
max_tokens=self.max_tokens or 600, temperature=temperature,
top_p=self.top_p or 0.6, top_p=top_p,
frequency_penalty=self.frequency_penalty or 0.5, frequency_penalty=frequency_penalty,
presence_penalty=self.presence_penalty or 0.5, presence_penalty=presence_penalty,
stop=stop, stop=stop,
request_timeout=self.ai_timeout or 120, request_timeout=request_timeout,
) )
if 'choices' in response: if 'choices' in response:
return response return response

View File

@@ -6060,7 +6060,6 @@ cctv
抽插27岁处女meimei淫叫不断 抽插27岁处女meimei淫叫不断
中天萬方 中天萬方
代理
亮穴 亮穴
机战 机战
成人 激情 淫 另类 成人 激情 淫 另类
@@ -9911,7 +9910,6 @@ Tokyo Hot n0188 田中爱
毛卖逼 毛卖逼
插 操 干 骚穴 嫩穴 小穴 密穴 淫水流 插 操 干 骚穴 嫩穴 小穴 密穴 淫水流
兔meimei色色贴图区 兔meimei色色贴图区
毛夜情 毛夜情
宁王府成人论坛导航 宁王府成人论坛导航
岩崎 Sky Angel Vol。27 岩崎 Sky Angel Vol。27
@@ -14359,7 +14357,6 @@ secretchina
江泽民靠 江泽民靠
錢 其 琛 錢 其 琛
和妹妹做爱 和妹妹做爱
服务器
性交做爱 性交做爱
毛李鹏 毛李鹏
狗卵子 狗卵子