跳至主要内容

文本生成

Mistral 模型允许您与经过微调的模型聊天,该模型能够遵循指令并响应自然语言提示。提示是您提供给 Mistral 模型的输入。它可以采取多种形式,例如提问、给出指令或提供几个您希望模型执行任务的示例。根据提示,Mistral 模型生成文本输出作为响应。

聊天补全 API 接受聊天消息列表作为输入并生成响应。该响应以带有“助手”角色的新聊天消息形式输出。

非流式

import os
from mistralai import Mistral

api_key = os.environ["MISTRAL_API_KEY"]
model = "mistral-large-latest"

client = Mistral(api_key=api_key)

chat_response = client.chat.complete(
model = model,
messages = [
{
"role": "user",
"content": "What is the best French cheese?",
},
]
)

print(chat_response.choices[0].message.content)

流式

import os
from mistralai import Mistral

api_key = os.environ["MISTRAL_API_KEY"]
model = "mistral-large-latest"

client = Mistral(api_key=api_key)

stream_response = client.chat.stream(
model = model,
messages = [
{
"role": "user",
"content": "What is the best French cheese?",
},
]
)

for chunk in stream_response:
print(chunk.data.choices[0].delta.content)

异步

import asyncio
import os

from mistralai import Mistral


async def main():
api_key = os.environ["MISTRAL_API_KEY"]
model = "mistral-tiny"

client = Mistral(api_key=api_key)

response = await client.chat.stream_async(
model=model,
messages=[
{
"role": "user",
"content": "Who is the best French painter? Answer in JSON.",
},
],
)
async for chunk in response:
if chunk.data.choices[0].delta.content is not None:
print(chunk.data.choices[0].delta.content, end="")


if __name__ == "__main__":
asyncio.run(main())

聊天消息

聊天消息 (messages) 是提示或消息的集合,每条消息都被分配了特定的角色,例如“system”、“user”、“assistant”或“tool”。

  • 系统消息是一条可选消息,用于设置 AI 助手在对话中的行为和上下文,例如修改其个性或提供特定指令。系统消息可以包括任务指令、个性特征、上下文信息、创造力约束以及其他相关指南,以帮助 AI 更好地理解和响应用户的输入。有关如何设置自定义系统提示词的说明,请参阅API 参考
  • 用户消息是从对话中人类的角度发送给 AI 助手的消息。它通常提供 AI 助手应响应的请求、问题或评论。用户提示词允许人类启动和引导对话,它们可用于请求信息、寻求帮助、提供反馈或与 AI 进行其他类型的互动。
  • 助手消息是 AI 助手发送回用户的消息。它通常是为了回复之前的用户消息并遵循其指令,但它也可以出现在对话的开头,例如问候用户。
  • 工具消息仅出现在函数调用的上下文中,用于模型必须为用户格式化工具调用的输出时的最终响应生成步骤。要了解有关函数调用的更多信息,请参阅指南
何时使用 user 提示词与先 system 消息后 user 消息?
  • 您可以将 system 消息和 user 消息合并到一条 user 消息中,也可以将它们分成两条独立的消息。
  • 我们建议您尝试这两种方式,以确定哪种方式更适合您的特定用例。

其他有用功能

  • prefix 标志允许在助手的响应内容前添加内容。当在消息中使用时,它允许在列表末尾添加一条助手消息,该消息将添加到助手的响应之前。有关其工作原理的更多详细信息,请参阅前缀

  • safe_prompt 标志用于强制对聊天补全进行敏感内容审查(参见防护栏)。

  • stop 序列允许强制模型在遇到一个或多个选定的 token 或字符串后停止生成。

    停止序列示例
    curl --location "https://api.mistral.ai/v1/chat/completions" \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header "Authorization: Bearer $MISTRAL_API_KEY" \
    --data '{
    "model": "mistral-large-latest",
    "messages": [
    {
    "role": "user",
    "content": "What is the capital of France?"
    }
    ],
    "stop": ["Paris"]
    }'