吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 704|回复: 5
收起左侧

[Python 原创] fastapi小案例:实现星火API调用和中文转英文fastapi+sparkAI+en2zh

[复制链接]
vicmay 发表于 2024-8-7 11:05
本帖最后由 vicmay 于 2024-8-7 11:53 编辑

[Python] 纯文本查看 复制代码
from fastapi import FastAPI
import uvicorn
import requests


app = FastAPI()

# sparkai调用
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage
#星火认知大模型Spark Max的URL值,其他版本大模型URL值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看
SPARKAI_URL = 'wss://spark-api.xf-yun.com/v1.1/chat'
#星火认知大模型调用秘钥信息,请前往讯飞开放平台控制台(https://console.xfyun.cn/services/bm35)查看
SPARKAI_APP_ID = '替换自己的ID'
SPARKAI_API_SECRET = '替换自己的SECRET'
SPARKAI_API_KEY = '替换自己的API_KEY'
#星火认知大模型Spark Max的domain值,其他版本大模型domain值请前往文档(https://www.xfyun.cn/doc/spark/Web.html)查看
SPARKAI_DOMAIN = 'general'

def search_sparkai(keyword):
    spark = ChatSparkLLM(
            spark_api_url=SPARKAI_URL,
            spark_app_id=SPARKAI_APP_ID,
            spark_api_key=SPARKAI_API_KEY,
            spark_api_secret=SPARKAI_API_SECRET,
            spark_llm_domain=SPARKAI_DOMAIN,
            streaming=False,
        )
    messages = [ChatMessage(role="user",content=keyword)]
    handler = ChunkPrintHandler()
    generations = spark.generate([messages], callbacks=[handler])
    data = str(generations)
    return data

def get_text(t):
    m=t.split("text='")[1]
    if len(m) >1:
        m=m.split("', message")[0]
    else:
        return t
    return m


@app.get("/sparkai")
def sparkai_answer(keyword:str|None=None):
    t=search_sparkai(keyword)
    return get_text(t)


def zhongying(keywords):
    zh = 'zh'
    en = 'en'
    for c in keywords:
        if ('\u4e00' <= c <= '\u9fa5'):  # 判断是否为中文
            zh = 'en'
            en = 'zh'
    try:
        url = "https://fy.httpcn.com/bdaify/?s1=%s&t1=%s&q=%s" % (en, zh, keywords)
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
        }
        fanhui = requests.get(url, headers=headers, timeout=30)
        jieguo = fanhui.json()
        jie2 = jieguo['result']['trans_result'][0]['dst']
        return jie2
    except:
        return '无数据'

@app.get("/zhongying")
def zhongying_answer(keyword:str|None=None):
    return zhongying(keyword)



# 启动uvicorn服务器
# 示例使用
if __name__ == "__main__":
    uvicorn.run(app, host="127.0.0.1", port=8099)



#使用前安装fastapi、requests、uvicorn即可一键启动;然后浏览器访问http://127.0.0.1:8099/docs即可调用相应API

sparkAI实例

sparkAI实例

翻译详情

翻译详情

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xixicoco 发表于 2024-8-7 11:47
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler  这个调用有问题
 楼主| vicmay 发表于 2024-8-7 11:54
xixicoco 发表于 2024-8-7 11:47
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler  这个调用有问题

具体什么问题呢?麻烦截图反馈
 楼主| vicmay 发表于 2024-8-7 11:56
xixicoco 发表于 2024-8-7 11:47
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler  这个调用有问题

哦,忘了,还要安装sparkai库,pip install sparkai
licx05 发表于 2024-8-7 17:33
支持,!一直想学
turmasi1234 发表于 2024-8-8 11:22
默默学习,给一个大大的赞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表