给天猫精灵赋予chatgpt

前言

自从chatgpt火了之后,一直想把智障的天猫精灵对接个chatgpt,奈何天猫精灵不提供接口,终于在github上找到大佬做的小爱同学对接chatgpt的教程,于是根据他的原理,也搞出了个简陋的版本

成功展示

 开发中遇到的问题

1.获取天猫精灵的对话记录,卡了我好几天,采取的frida远程调用,参数都对,就检验不通过,原来是转义字符的问题,还有没注意到变量重复赋值。

2.天猫的接口文档自我感觉也是一套糊涂,写的很粗糙。可能我能力不够吧。

3.chatgpt用的都是镜像站,一不注意,免费的就收费了,引流太严重啊。

部分代码展示

# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import asyncio
import sysfrom alibabacloud_aligenieiap_1_0.client import Client as AliGenieiap_1_0Client
from alibabacloud_aligenieiap_1_0.models import PushNotificationsRequestNotificationUnicastRequest, \PushNotificationsRequestTenantInfo, PushNotificationsRequestNotificationUnicastRequestSendTarget
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_aligenieiap_1_0 import models as ali_genieiap__1__0_models
import requests
import json
from urllib import parse
import frida
import time
import datetimelast_timestamp = int(time.time())class Aligenie:@staticmethoddef create_client(access_key_id: str,access_key_secret: str,) -> AliGenieiap_1_0Client:"""使用AK&SK初始化账号Client@param access_key_id:@param access_key_secret:@return: Client@throws Exception"""config = open_api_models.Config(# 您的AccessKey ID,access_key_id=access_key_id,# 您的AccessKey Secret,access_key_secret=access_key_secret)# 访问的域名config.endpoint = 'openapi.aligenie.com'return AliGenieiap_1_0Client(config)@staticmethoddef push_message(content):client = Aligenie.create_client('access_key_id', 'access_key_secret')notificationUnicastRequest = PushNotificationsRequestNotificationUnicastRequest()notificationUnicastRequest.encode_key = "98223"notificationUnicastRequest.encode_type = "SKILL_ID"notificationUnicastRequest.organization_id = "1398082853812549793"place_holder = {'content': content}notificationUnicastRequest.place_holder = place_holdernotificationUnicastRequest.message_template_id = "2DPRcMi97Qiwofsj"notificationUnicastRequest.is_debug = TruerequestSendTarget = PushNotificationsRequestNotificationUnicastRequestSendTarget()requestSendTarget.target_type = 'DEVICE_OPEN_ID'requestSendTarget.target_identity = 'JqyRCF91nuWRCTdk5dbOKVjRWMRBzL2jjI+xkIG3U2gLVoH5nvRw9w=='notificationUnicastRequest.send_target = requestSendTargetrequestTenantInfo = PushNotificationsRequestTenantInfo()push_notifications_request = ali_genieiap__1__0_models.PushNotificationsRequest(notificationUnicastRequest,requestTenantInfo)try:response = client.push_notifications(push_notifications_request)print(response)except Exception as err:print(err)class Chat:@staticmethoddef one(content):#换成自己的chatgpt或者自己找免费的接口pass@staticmethoddef two(content):#换成自己的chatgpt或者自己找免费的接口passclass AliGenieFrida:def __init__(self):self.last_timestamp = int(time.time())def get_frida_rpc_script(self):js = open('tmjl.js', 'r', encoding='utf-8').read()session = frida.get_usb_device().attach("com.alibaba.ailabs.tg")script = session.create_script(js)script.load()return scriptdef get_data(self):for _ in range(2):try:#换成抓包的datadata = '{"limit":"10","uuid":"uuid","deviceInfo":"{' \'\\"bizGroup\\":\\"X1\\",' \'\\"bizType\\":\\"AILABS\\",\\"botId\\":10,' \'\\"uuid\\":\\"uuid\\"}",' \'"authInfo":"{\\"accessToken\\":\\"2zyAfPN+bJdMzh5dUtiWqDtLLL/KnlYJCjsMujjz' \'+xYeTwqhbS2JvHGWAg7K' \'+nTyip' \'/vBXf83wZXe+wBdmHUWqs8OhxFYToW\\",\\"deviceIds\\":[],\\"isAuthenticated\\":false,' \'\\"isNew\\":true,' \'\\"isTempUser\\":false,\\"userId\\":\\"userId\\",' \'\\"utdId\\":\\"ZGOM/fF/pVkDADEloBB6B5tx\\"}"}'api = 'mtop.alibaba.aicloud.index.listsentences'appKey = '23904773'timestamp = str(int(time.time()))res = json.loads(self.get_frida_rpc_script().exports.callgetsign(data, timestamp, api, appKey))res['timestamp'] = timestampres['x-sgext'] = parse.quote(res['x-sgext'])res['x-mini-wua'] = parse.quote(res['x-mini-wua'])res['x-sign'] = parse.quote(res['x-sign'])res['x-t'] = parse.quote(res['timestamp'])requests.get("http://43.142.90.87:8610/rs?key=sign&vaule=" + json.dumps(res) + "&time_out=100")# print("调用frida获取", res)headers = {'x-sid': 'sid','x-uid': 'uid','x-nettype': 'WIFI','x-pv': '6.3','x-nq': 'WIFI','x-features': '27','x-app-conf-v': '0','content-type': 'application/x-www-form-urlencoded;charset=UTF-8','cache-control': 'no-cache','x-t': '1684334633','x-bx-version': '6.5.24','f-refer': 'mtop','x-extdata': 'openappkey%3DDEFAULT_AUTH','x-ttid': '702008%40genieapp_android_6.0.1','x-app-ver': '6.0.1','x-c-traceid': 'ZGOM%2FfF%2FpVkDADEloBB6B5tx1684334633416073015885','x-umt': 'GI8Bdk5LPPgZIwKIJIE1O6HP%2F11f01e2','x-utdid': 'ZGOM%2FfF%2FpVkDADEloBB6B5tx','x-appkey': '23904773','x-devid': 'Amqv8wxkiFMLQwGHcw6DOrRUeg7B3s693f8iah0kXC6E','user-agent': 'MTOPSDK%2F3.1.1.7+%28Android%3B8.1.0%3BGoogle%3BPixel%29','Host': 'acs.m.taobao.com',}headers['x-sgext'] = res['x-sgext']headers['x-mini-wua'] = res['x-mini-wua']headers['x-sign'] = res['x-sign']headers['x-t'] = res['timestamp']params = {'data': data,}response = requests.get('https://acs.m.taobao.com/gw/mtop.alibaba.aicloud.index.listsentences/1.0/',params=params,headers=headers,).json()# print(response)for _ in response['data']['model']:if _['query'] != '' and _['cateName'] == '百科':return _return response['data']['model'][0]except Exception as e:print(e)async def print_every_two_seconds():while True:aliGenieFrida = AliGenieFrida()qa = aliGenieFrida.get_data()query = qa['query']reply = qa['reply']queryTime = qa['queryTime']last = int(time.mktime(datetime.datetime.strptime(queryTime, '%Y-%m-%d %H:%M:%S.%f').timetuple()))global last_timestampprint(last_timestamp, query, last)if query != '' and last > last_timestamp:last_timestamp = lastcontent = Chat.two(query)print(f"问题:{query},天猫精灵的回答:{reply},chat的回答:{content}")Aligenie.push_message(content)await asyncio.sleep(2)async def main():task = asyncio.create_task(print_every_two_seconds())await taskif __name__ == '__main__':asyncio.run(main())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

别只关注chatGPT能不能写论文了,它还支持49中场景,代码都给你写好了,速领

简介 chatGPT最近非常不稳定,访问一不小心就出现了网络错误,根本就不能很好的使用。那么我们该怎么办呢?勇哥给大家想到了一个种办法,就是用程序去调用openapi的接口,这个接口虽然是收费的,但是可免费使用…

第08课:Prompt Engineering——提问ChatGPT的艺术

通过前面的学习,我们知道用户可以通过提示(Prompt)来指导ChatGPT生成特定主题的文章、提供特定领域的建议、回答特定类型的问题等。 而提示工程(Prompt Engineering,也称为In-Context Prompting)指在不更新模型参数的前提下、通过输入文本等方法来操控大型语言模型(Large …

(文末送18本ChatGPT扫盲书)从一路高歌到遭多国“封杀”,ChatGPT未来将是什么样子?

文末一口气赠书18本, 这次就让你high个够。 人工智能技术的发展已经逐渐改变了我们的生活和工作方式,其中,语言模型技术是近年来关注度很高的一个领域。在这个领域,ChatGPT是一个备受瞩目的产品,它不仅是一个聊天程序…

实测 ChatGPT 编程效果被其发现,这波我先站队 Stack Overflow

本文对 ChatGPT 解答编程问题的情况进行了测试。测试了不同难度的问题,并对 ChatGPT 的回答结果进行了鉴别。测试结果表明,ChatGPT 在解答简单的编程问题时表现较为出色,但在解决复杂的问题时则不太理想。因此,也总结出了如何更好…

ChatGPT秒杀了所有408考研编程题……

编辑 | FightingCV 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 本文均由ChatGPT生成 那么,ChatGPT可以解决408中的编程题吗? 直接结论:由ChatGPT给出的408代码90%可以拿满分 2023年408的编程题 …

35个Chatgpt万能对话公式

35个Chatgpt万能对话公式 1、假设你是一个xx角色,如何回答以下问题。 2、在遵守以下x条规则的前提下回答这个问题。 3、请参考以下例子: 并将其扩展到多少字,保持类似的风格。 4、你作为一个X领域的专家,请完成以下任务: 5、请尽可能具体…

超详细!python小白用langchain+chatgpt搭建自己业务聊天机器人

背景 随着chatgpt的爆火,各种开源大模型以及聊天机器人开始涌现。最近公司也想训练一个具有公司业务特色的聊天机器人,类似一个客服的角色。本人是一个java开发,对python也不是很懂,顺便把这几天的摸索的心得记录下来&#xff0c…

ChatGPT Plus初体验,以及插件是如何工作的?

大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 在前面的文章《ChatGPT APP Plus升级全记录:购买礼品卡、兑换和处理失败》中,我们介绍下ChatGPT App的下载和充值教程。现在我们完成整个P…

Chat GPT应用

目录 什么是Chat GPT?应用场景客服对话:故事创作:编程:写诗、歌: 什么是Chat GPT? 它自己的回答 Chat GPT是由OpenAI开发的大型语言模型,它使用了一种被称为“生成式预训练转换”(G…

5款写作神器,帮助你写出5w+爆款文案,好用到哭

我不允许还有文案小白、新手博主不知道这5款写作利器! 每次一写文案就头秃的新媒体工作者,赶紧看过来吧!这5款好用到爆的写作神器,喝一杯咖啡的时间就能完成写作。 我和同事都是用它们,出了很多的爆款,现…

跟ChatGPT同源插件,专为测试人的开放,快来看看吧

3 月 23 日,OpenAI 又投出了一枚重磅炸弹:为 ChatGPT 推出插件系统! 此举意味着 ChatGPT 将迎来“APP Store”时刻,也就是围绕它的能力,形成一个开发者生态,打造出基于 AI 的“操作系统”! 插…

【ChatGPT】Chat GPT 4 将如何改变世界?

Chat GPT 4 将如何改变世界? Chat GPT 4 是一个大型多模态模型,可以接受图像和文本输入并产生文本输出。该模型在各种专业和学术基准上表现出人类水平的表现,并且由于其更广泛的一般知识和先进的推理能力,能够更准确地解决难题。 Chat GPT 4 最显着的特性之一是,它能够处理…

如何利用 ChatGPT 提升日常编码效率?

大家好,我是若川。我持续组织了近一年的源码共读活动,感兴趣的可以 点此扫码加我微信 lxchuan12 参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试…

微信截图无法发送,也发不出电脑上的图片

微信截图无法发送,也发不出电脑上的图片 现象 今天微信突然出现这个问题,怎么改设置都调不好,卸载重装都不行,最后发现,微信的消息目录中,一些文件无法删除,提示“文件或目录损坏且无法读取”…

【闲聊】我用ChatGPT参加了大数据面试

用Chat GPT试了试面试题,回答得比较简单。 问:你可以以应聘者的身份参加一场大数据程序员面试吗 答:可以 ,如果您符合面试要求,可以参加大数据程序员面试。 问:那么为什么你要投递大数据开发这个岗位 答&am…

ChatGPT的基本变现思路

本教程收集于:AIGC从入门到精通教程 ChatGPT的基本变现思路 一、变现-赚钱思路 一、变现-赚钱思路 对于新事物的出现,很多人对此都是抱着一个看热闹的态度,大家对于这个东西的整体认知水平是很低的!

ChatGPT - 提示词

文章目录 PromptBasechatgpt 提示词开源项目 awesome-chatgpt-prompts PromptBase Prompt 提示词网站 - PromptBase https://promptbase.com/ 支持的提示词有 chatgpt 提示词 https://promptbase.com/chatgpt 开源项目 awesome-chatgpt-prompts 官网: https://p…

如何利用开源项目,打造可商用的Chatgpt站点.

一套可以 ChatGPT 系统,支持 Docker 部署,开箱即用的控制台,完美适配 PC 端与移动端,可自定义付费套餐,增加一键导出对话,任务拉新获客等功能。 简单配置几步即可完成搭建,满足市场产品的功能需…

What Is ChatGPT Doing … and Why Does It Work?

ChatGPT 在做什么……以及它为什么起作用? 目录 ChatGPT 在做什么……以及它为什么起作用?

ChatGPT版Bing被调戏到生气发飙,ChatGPT被证实具有人类心智

点击上方“AI遇见机器学习”,选择“星标”公众号 重磅干货,第一时间送 文|金磊 发自 凹非寺源|量子位 谁能想到,ChatGPT版必应竟能像人一样发脾气! 事情是这样的。 前两天一个华人小哥不是“黑”了ChatGPT版…