DashScopeLLM
DashScopeLLM,基于LlamaIndex框架,调用百炼平台提供的大模型能力。
开始
前提条件
已开通百炼服务:开通阿里云百炼大模型服务产品。
创建API_KEY:获取API-KEY。
安装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 | 支持的模型列表:
|
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)