DashScope - 阿里模型服务灵积


文章目录

    • [关于 DashScope](#关于 DashScope)
      • [关于 DashScope 和 ModelScope](#关于 DashScope 和 ModelScope)
    • 快速上手
    • 代码调用
      • [http 请求示例](#http 请求示例)
      • [Python 调用](#Python 调用)

关于 DashScope

DashScope灵积模型服务建立在"模型即服务"(Model-as-a-Service,MaaS)的理念基础之上,围绕AI各领域模型,通过标准化的API提供包括模型推理、模型微调训练在内的多种模型服务。

通过围绕模型为中心,DashScope灵积模型服务致力于为AI应用开发者提供品类丰富、数量众多的模型选择,并通过API接口为其提供开箱即用、能力卓越、成本经济的模型服务。



关于 DashScope 和 ModelScope

参考文章:https://developer.aliyun.com/article/1377012

ModelScope是一个开源技术社区,从其立场来看,它并不承担营收的使命。DashScope可以看作是ModelScope的"孪生兄弟",它们有着相同的底层架构。

两者的区别在于,ModelScope上的许多开发者是基于模型的checkpoint进行Fine-tune,而DashScope更多地为模型提供商(如百川智能、智谱AI、Stability.AI等)提供服务,通过API的方式向下游厂商提供Fine-tune和Influence链路服务。

ModelScope和DashScope是模型的一体两面,都是MaaS(Model as a Service)的一部分。

相对较小的小模型走开源路线,相对较大的大模型则走商业路线。

例如,智谱AI的ChatGLM-6B模型就在ModelScope上进行了开源,并且已经形成了一定的用户规模和影响力。

未来,它的13B、50B、130B模型将通过DashScope进行商业化落地。

无独有偶,阿里云的通义千问也是同样的情况,Qwen-7B模型是开源的,而Qwen-50B模型未来可能会通过DashScope去做API模式的商业化。


快速上手

参考官方文档:
https://help.aliyun.com/zh/dashscope/create-a-chat-foundation-model

1、开通DashScope并创建API-KEY

https://dashscope.console.aliyun.com/overview


2、安装DashScope SDK

基于 Python 3.8+

shell 复制代码
pip install dashscope

3、API-KEY设置

1)通过环境变量设置

推荐通过环境变量设置api-key

bash 复制代码
export DASHSCOPE_API_KEY="YOUR_DASHSCOPE_API_KEY"

2)通过代码设置

通常不推荐将api-key直接写在代码中

python 复制代码
import dashscope
dashscope.api_key="YOUR_DASHSCOPE_API_KEY"

3)通过文件设置**

默认会读取~/.dashscope/api_key 作为 DASHSCOPE_API_KEY, 您可以通过环境变量设置api_key保存文件位置。

bash 复制代码
export DASHSCOPE_API_KEY_FILE_PATH=YOUR_API_KEY_FILE_PATH

代码调用

http 请求示例

shell 复制代码
curl -X GET 'https://dashscope.aliyuncs.com/api/v1/tasks/73205176-xxxx-xxxx-xxxx-16bd5d902219' \
--header 'Authorization: Bearer <YOUR_API_KEY>'

响应示例:

json 复制代码
{
    "request_id": "45ac7f13-xxxx-xxxx-xxxx-e03c35068d83",
    "output": {
        "task_id": "73205176-xxxx-xxxx-xxxx-16bd5d902219",
        "task_status": "SUCCEEDED",
        "submit_time": "2023-12-20 21:36:31.896",
        "scheduled_time": "2023-12-20 21:36:39.009",
        "end_time": "2023-12-20 21:36:45.913",
        "results": [
            {
                "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx1.png"
            },
            {
                "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx2.png"
            },
            {
                "url": "https://dashscope-result-bj.oss-cn-beijing.aliyuncs.com/xxx3.png"
            },
            {
                "code": "DataInspectionFailed",
                "message": "Output data may contain inappropriate content.",
            }
        ],
        "task_metrics": {
            "TOTAL": 4,
            "SUCCEEDED": 3,
            "FAILED": 1
        }
    },
    "usage": {
        "image_count": 3
    }
}

Python 调用

python 复制代码
from http import HTTPStatus
import dashscope
from dashscope import Generation

dashscope.api_key = 'YOUR-DASHSCOPE-API-KEY'

responses = Generation.call(model=Generation.Models.qwen_turbo,
                            prompt='今天天气好吗?')

# 方式二
messages = [{'role': 'system', 'content': 'You are a helpful assistant.'},
            {'role': 'user', 'content': '如何做西红柿鸡蛋?'}]
            
response = Generation.call(
    model='qwen-turbo',
    messages=messages,
    result_format='message',  # set the result to be "message" format.
)

if responses.status_code == HTTPStatus.OK:
    print('Result is: %s' % responses.output)
else:
    print('Failed request_id: %s, status_code: %s, code: %s, message:%s' %
            (responses.request_id, responses.status_code, responses.code,
            responses.message))

python 复制代码
def tokenizer():
    response = dashscope.Tokenization.call(model='qwen-turbo',
                                 messages=[{'role': 'user', 'content': '你好?'}],
                                 )
    if response.status_code == HTTPStatus.OK:
        print('Result is: %s' % response)
    else:
        print('Failed request_id: %s, status_code: %s, code: %s, message:%s' %
              (response.request_id, response.status_code, response.code,
               response.message))


if __name__ == '__main__':
    tokenizer()
相关推荐
JoeyKo13 小时前
国内版Sketchfab平台 - CG美术之家(3D编辑发布篇)
3d·3d建模·3dsmax·3d渲染·模型·3d模型·cg模型
图王大胜4 天前
模型 定位地图
人工智能·思维·模型·定位·商业·交叉学科
网络研究院5 天前
控制台安全内部:创新如何塑造未来的硬件保护
安全·模型·硬件·观点·未来·创新·发展
算家云20 天前
champ模型部署指南
人工智能·3d·aigc·模型·视频生成·动态视觉·视频动画
这孩子叫逆1 个月前
Canal 扩展篇(阿里开源用于数据同步备份,监控表和表字段(日志))
mysql·canal·日志·阿里·binary_log
洛阳泰山1 个月前
Chainlit集成Dashscope实现语音交互网页对话AI应用
人工智能·llm·交互·xcode·dashscope·sensevoice·cosyvoice
无极9211 个月前
访问控制类型及部分具体介绍
运维·服务器·网络·安全·网络安全·模型·访问控制
向宇it2 个月前
获取Live2d模型
模型·live2d
沉迷单车的追风少年2 个月前
腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧
百度·华为·腾讯·阿里
DAIHAO丶2 个月前
四、Django模型
python·django·模型