赞
踩
dashscope是阿里云大模型服务平台——灵积提供的在线API组件。基于它,无需本地加载大模型,通过在线方式访问云端大模型来完成对话。
老规矩:要想访问各家云端大模型,需要先申请API key。
对于阿里云,需要先访问:https://dashscope.console.aliyun.com/。然后注册一个账号,接着就可以申请sk-开头的api-key了,如下图所示。
有了key后,就可以点击上面选项:模型体验中心,输入简单的prompt来验证本地电脑访问阿里云网络通信有没有问题:
下面是一个简单python代码,自己封装message,并添加api-key,并通过在线方式访问Qwen大模型进行对话。
- import dashscope
- from typing import List
- import logging
-
- class Params:
- def __init__(self, model, temperature, api_key, messages):
- self.model = model
- self.temperature = temperature
- self.api_key = api_key
- self.messages = messages #List[Dict[str, str]]
-
-
- class QwenClient:
- def __init__(self, log_verbose: bool = False):
- self.log_verbose = log_verbose
- self.logger = logging.getLogger(__name__)
- if log_verbose:
- self.logger.setLevel(logging.INFO)
-
- def call_qwen(self, params: Params) -> List[dict]:
- # 加载配置文件,根据需要选择第一个模型
- if self.log_verbose:
- self.logger.info(f'{self.__class__.__name__}:params: {params}')
-
- # 初始化生成器对象
- gen = dashscope.Generation()
-
- # 调用千问API并获取回复
- responses = gen.call(
- model=params.model,
- temperature=params.temperature,
- api_key=params.api_key,
- messages= params.messages,
- result_format='message',
- stream=True,
- )
- print("responses: ", responses)
-
- # 处理API返回的结果
- response_list = []
- for resp in responses:
- if resp["status_code"] == 200 and "output" in resp and "choices" in resp["output"]:
- choice = resp["output"]["choices"][0]["message"]["content"]
- response_list.append({"error_code": 0, "text": choice})
- else:
- error_data = {
- "error_code": resp["status_code"],
- "text": resp["message"],
- "error": {
- "message": resp["message"],
- "type": "invalid_request_error",
- "param": None,
- "code": None,
- }
- }
- self.logger.error(f"请求千问 API 时发生错误:{error_data}")
- response_list.append(error_data)
-
- return response_list
-
- # 使用示例
- if __name__ == "__main__":
- logging.basicConfig(level=logging.INFO)
- #model_names = ["qwen-turbo"]
- client = QwenClient(log_verbose=True)
-
- user_input = "你好,请问今天北京天气怎么样?"
- messages = [{"role": "user", "content": user_input}]
- params = Params("qwen-turbo", 0.7, "sk-axxxxxx3b4a2fa1cb1dd7e71a4bee", messages)
-
- responses = client.call_qwen(params)
-
- print("千问的回答:", responses[-1]["text"])
需要先安装好组件:dashscope,typing以及logging。本平台是ubuntu20.04,直接输入:python3 xxx.py即可到预期结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。