试用FastAPI

#!/usr/bin/python3
#coding=utf-8
import json
import requests
from fastapi import FastAPI
from pydantic import BaseModel
from chat_util import *
app = FastAPI()

@app.get("/")
async def read_root():
    answer="泰凡科技"
    return {"Hello": answer}
    

@app.get("/chatbot/")
async def empty_input(q: str = None):
    answer="试着在/chatbot/后传入闲聊问题吧?"
    if q:
        answer=get_content(q)
        if answer=='':
            for i in range(2):
                time.sleep(2)
                answer=get_content(sentence)
                if answer!='' and answer!="emmmm,我不是很懂你的意思":
                    break
                else:
                    answer="emmmm,我不是很懂你的意思"
    #ans=IE_client_test.other_test()
    return {"Answer":answer, "Example":"http://121.89.167.5:5997/chatbot/?q=你好"}


@app.get("/daily/")
async def get_iciba():
    url = 'http://open.iciba.com/dsapi/'
    r = requests.get(url)
    return {"每日一句":r.text}
  • chatbot功能使用了腾讯AI平台的智能闲聊功能,chat_util相关接口功能如下
import hashlib
import time
import requests
import random
import string
from urllib.parse import quote

def curlmd5(src):
    m = hashlib.md5(src.encode('UTF-8'))
    return m.hexdigest().upper()

def get_params(plus_item):                    #用于返回request需要的data内容
    global params
    t = time.time()                                             #请求时间戳(秒级),(保证签名5分钟有效)
    time_stamp=str(int(t))
    nonce_str = ''.join(random.sample(string.ascii_letters + string.digits, 10))            # 请求随机字符串,用于保证签名不可预测
    app_id='114514'                              # 修改成自己的id
    app_key='xxxxxxxxxx'             # 修改成自己的key
    params = {'app_id':app_id,
              'question':plus_item,
              'time_stamp':time_stamp,
              'nonce_str':nonce_str,
              'session':'10000'
             }
    sign_before = ''
    for key in sorted(params):                      #要对key排序再拼接
        sign_before += '{}={}&'.format(key,quote(params[key], safe=''))    # 拼接过程需要使用quote函数形成URL编码
    sign_before += 'app_key={}'.format(app_key)                                           # 将app_key拼接到sign_before后
    sign = curlmd5(sign_before)
    params['sign'] = sign                                 # 对sign_before进行MD5运算
    return params                                              #得到request需要的data内容
 
def get_content(plus_item):
    global payload,r
    url = "https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat"         # 聊天的API地址
    plus_item = plus_item.encode('utf-8')
    payload = get_params(plus_item)
    r = requests.post(url,data=payload)                                                 #带参请求api地址
    result=r.json()["data"]["answer"]
    return result                                                                                                #获得返回内容
  • daily功能使用了词霸的每日一词

  • 运行命令

uvicorn main:app --reload --host 0.0.0.0 --port 5997
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值