跳到主要内容

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字符串并手动处理特殊令牌:这可能会导致静默标记化错误,从而大大降低模型输出的质量。

您需要使用以下包从虚拟环境中运行代码:

  • 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 )

更进一步

有关更多信息和示例,您可以查看: