开发常见问题Q&A
本文总结了在接入阿里云百炼的过程中遇到的常见技术问题,能够帮助您解决接入时可能碰到的大部分问题。
1. 如何获取阿里云的AccessKey/AccessKey Secret?
请参考AccessKey、AppID及AgentKey获取方式, 获取AccessKey和AccessKey Secret。
2. 什么是AgentKey? 如何获取AgentKey?
AgentKey是阿里云百炼的业务空间唯一标识key, 用来进行阿里云百炼的不同业务空间的数据隔离保护。
请参考AccessKey、AppID及AgentKey获取方式, 获取AgentKey。
3. 什么是AppID? 如何获取AppID?
AppID是阿里云百炼的应用唯一标识,阿里云百炼中应用通常对应具体的业务场景或流程,客户可以在应用中选择模型、设置插件和内容风格等。
请参考AccessKey、AppID及AgentKey获取方式, 获取AppID。
4. 我在调用API/SDK的过程中,返回错误提示"403, You are not authorized to do this operation. Action: sfm:CreateToken;Resource: acs:sfm::xxxxxx:*", 如何解决?
请参考文档如何使用业务空间, 对RAM子账号增加阿里云百炼相应的访问权限(AliyunSFMFullAccess)。
5. 我在调用API/SDK的过程中,返回错误提示""User not authorized to operate on the specified resources", 如何解决?
进入阿里云百炼官网https://bailian.console.aliyun.com/, 点击"应用管理",选择调用的应用后并点击"调用"。然后检查对应的AgentKey和AppID是否正确。
6. 我在调用API/SDK的过程中,返回错误提示"应用标识不正确", 要如何处理?
首选,请确认是否传入了正确的AppID。
其次, 请确认API/SDK中传入的AppID与AgentKey是否一致。请参考AccessKey、AppID及AgentKey获取方式, 检查调用应用时AgentKey与AppID是否一致。
7. 我想将阿里云百炼的SDK集成到langchain, 是否有参考代码?
将阿里云百炼的SDK集成到langchain, 请参考文档如何集成langchain。
8. 我在开发过程中,如何开启大模型的推理过程?
在调用API/SDK时,传入hasThoughts为True即可。
CompletionsRequest request = new CompletionsRequest()
.setAppId(appId)
.setPrompt(prompt)
.setHasThoughts(true);
resp = broadscope_bailian.Completions().call(app_id=app_id, prompt=prompt, has_thoughts=True)
9. 如何调整大模型输出内容的随机性?
在调用API/SDK时,传入topP即可, topP的取值范围为0 ~ 1.0。
CompletionsRequest request = new CompletionsRequest()
.setAppId(appId)
.setPrompt(prompt)
.setHasThoughts(true)
.setTopP(0.2);
resp = broadscope_bailian.Completions().call(app_id=app_id, prompt=prompt, has_thoughts=True, top_p=0.2)
10. 调用API插件时,如何传递我自己的业务参数?
首先,请参考文档API插件管理, 添加"业务透传"参数。
其次,在调用API/SDK时,请参考文档Python SDK(旧版),参照"业务参数透传示例", 传入业务参数。
这样,阿里云百炼在调用API插件时,同时会将大模型提取的参数,和API传入的业务参数,填入到API请求中。
注:如果在API插件中配置了业务参数,则必须在调用文本生成的API/SDK时,传入业务参数,否则会导致"插件调用失败"。
11. 如何使用上下文?
请参考文档Python SDK(旧版)中的"多轮对话示例",调用API/SDK时传入session id或history。
传入session id时,阿里云百炼服务端将自动维护session id对应的上下文历史,如不在需要之前的上下文,则需传入新的session id。session id建议使用guid或uuid以免造成上下文唯一表示冲突。目前session id会话有效期是1个小时,最大历史会话轮数为50。
传入history时,则需要调用者自行维护多轮对话历史,包括用户问题和大模型的回答。
注:如果同时传入session id和history时,优先使用调用者维护的上下文历史,session id将被忽略。