【AI大模型】DashScope 介绍

一、简介

  • DashScope是阿里云的一款模型服务产品,简化了AI模型的应用与部署。
  • 对主流的AI大模型进行了标准化封装,提供API接口,方便开发者可以调用这些模型,并进行推理、训练、微调。
  • 为开发者提供了从模型获取、使用到优化的一站式解决方案,极大地促进了AI技术在不同行业和场景中的广泛应用。

二、使用

1. 前提条件

pip install dashscope

2. 使用 Python 调用大模型

from http import HTTPStatus
import dashscope
import json

# 替换为自己的 API Key
dashscope.api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx"

# 打印优美的JSON
def print_json(data):
    """
    打印参数。如果参数是有结构的(如字典或列表),则以格式化的 JSON 形式打印;
    否则,直接打印该值。
    """
    # 检查 data 是否是列表(list)或字典(dict)
    if (isinstance(data, (list, dict))):
         # Python对象 转 JSON字符串
         # indent=4参数表示在输出的JSON字符串中,每一级缩进4个空格。
         # ensure_ascii=False参数表示在输出的JSON字符串中,非ASCII字符将被输出为原始的Unicode,而不是被转义。
         print(json.dumps(data, indent=4, ensure_ascii=False))
    else:
        print(data)


def sample_sync_call():
    prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'
    resp = dashscope.Generation.call(
        model='qwen-turbo',
        prompt=prompt_text
    )
    # 如果响应的状态码是 HTTPStatus.OK,表示成功,
    # 否则表示请求失败,您可以从 code 和 message 中获取错误代码和信息。
    if resp.status_code == HTTPStatus.OK:
        print_json(resp)
    else:
        print_json(resp)

sample_sync_call()

  • 输出结果:
{
   
    "status_code": 200,
    "request_id": "748f56b5-6d6a-9640-a4d9-2f25ca87cbe5",
    "code": "",
    "message": "",
    "output": {
   
        "text": "当然可以,这里是一个简单易做的三菜一汤的建议,以萝卜、土豆和茄子为主料:\n\n**菜品一:红烧萝卜**\n食材:萝卜半个,土豆1个,生抽、老抽、糖、盐适量,清水适量,食用油少许。\n步骤:\n1. 萝卜、土豆洗净切块,备用。\n2. 热锅凉油,放入糖小火慢慢炒化,炒至红色泡沫冒出来。\n3. 加入切好的萝卜块,翻煎均匀,让萝卜块表面裹上糖色。\n4. 倒入足够的清水,加入生抽、老抽,盖上锅盖煮15分钟左右。\n5. 加入土豆块,继续煮10分钟,直到土豆熟透,加盐调味即可。\n\n**菜品二:土豆烧茄子**\n食材:茄子2个,土豆1个,蒜末、姜末、盐、生抽、糖、食用油适量。\n步骤:\n1. 茄子切滚刀块,土豆去皮切块,用淀粉水浸泡备用。\n2. 热锅冷油,放入土豆块炸至金黄捞出,再炸茄子至微焦。\n3. 锅中留底油,加入蒜末、姜末炒香。\n4. 放入炸好的土豆和茄子,加入生抽、糖、盐调味,翻炒均匀后出锅。\n\n**菜品三:清炒蒜蓉茄子**\n食材:茄子2个,大蒜3瓣,盐、生抽、食用油适量。\n步骤:\n1. 茄子切段,大蒜剁成蒜蓉。\n2. 热锅凉油,下蒜蓉炒香,然后放入茄子翻炒。\n3. 加入适量的盐和生抽调味,炒至茄子软烂即可。\n\n**汤品:蔬菜豆腐汤**\n食材:豆腐1块,胡萝卜半根,萝卜半个,土豆1个,清水适量,盐适量。\n步骤:\n1. 豆腐切块,胡萝卜、土豆和萝卜切片。\n2. 烧开一锅水,加入所有蔬菜和豆腐,慢炖15-20分钟。\n3. 最后加盐调味,煮沸即可。\n\n以上就是一道简单的三菜一汤,营养均衡,希望你会喜欢!",
        "finish_reason": "stop",
        "choices": null
    },
    "usage": {
   
        "input_tokens": 32,
        "output_tokens": 489,
        "total_tokens": 521
    }
}

3. 接收流式输出

上述代码的会在整体文本生成完成后,一次性返回所有输出结果。修改代码设置stream=True,可以让大模型一边生成一边输出,即通过流式输出的方式尽快的将中间结果显示在屏幕上。

  • 完整代码
from http import HTTPStatus
import dashscope

dashscope.api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxx"

def sample_call_streaming():
    prompt_text = '用萝卜、土豆、茄子做饭,给我个菜谱。'
    response_generator = dashscope.Generation.call(
        model='qwen-turbo',
        prompt=prompt_text,
        stream=True,  # 流式输出
        top_p=0.8
    )
    # 流式输出,需要通过迭代来获得结果。
    for response in response_generator:
        if response.status_code == HTTPStatus.OK:
            print(response.output)
        else:
            print(response)


sample_call_streaming()

  • 输出结果:
{
   "text": "当然", "finish_reason": "null", "choices": null}
{
   "text": "当然可以", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一:红烧萝卜土豆**\n食材:", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一:红烧萝卜土豆**\n食材:萝卜半个,土豆2个,生", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一:红烧萝卜土豆**\n食材:萝卜半个,土豆2个,生抽、老抽、糖、盐", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一:红烧萝卜土豆**\n食材:萝卜半个,土豆2个,生抽、老抽、糖、盐、葱姜适量,清水适量。\n", "finish_reason": "null", "choices": null}
{
   "text": "当然可以,这里有一个简单的三菜一汤的菜谱,使用萝卜、土豆和茄子:\n\n**菜品一:红烧萝卜土豆**\n食材:萝卜半个,土豆2个,生抽、老抽、糖、盐、葱姜适量,清水适量。\n步骤:\n1. 萝卜", "finish_reason": 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值