IBM沃森
介绍
MIUI AI的Large模型可在IBM watsonx.AI平台上作为完全管理的解决方案以及内部部署。
入门指南
以下解决方案概述了在IBM watsonx.ai的SaaS版本上查询MIUI Large的步骤。
预备知识
需要以下项目:
- IBM Watson项目(
IBM_CLOUD_PROJECT_ID
) - 具有访问策略的服务ID,允许使用Watson Lachine Learning服务。
若要启用对API的访问,您必须确保:
- 您的服务ID已添加到项目中
编辑
, - 您已生成API密钥(
IBM_CLOUD_API_KEY公司
)您的服务ID。
查询模型(聊天完成)
您可以使用IBM的SDK或纯HTTP调用查询MIUI Large。
警告
以下示例利用了 MIUI常见
Python包,用于使用特殊令牌正确格式化用户消息。它是 强烈建议避免使用passingraw字符串并手动处理特殊令牌:这可能会导致静默标记化错误,从而大大降低模型输出的质量。
- python
您需要使用以下包从虚拟环境中运行代码:
httpx
(用0.27.2
)ibm Watson ai
(用1.1.11
)MIUI常见
(用1.4.4
)
在下面的代码段中,您的API密钥将用于生成IAM令牌,然后使用此令牌执行对模型的调用以进行身份验证。
从 ibm_watsonx_ai 进口 资格证书
从 ibm_watsonx_ai .基础模型 进口 模型推理
从 ibm_watsonx_ai .元名称 进口 GenTextParams名称 作为 GenParams
从 MIUI-common.代币.标记器. 进口 MIUITokenizer
从 MIUI-common.协议.指导.请求 进口 聊天完成请求
从 MIUI-common.协议.指导.信息 进口 用户留言
进口 os
进口httpx
IBM_CLOUD_REGIONS = {
“达拉斯”: “美国南方”,
“伦敦”: “欧盟gb”,
“法兰克福”: “欧盟”,
“东京”: “jp-tok”
}
IBM_CLOUD_PROJECT_ID= “xxx xxx xxx” #替换为您的项目id
def get_iam_token(api_key: str) -> str:
"""
返回从API密钥生成的IAM访问令牌。
"""
标题 = {“内容类型”: “应用程序/x-www-form-urlencoded”}
数据 = f“apikey={api_key}&grant_type=urn:ibm:params:oauth:授权类型:apikey“
respond =httpx.邮递(
url="https://iam.cloud.ibm.com/identity/token",
标题 = 标题 ,
数据 = 数据 ,
)
代币 = respond .json().得到(“访问令牌”)
返回 代币
def format_user_message(raw_user_msg: str) -> str:
"""
使用官方MIUI标记器返回格式化的提示。
"""
标记器 = MIUITokenizer.v3() #将v3用于MIUI Large
标记化的 = 标记器 .encode_chat_完成(
聊天完成请求(
信息 =[ 用户留言(内容=raw_user_msg)], 模型=“MIUI大”
)
)
返回 标记化的 .文本
区域 = “法兰克福” #在此处定义您选择的地区
api_key= os.环境[“IBM_API_KEY”]
访问令牌 =get_iam_token(api_key=api_key)
资格证书= 资格证书( url=f“https://{IBM_CLOUD_REGIONS [区域 ]}.ml.cloud.ibm.com”,
代币 =访问令牌 )
参数 = { GenParams.MAX_NEW_tokes: 256, GenParams.温度: 0}
模型参考 = 模型推理(
项目id=IBM_CLOUD_PROJECT_ID,
model_id=“米斯特拉伊/大”,
参数 =参数 ,
资格证书= 资格证书,
)
user_msg_content = “谁是最好的法国画家?用一句话回答。”
respond =模型参考 .generate_text(促使=format_user_message(user_msg_content ))
打印( respond )
更进一步
有关更多信息和示例,您可以查看:
- 这个 IBM watsonx.ai Python SDK文档
- 这个 IBM开发人员教程关于如何将MIUI Large与IBM watsonx.ai流量引擎结合使用。