当前位置:   article > 正文

基于dashscope在线调用千问大模型_import dashscope

import dashscope

前言

dashscope是阿里云大模型服务平台——灵积提供的在线API组件。基于它,无需本地加载大模型,通过在线方式访问云端大模型来完成对话。 

申请API key

老规矩:要想访问各家云端大模型,需要先申请API key。

对于阿里云,需要先访问:https://dashscope.console.aliyun.com/。然后注册一个账号,接着就可以申请sk-开头的api-key了,如下图所示。

有了key后,就可以点击上面选项:模型体验中心,输入简单的prompt来验证本地电脑访问阿里云网络通信有没有问题:

 代码

下面是一个简单python代码,自己封装message,并添加api-key,并通过在线方式访问Qwen大模型进行对话。

  1. import dashscope
  2. from typing import List
  3. import logging
  4. class Params:
  5. def __init__(self, model, temperature, api_key, messages):
  6. self.model = model
  7. self.temperature = temperature
  8. self.api_key = api_key
  9. self.messages = messages #List[Dict[str, str]]
  10. class QwenClient:
  11. def __init__(self, log_verbose: bool = False):
  12. self.log_verbose = log_verbose
  13. self.logger = logging.getLogger(__name__)
  14. if log_verbose:
  15. self.logger.setLevel(logging.INFO)
  16. def call_qwen(self, params: Params) -> List[dict]:
  17. # 加载配置文件,根据需要选择第一个模型
  18. if self.log_verbose:
  19. self.logger.info(f'{self.__class__.__name__}:params: {params}')
  20. # 初始化生成器对象
  21. gen = dashscope.Generation()
  22. # 调用千问API并获取回复
  23. responses = gen.call(
  24. model=params.model,
  25. temperature=params.temperature,
  26. api_key=params.api_key,
  27. messages= params.messages,
  28. result_format='message',
  29. stream=True,
  30. )
  31. print("responses: ", responses)
  32. # 处理API返回的结果
  33. response_list = []
  34. for resp in responses:
  35. if resp["status_code"] == 200 and "output" in resp and "choices" in resp["output"]:
  36. choice = resp["output"]["choices"][0]["message"]["content"]
  37. response_list.append({"error_code": 0, "text": choice})
  38. else:
  39. error_data = {
  40. "error_code": resp["status_code"],
  41. "text": resp["message"],
  42. "error": {
  43. "message": resp["message"],
  44. "type": "invalid_request_error",
  45. "param": None,
  46. "code": None,
  47. }
  48. }
  49. self.logger.error(f"请求千问 API 时发生错误:{error_data}")
  50. response_list.append(error_data)
  51. return response_list
  52. # 使用示例
  53. if __name__ == "__main__":
  54. logging.basicConfig(level=logging.INFO)
  55. #model_names = ["qwen-turbo"]
  56. client = QwenClient(log_verbose=True)
  57. user_input = "你好,请问今天北京天气怎么样?"
  58. messages = [{"role": "user", "content": user_input}]
  59. params = Params("qwen-turbo", 0.7, "sk-axxxxxx3b4a2fa1cb1dd7e71a4bee", messages)
  60. responses = client.call_qwen(params)
  61. print("千问的回答:", responses[-1]["text"])

 需要先安装好组件:dashscope,typing以及logging。本平台是ubuntu20.04,直接输入:python3 xxx.py即可到预期结果:

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

闽ICP备14008679号