当前位置:   article > 正文

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

讯飞星火api调用

前言

        本篇文章是针对星火大模型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、一次性返回结果(非流式)代码实战

  1. # coding: utf-8
  2. import os
  3. from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
  4. from sparkai.core.messages import ChatMessage
  5. try:
  6. from dotenv import load_dotenv
  7. except ImportError:
  8. raise RuntimeError('Python environment for SPARK AI is not completely set up: required package "python-dotenv" is missing.') from None
  9. load_dotenv()
  10. if __name__ == '__main__':
  11. appid = "" # 填写控制台中获取的 APPID 信息
  12. api_secret = "" # 填写控制台中获取的 APISecret 信息
  13. api_key = "" # 填写控制台中获取的 APIKey 信息
  14. spark = ChatSparkLLM(
  15. spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
  16. spark_app_id=appid,
  17. spark_api_key=api_key,
  18. spark_api_secret=api_secret,
  19. spark_llm_domain="generalv3.5",
  20. streaming=False,
  21. )
  22. messages = [ChatMessage(
  23. role="user",
  24. content='你好呀'
  25. )]
  26. a = spark.generate([messages])
  27. for response in a.generations:
  28. print(response[0].text)

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

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

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

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

  1. import os
  2. from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler,AsyncChunkPrintHandler
  3. from sparkai.core.messages import ChatMessage
  4. # spark 授权信息
  5. SPARKAI_APP_ID=''
  6. SPARKAI_API_KEY=''
  7. SPARKAI_API_SECRET=''
  8. def test_starcoder(text):
  9. """
  10. 不带历史的单输入
  11. :param text:
  12. :return:
  13. """
  14. messages = [{'role': 'user',
  15. 'content': text}]
  16. spark = ChatSparkLLM(
  17. spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
  18. spark_app_id=SPARKAI_APP_ID,
  19. spark_api_key=SPARKAI_API_KEY,
  20. spark_api_secret=SPARKAI_API_SECRET,
  21. spark_llm_domain="generalv3.5",
  22. streaming=True,
  23. max_tokens= 1024,
  24. )
  25. messages = [
  26. ChatMessage(
  27. role="user",
  28. content=messages[0]['content']
  29. )]
  30. a = spark.stream(messages)
  31. for message in a:
  32. print(message.content)
  33. if __name__ == '__main__':
  34. t = '今天世界和平吗'
  35. test_starcoder(t)

2.4、异步流式输出

  1. # spark 授权信息
  2. SPARKAI_APP_ID=''
  3. SPARKAI_API_KEY=''
  4. SPARKAI_API_SECRET=''
  5. async def test_astream():
  6. from sparkai.log.logger import logger
  7. #logger.setLevel("debug")
  8. from sparkai.core.callbacks import StdOutCallbackHandler
  9. messages = [{'role': 'user',
  10. 'content': "帮我生成一段代码,爬取baidu.com"}]
  11. spark = ChatSparkLLM(
  12. spark_api_url="wss://xingchen-api.cn-huabei-1.xf-yun.com/v1.1/chat",
  13. spark_app_id=SPARKAI_APP_ID,
  14. spark_api_key=SPARKAI_API_KEY,
  15. spark_api_secret=SPARKAI_API_SECRET,
  16. spark_llm_domain="xsstarcoder27binst",
  17. streaming=True,
  18. max_tokens= 1024,
  19. )
  20. messages = [
  21. ChatMessage(
  22. role="user",
  23. content=messages[0]['content']
  24. )]
  25. handler = AsyncChunkPrintHandler()
  26. a = spark.astream(messages, config={"callbacks": [handler]})
  27. async for message in a:
  28. print(message)
  29. if __name__ == '__main__':
  30. import asyncio
  31. asyncio.run(test_astream())

2.5 图片理解实战

  1. import base64
  2. import os
  3. from sparkai.core.messages import ImageChatMessage
  4. from sparkai.llm.llm import ChatSparkLLM, ChunkPrintHandler
  5. SPARKAI_APP_ID=''
  6. SPARKAI_API_KEY=''
  7. SPARKAI_API_SECRET=''
  8. image_content = base64.b64encode(open("屏幕截图 2024-05-20 101725.png",'rb').read())
  9. spark = ChatSparkLLM(
  10. # spark_api_url="wss://spark-api.xf-yun.com/v3.5/chat",
  11. spark_app_id=SPARKAI_APP_ID,
  12. spark_api_key=SPARKAI_API_KEY,
  13. spark_api_secret=SPARKAI_API_SECRET,
  14. spark_llm_domain="image",
  15. streaming=False,
  16. user_agent="test"
  17. )
  18. messages = [ImageChatMessage(
  19. role="user",
  20. content=image_content,
  21. content_type="image"
  22. ),ImageChatMessage(
  23. role="user",
  24. content="这是什么图",
  25. content_type="text"
  26. )]
  27. handler = ChunkPrintHandler()
  28. a = spark.generate([messages], callbacks=[])
  29. print(a)

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

交流群进群方式

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/898363
推荐阅读
相关标签
  

闽ICP备14008679号