文档

DashScopeLLM

更新时间:
一键部署

DashScopeLLM,基于LlamaIndex框架,调用百炼平台提供的大模型能力。

开始

前提条件

  • 安装LlamaIndex环境和DashScopeLLM依赖:

!pip install llama-index-core
!pip install llama-index-llms-dashscope

示例代码

  • 导出环境变量,将API KEY传入DashScope对象初始化参数:

%env DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
from llama_index.llms.dashscope import DashScope, DashScopeGenerationModels

dashscope_llm = DashScope(
  model_name=DashScopeGenerationModels.QWEN_MAX, api_key=os.environ["DASHSCOPE_API_KEY"]
)
resp = dashscope_llm.complete("请帮我推荐一下江浙沪5天的旅游攻略?")
print(resp)

基础用法

初始化DashScope对象

  • 选择Qwen_MAX模型;

from llama_index.llms.dashscope import DashScope, DashScopeGenerationModels

dashscope_llm = DashScope(model_name=DashScopeGenerationModels.QWEN_MAX)

Complete函数

  • 基于用户提出的问题,进行答案补全,适用于非对话场景;

resp = dashscope_llm.complete("请帮我推荐一下江浙沪5天的旅游攻略?")
print(resp)

StreamComplete函数

  • 支持流式输出;

responses = dashscope_llm.stream_complete("请帮我推荐一下江浙沪5天的旅游攻略?")
for response in responses:
    print(response.delta, end="")

Chat函数

  • 基于LlamaIndex定义Message数据结构,调用chat接口;

from llama_index.core.base.llms.types import MessageRole, ChatMessage

messages = [
    ChatMessage(
        role=MessageRole.SYSTEM, content="You are a helpful assistant."
    ),
    ChatMessage(role=MessageRole.USER, content="请帮我推荐一下江浙沪5天的旅游攻略?"),
]
resp = dashscope_llm.chat(messages)
print(resp)

StreamChat函数

  • 支持流式输出;

responses = dashscope_llm.stream_chat(messages)
for response in responses:
    print(response.delta, end="")

多轮对话

messages = [
    ChatMessage(
        role=MessageRole.SYSTEM, content="You are a helpful assistant."
    ),
    ChatMessage(role=MessageRole.USER, content="请帮我推荐一下江浙沪5天的旅游攻略?"),
]
# 第一轮对话
resp = dashscope_llm.chat(messages)
print(resp)

# 添加回复到Message中
messages.append(
    ChatMessage(role=MessageRole.ASSISTANT, content=resp.message.content)
)

messages.append(
    ChatMessage(role=MessageRole.USER, content="请问上海推荐住在哪里?")
)
# 第二轮对话
resp = dashscope_llm.chat(messages)
print(resp)

参数说明

输入参数

  • 关键参数说明如下,部分LlamaIndex LLM通用参数不在这里赘述:

参数

类型

默认值

说明

model_name

Union[Enum, str]

DashScopeGenerationModels.QWEN_MAX

支持的模型列表:

  • DashScopeGenerationModels.QWEN_MAX

  • DashScopeGenerationModels.QWEN_PLUS

  • DashScopeGenerationModels.QWEN_TURBO

max_tokens

int

256

最大输出tokens

incremental_output

bool

True

控制在流式输出模式下是否开启增量输出,即后续输出内容是否包含已输出的内容。设置为True时,将开启增量输出模式,后面输出不会包含已经输出的内容,您需要自行拼接整体输出;设置为False则会包含已输出的内容。

temperature

float

0.1

温度系数,用于控制随机性和多样性的程度

top_k

int

None

生成时,采样候选集的大小。例如,取值为50时,仅将单次生成中得分最高的50个token组成随机采样的候选集。取值越大,生成的随机性越高;取值越小,生成的确定性越高。默认不传递该参数,取值为None或当top_k大于100时,表示不启用top_k策略,此时,仅有top_p策略生效。

top_p

float

None

生成时,核采样方法的概率阈值。例如,取值为0.8时,仅保留累计概率之和大于等于0.8的概率分布中的token,作为随机采样的候选集。取值范围为(0,1.0),取值越大,生成的随机性越高;取值越低,生成的随机性越低。默认值为0.8。注意,取值不要大于等于1

api_key

str

None

DashScope api key,可以通过环境变量等方法设置

输出参数

字段名

字段类型

字段描述

response

CompletionResponse | ChatResponse

complete函数返回的数据结构为CompletionResponse对象;

chat函数返回为ChatResponse,更多信息参考LlamaIndex官方文档

了解更多

更多内容,请参考LlamaIndex官方文档:

  • 本页导读 (1)