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

avatar
作者
猴君
阅读量:2

前言

        本篇文章是针对星火大模型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大模型的,这个是独立的

交流群进群方式

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!