leeeduke / revTongYi

阿里云 通义千问、通义万相 逆向工程 Python API
GNU Affero General Public License v3.0
58 stars 9 forks source link

小修改,封装响应 #9

Closed old-dream321 closed 5 months ago

old-dream321 commented 5 months ago

1.在ask中加入sessionId参数,便于更好的连续对话

(主要是我一直是这么用的)

chatbot = qianwen.Chatbot(
    cookies_str=""
)
chatbot.sessionId = "<sessionId>"

如果不传入,则会使用对象中的sessionId

2.封装响应(这样以后再怎么改都不用重新适配了)

{
    "contentType": "text",
    "contents": ["你好"], 
    "msgStatus": "finished", 
    "msgId": "<msgId>", 
    "parentMsgId": "<parentMsgId>", 
    "sessionId": "<sessionId>"
}

本人高中生,一周也只有一天假期,确实有些地方没有考虑周全,望谅解()

leeeduke commented 5 months ago

感谢贡献,提醒一下,你机器上的 git 配置中的 user.email 可能和你 github 账户的 email 不同,导致仓库没法认定你为 contributor,建议你检查一下。

leeeduke commented 5 months ago

基本没问题,但我更倾向把响应包装在一个类里面,一步到位。

定义一个 Response 类,里面包装了 sessionId messageId content 等信息供使用者获取,也更加清晰。

old-dream321 commented 5 months ago

基本没问题,但我更倾向把响应包装在一个类里面,一步到位。

定义一个 Response 类,里面包装了 sessionId messageId content 等信息供使用者获取,也更加清晰。

只有消息的响应做还是所有的,只有消息的响应做的话不够统一,所有都做感觉没必要

leeeduke commented 5 months ago

只做ask的响应吧,其他的接口一般没改动。wanxiang 的也不用管先。

old-dream321 commented 5 months ago

做好了,现在用了一个基于dict类的子类来实现,所有的"resp.key"都等同于"resp[key]",所以现在有两种获取值的方式,对于所有响应都适用

old-dream321 commented 5 months ago

做好了,现在用了一个基于dict类的子类来实现,所有的"resp.key"都等同于"resp[key]",所以现在有两种获取值的方式,对于所有响应都适用

感觉你的意思应该是输入"."之后会有提示吧,好像不太一样,只能新开一个文件专门写响应模板了

old-dream321 commented 5 months ago

实现了你说的所有东西,目前添加了一个新文件用于响应模版,所有响应都已打包为对象,目前对象仍然拥有两种访问方式,“.”与“[]"

leeeduke commented 5 months ago

感谢贡献!

leeeduke commented 5 months ago

把你加到了 collaborator,邮件通过一下。以后除了 API(面向用户的)之外的更改(如适配新协议)你直接提交就行了,不需要再提pr(不过不确定的东西可以提pr我看看)。