Mistral 通用工具
这是什么?
mistral-common 是一套帮助您使用 Mistral 模型的工具。
我们的首次发布包含分词功能。我们的分词器不仅仅是常规的文本与标记之间的转换,还增加了对工具和结构化对话的解析。我们还发布了在我们 API 中使用的验证和规范化代码。
我们发布了三个版本的分词器,支持不同的模型集。
|
|
安装
pip
您可以通过 pip 安装 mistral-common
:
pip install mistral-common
从源代码安装
或者,您可以直接从源代码安装。这个仓库使用 poetry 作为依赖和虚拟环境管理器。
您可以使用以下命令安装 poetry:
pip install poetry
poetry 将设置一个虚拟环境并使用以下命令安装依赖:
poetry install
示例
# 导入所需包:
from mistral_common.protocol.instruct.messages import (
UserMessage,
)
from mistral_common.protocol.instruct.request import ChatCompletionRequest
from mistral_common.protocol.instruct.tool_calls import (
Function,
Tool,
)
from mistral_common.tokens.tokenizers.mistral import MistralTokenizer
# 加载 Mistral 分词器
model_name = "open-mixtral-8x22b"
tokenizer = MistralTokenizer.from_model(model_name)
# 对消息列表进行分词
tokenized = tokenizer.encode_chat_completion(
ChatCompletionRequest(
tools=[
Tool(
function=Function(
name="get_current_weather",
description="获取当前天气",
parameters={
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市和州,例如:旧金山,加利福尼亚",
},
"format": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "使用的温度单位。根据用户所在地推断。",
},
},
"required": ["location", "format"],
},
)
)
],
messages=[
UserMessage(content="今天巴黎的天气如何"),
],
model=model_name,
)
)
tokens, text = tokenized.tokens, tokenized.text
# 计算标记数量
print(len(tokens))