青云客提供了一个免费的聊天API,我就想,如果让这个API自己和自己聊天,会是什么样子呢,哈哈,完整代码在文章结尾,先说说思路
第1个思路:原路返回
假设2个机器A和B聊天,首先A抛出一个话题,
A:“你好”
我们把“你好”发给API,API会回复一个answer,
然后B回复answer,那么A再把answer传给API,会再得到一个answer,以此循环,
我测试了一下,这种得到的效果不好,毕竟这个接口比较笨,容易陷入死循环,
效果如下
可以看到像鹦鹉学舌一样的聊天,注定是不会长久的。。。
代码如下
import requests,json
def ask(content):
try:
re=requests.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg="+str(content),timeout=5).json()
return re["content"]
except :
return "异常"
first_question = "你觉得特朗普怎么样"
for i in range(1,10):
answer=ask(first_question)
print("A说:",first_question)
print("B说:",answer)
#answer2=ask(answer)
first_question=answer
所以测试第二个思路
第2个思路:调用2个api,实现3人聊群口相声,,
A抛出问题,第一个API回复一个 answer,然后把这个answer发给第二个API,得到一个answer,把这个answer去回复A,以此聊下去,
效果如下图,
代码如下
import requests,json
def ask(content):
try:
re=requests.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg="+str(content),timeout=5).json()
return re["content"]
except :
return "异常"
first_question = "你觉得特朗普怎么样"
for i in range(1,10):
answer=ask(first_question)
print("A说:",first_question)
print("B说:",answer)
answer2=ask(answer)
first_question=answer2
这个的好处是不会无限循环了,但是好像回答的答案有点偏题呢。。
2个案例中,都是用的10次循环,,改成100,A和B就会聊100句了,,我随便测试了下,大家感觉一下,,,,,,
PS:
①代码中的 first_question = "你是哪里人呀" ,就是抛出的第一个话题,这个话题可以随便改,就会有不同的聊天对话了。
②当然这种API肯定不算AI了,只是简单测试下,
③上次有网友说re.json,学习了,方便很多
④青云客API,百度一搜就有,使用很简单,直接request.get就可以了