Python调用讯飞星火大模型v3.x api接口使用教程2.0(python sdk,支持图片理解)

前言

        本篇文章是针对星火大模型api接口使用的新篇章,本次主要是介绍对于pythonSDK使用,以及图片理解等新功能。相对于上篇博客中的使用方法,本次的教程相对来说更简单方便。话不多说,直接享用。

1、获取api接口的ID和key

        参考上篇文章:

https://blog.csdn.net/qq_45156060/article/details/134072123?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/qq_45156060/article/details/134072123?spm=1001.2014.3001.5501

这个图片理解的功能也是需要申请key,流程一样,同时也有200万免费token

2、python调用 

2.1、安装环境

   项目仅支持 Python3.8+

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple spark_ai_python

Upgrade

如果清华源版本不可用,请使用一下命令升级到最新版本:

pip install -i  https://repo.model.xfyun.cn/api/packages/administrator/pypi/simple  spark_ai_python --upgrade

2.2、一次性返回结果(非流式)代码实战

# coding: utf-8 

import os
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
from sparkai.core.messages import ChatMessage
try:
    from dotenv import load_dotenv
except ImportError:
    raise RuntimeError('Python environment for SPARK AI is not completely set up: required package "python-dotenv" is missing.') from None

load_dotenv()

if __name__ == '__main__':
    appid = ""  # 填写控制台中获取的 APPID 信息
    api_secret = ""  # 填写控制台中获取的 APISecret 信息
    api_key = ""  # 填写控制台中获取的 APIKey 信息
    spark = ChatSparkLLM(
        spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
        spark_app_id=appid,
        spark_api_key=api_key,
        spark_api_secret=api_secret,
        spark_llm_domain="generalv3.5",
        streaming=False,
    )
    messages = [ChatMessage(
        role="user",
        content='你好呀'
    )]
    a = spark.generate([messages])
    for response in a.generations:
        print(response[0].text)

注意当streaming设置为 False的时候, callbacks 并不起作用。

这里要说一下历史对话问题:

如上图,数组中传入格式,最大索引为本次最新问题,其他为历史对话

2.3、流式返回结果代码实战

import os

from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler,AsyncChunkPrintHandler
from sparkai.core.messages import ChatMessage

# spark 授权信息
SPARKAI_APP_ID=''
SPARKAI_API_KEY=''
SPARKAI_API_SECRET=''


def test_starcoder(text):
    """
    不带历史的单输入
    :param text:
    :return:
    """
    messages = [{'role': 'user',
                 'content': text}]
    spark = ChatSparkLLM(
        spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
        spark_app_id=SPARKAI_APP_ID,
        spark_api_key=SPARKAI_API_KEY,
        spark_api_secret=SPARKAI_API_SECRET,
        spark_llm_domain="generalv3.5",
        streaming=True,
        max_tokens= 1024,
    )
    messages = [
                ChatMessage(
                        role="user",
                        content=messages[0]['content']

    )]

    a = spark.stream(messages)
    for message in a:
        print(message.content)


if __name__ == '__main__':
    t = '今天世界和平吗'
    test_starcoder(t)

2.4、异步流式输出

# spark 授权信息
SPARKAI_APP_ID=''
SPARKAI_API_KEY=''
SPARKAI_API_SECRET=''
async def test_astream():
    from sparkai.log.logger import logger
    #logger.setLevel("debug")
    from sparkai.core.callbacks import StdOutCallbackHandler
    messages = [{'role': 'user',
                 'content': "帮我生成一段代码,爬取baidu.com"}]
    spark = ChatSparkLLM(
        spark_api_url="wss://xingchen-api.cn-huabei-1.xf-yun.com/v1.1/chat",
        spark_app_id=SPARKAI_APP_ID,
        spark_api_key=SPARKAI_API_KEY,
        spark_api_secret=SPARKAI_API_SECRET,
        spark_llm_domain="xsstarcoder27binst",
        streaming=True,
        max_tokens= 1024,
    )
    messages = [
                ChatMessage(
                        role="user",
                        content=messages[0]['content']

    )]
    handler = AsyncChunkPrintHandler()
    a = spark.astream(messages, config={"callbacks": [handler]})
    async for message in a:
        print(message)

if __name__ == '__main__':
    import asyncio
    asyncio.run(test_astream())

2.5 图片理解实战

import base64
import os

from sparkai.core.messages import ImageChatMessage
from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler

SPARKAI_APP_ID=''
SPARKAI_API_KEY=''
SPARKAI_API_SECRET=''

image_content = base64.b64encode(open("屏幕截图 2024-05-20 101725.png",'rb').read())

spark = ChatSparkLLM(
    # spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
    spark_app_id=SPARKAI_APP_ID,
    spark_api_key=SPARKAI_API_KEY,
    spark_api_secret=SPARKAI_API_SECRET,
    spark_llm_domain="image",
    streaming=False,
    user_agent="test"

)
messages = [ImageChatMessage(
    role="user",
    content=image_content,
    content_type="image"
),ImageChatMessage(
    role="user",
    content="这是什么图",
    content_type="text"
)]
handler = ChunkPrintHandler()
a = spark.generate([messages], callbacks=[])
print(a)

注意:这个key不能用3.5大模型的,这个是独立的

交流群进群方式

  • 20
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT大头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值