跳转到内容

Mistral AI 提示词最佳实践指南

掌握 Mistral 7B、Mixtral 8x7B 的提示词技巧,充分发挥开源模型在代码生成和JSON输出方面的优势

Mistral AI LogoStatus


1. 模型概述

1.1 模型版本与特点

模型发布时间上下文窗口核心能力适用场景
Mistral 7B Instruct2023年9月8K tokens轻量级、代码生成强代码生成、JSON输出、本地部署
Mixtral 8x7B2023年12月32K tokensMixture of Experts,性能强大通用任务、长文档处理
Mistral Small2024年2月128K tokens平衡性能和成本API服务、中等复杂度任务
Mistral Medium2024年2月128K tokens接近GPT-3.5性能API服务、复杂推理
Mistral Large2024年2月128K tokens最强推理能力API服务、复杂任务

1.2 核心优势

代码生成能力强:Mistral 7B在代码生成上达到Code Llama 7B水平
JSON输出稳定:能够可靠地生成JSON格式输出
模型小巧高效:7B参数,可在本地部署,推理速度快
开源免费:可商用,可微调
长上下文:Mixtral支持32K,Mistral Large支持128K

1.3 限制与注意事项

⚠️ 对提示词注入敏感:容易受到提示词注入攻击
⚠️ 指令遵循能力中等:不如GPT-4和Claude,需要更详细的提示词
⚠️ 中文能力较弱:主要训练数据是英文,中文能力有限
⚠️ 需要特定的提示词格式:必须使用[INST]...[/INST]格式
⚠️ 无官方多模态能力:不支持图像输入(需要其他模型配合)


2. 提示词基础

2.1 Mistral提示词的基本结构

Mistral使用特定的聊天模板格式,最重要的是使用[INST][/INST]标记。

基础格式(单次对话)

<s>[INST] 你的指令 [/INST] 模型的回答 </s>

多轮对话格式

<s>[INST] 第一个问题 [/INST] 第一个回答 [/INST] 第二个问题 [/INST] 第二个回答 </s>

重要

  • <s></s> 是特殊token(BOS/EOS)
  • [INST][/INST] 是常规字符串,用于包装指令
  • 必须使用正确的格式,否则模型性能会下降

2.2 使用Hugging Face Transformers(推荐)

python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "mistralai/Mistral-7B-Instruct-v0.2"

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# 使用聊天模板
messages = [
    {"role": "user", "content": "请解释什么是机器学习。"}
]

inputs = tokenizer.apply_chat_template(
    messages,
    return_tensors="pt"
)

outputs = model.generate(inputs, max_new_tokens=512)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)

2.3 使用Ollama(本地运行,最简单)

Mistral在Ollama上有官方支持,是最简单的使用方式。

安装和使用

bash
# 安装Ollama(macOS/Linux)
curl -fsSL https://ollama.com/install.sh | sh

# 运行Mistral 7B
ollama run mistral

# 运行Mixtral 8x7B(需要更多资源)
ollama run mixtral

Python代码示例

python
import ollama

# 单次对话
response = ollama.chat(
    model='mistral',
    messages=[
        {'role': 'user', 'content': '请解释什么是过拟合(overfitting)。'}
    ]
)
print(response['message']['content'])

2.4 核心提示词技巧

✅ 技巧1:使用正确的[INST]格式

python
# ❌ 错误的格式(性能会下降)
prompt = "请解释什么是机器学习。"

# ✅ 正确的格式
prompt = "[INST] 请解释什么是机器学习。 [/INST]"

✅ 技巧2:提供详细指令

Mistral的指令遵循能力中等,需要更详细的提示词。

python
prompt = """[INST] 你是一位资深的技术博客作者,擅长将复杂的技术概念用通俗易懂的语言表达出来。

任务:请写一篇关于「使用Docker容器化部署Python应用」的技术博客文章。

文章要求:
1. 目标读者:中级开发者(有Python基础,了解基本Linux命令)
2. 字数:2000-2500字
3. 包含以下部分:
   - 引言:为什么需要容器化(3-5个痛点)
   - Docker基础概念简介(镜像、容器、Dockerfile)
   - 实战:容器化一个Flask应用(完整代码示例)
   - Dockerfile最佳实践(5-7条)
   - docker-compose多服务编排(示例:Web + Redis + PostgreSQL)
   - 生产环境部署注意事项(安全、监控、日志)
   - 总结与延伸阅读
4. 每个部分都包含代码示例(Python或Bash)
5. 代码需要详细注释
6. 风格:专业但亲和,避免过于学术化
7. 输出格式:Markdown

非常重要:请确保文章结构清晰,代码可直接运行。 [/INST]"""

✅ 技巧3:少样本提示(Few-Shot)

python
prompt = """[INST] 我将给你展示情感分析的示例,然后你分析新句子。

示例1:
输入:这个产品真的太棒了,超出我的预期!
输出:{"sentiment": "positive", "confidence": 0.95, "reason": "用户使用了'太棒了'、'超出预期'等正面词汇。"}

示例2:
输入:质量一般,性价比不高,不推荐购买。
输出:{"sentiment": "negative", "confidence": 0.88, "reason": "用户明确指出'不推荐购买',且提到性价比不高。"}

示例3:
输入:还算可以吧,没什么特别的。
输出:{"sentiment": "neutral", "confidence": 0.65, "reason": "用户没有明确表达满意或不满,态度中立。"}

现在请分析:
输入:质量太差了,浪费钱。
输出: [/INST]"""

✅ 技巧4:要求逐步思考(Chain-of-Thought)

python
prompt = """[INST] 请解决以下逻辑推理问题。在给出最终答案之前,请先逐步分析。

问题:所有的猫都是动物。有些动物会游泳。问:是否所有的猫都会游泳?

请按以下步骤思考:

1. **列出已知前提**
   - 前提1:所有的猫都是动物。
   - 前提2:有些动物会游泳。

2. **分析逻辑关系**
   - 前提1建立了"猫"和"动物"的包含关系。
   - 前提2只说明"有些"动物会游泳,不是"所有"动物。

3. **检查是否能推导出结论**
   - 我们知道猫是动物,但前提2只说"有些"动物会游泳。
   - "有些"不代表"所有"。

4. **寻找反例**
   - 如果"会游泳的动物"指的是鱼、海豚等,那么猫不在其中。
   - 所以,不能得出"所有的猫都会游泳"的结论。

5. **得出结论**
   - 最终答案:不能得出"所有的猫都会游泳"的结论。
   - 正确回答是:不确定/无法确定。

现在,请按照上述步骤,详细展示你的推理过程。 [/INST]"""

3. 写作任务提示词

3.1 文章写作

示例:技术博客文章

提示词

python
prompt = """[INST] 你是一位资深的技术作家,擅长撰写深度技术分析和教程。
你的文章逻辑清晰、例证丰富、适合中级到高级开发者阅读。

任务:请撰写一篇关于「微服务架构中的分布式事务管理」的深度技术文章。

关键要点:
1. 分布式事务的挑战(CAP定理、网络分区等)
2. 常见解决方案:
   - 两阶段提交(2PC)
   - 补偿事务(Saga模式)
   - 本地消息表
   - 最大努力通知
3. 各方案的优缺点对比
4. 实际案例分析(可以虚构一个电商场景)
5. 方案选择建议

文章结构:
1. 引言(300字):微服务架构的普及和分布式事务的挑战
2. 核心概念(500字):事务ACID、分布式事务定义
3. 解决方案详解(1200字):逐一介绍上述4种方案
4. 对比分析(400字):表格对比各方案
5. 实战案例(600字):电商订单系统的分布式事务设计
6. 总结与建议(300字)

要求:
- 总字数:3000-3500字
- 包含代码示例(Java或Python)
- 包含架构图描述(用文字描述,我会后续绘制)
- 使用表格对比不同方案
- 风格:专业、深入、实用
- 目标读者:有微服务实践经验的开发者
- 输出格式:Markdown

补充信息:
- 你可以引用知名公司的实际案例(如阿里巴巴、Netflix等)
- 如果有相关的开源框架(如Seata),可以提及 [/INST]"""

3.2 代码生成(Mistral的强项)

示例:Python函数编写

提示词

python
prompt = """[INST] 你是一个Python专家,擅长编写高质量、可维护的代码。
你的代码遵循PEP 8规范,包含详细注释和文档字符串。

任务:请编写一个Python函数,实现LRU(Least Recently Used)缓存机制。

要求:
1. 使用Python 3.9+语法
2. 实现以下方法:
   - `__init__(self, capacity: int)`: 初始化缓存
   - `get(self, key: int) -> int`: 获取键值,如果不存在返回-1
   - `put(self, key: int, value: int) -> None`: 插入或更新键值
3. 时间复杂度:get和put都必须是O(1)
4. 使用`collections.OrderedDict`实现
5. 包含详细注释
6. 添加文档字符串(docstring)
7. 提供使用示例
8. 分析时间和空间复杂度

输出格式:
## LRU缓存实现
[代码]

## 使用示例
[示例]

## 复杂度分析
- 时间复杂度:[分析]
- 空间复杂度:[分析]

## 测试
[单元测试代码] [/INST]"""

预期输出

python
## LRU缓存实现

```python
from collections import OrderedDict

class LRUCache:
    """
    LRU (Least Recently Used) Cache implementation.

    This cache evicts the least recently used item when capacity is exceeded.
    Both get and put operations run in O(1) time complexity.
    """

    def __init__(self, capacity: int):
        """Initialize the LRU cache with given capacity."""
        self.capacity = capacity
        self.cache = OrderedDict()

    def get(self, key: int) -> int:
        """
        Get value by key. Returns -1 if key doesn't exist.

        Args:
            key: The key to look up.

        Returns:
            The value associated with the key, or -1 if not found.
        """
        if key not in self.cache:
            return -1
        # Move to end to mark as recently used
        self.cache.move_to_end(key)
        return self.cache[key]

    def put(self, key: int, value: int) -> None:
        """
        Insert or update a key-value pair.

        Args:
            key: The key to insert or update.
            value: The value to associate with the key.
        """
        if key in self.cache:
            # Update value and mark as recently used
            self.cache.move_to_end(key)
        self.cache[key] = value
        if len(self.cache) > self.capacity:
            # Remove least recently used item
            self.cache.popitem(last=False)

# Usage example
if __name__ == "__main__":
    cache = LRUCache(2)
    cache.put(1, 1)
    cache.put(2, 2)
    print(cache.get(1))  # Returns 1
    cache.put(3, 3)      # Evicts key 2
    print(cache.get(2))  # Returns -1 (not found)

复杂度分析

  • 时间复杂度
    • get(): O(1) - OrderedDict lookup and move_to_end are O(1)
    • put(): O(1) - OrderedDict insertion and popitem are O(1)
  • 空间复杂度
    • O(capacity) - We store at most capacity items in the OrderedDict

测试

python
import unittest

class TestLRUCache(unittest.TestCase):
    def test_basic_operations(self):
        cache = LRUCache(2)
        cache.put(1, 1)
        cache.put(2, 2)
        self.assertEqual(cache.get(1), 1)
        self.assertEqual(cache.get(2), 2)

    def test_eviction(self):
        cache = LRUCache(2)
        cache.put(1, 1)
        cache.put(2, 2)
        cache.put(3, 3)  # Should evict key 1
        self.assertEqual(cache.get(1), -1)
        self.assertEqual(cache.get(3), 3)

    def test_update_existing_key(self):
        cache = LRUCache(2)
        cache.put(1, 1)
        cache.put(1, 10)  # Update existing key
        self.assertEqual(cache.get(1), 10)

    def test_capacity_one(self):
        cache = LRUCache(1)
        cache.put(1, 1)
        self.assertEqual(cache.get(1), 1)
        cache.put(2, 2)
        self.assertEqual(cache.get(1), -1)
        self.assertEqual(cache.get(2), 2)

if __name__ == "__main__":
    unittest.main()

---

## 4. 代码开发提示词

### 4.1 JSON输出(Mistral的强项)

Mistral特别擅长生成JSON格式输出,这是它的核心优势之一。

#### 示例:情感分析(强制JSON输出)

**提示词**:

```python
prompt = """[INST] 请分析以下句子的情感,并以JSON格式输出结果。

句子:"这个产品真的很棒,超出我的预期!"

输出格式(严格遵守):
{
  "sentiment": "[Positive/Neutral/Negative]",
  "confidence": [0-1之间的数值],
  "reason": "[简要说明]"
}

非常重要:
1. 必须是合法的JSON
2. 不要添加任何JSON以外的内容
3. 使用双引号,不要使用单引号
4. Just generate the JSON object without explanations [/INST]"""

技巧:在提示词中明确说"Just generate the JSON object without explanations",可以显著减少Mistral输出额外文本的概率。

示例:数据提取(JSON格式)

提示词

python
prompt = """[INST] 从以下文本中提取关键信息,并以JSON格式输出。

文本:
"""
张三,男性,35岁,高级工程师,在北京工作,月薪35000元,
联系方式:zhangsan@example.com,电话:13800138000
"""

输出JSON格式:
{
  "name": "[姓名]",
  "gender": "[男/女]",
  "age": [年龄],
  "occupation": "[职业]",
  "location": "[工作地点]",
  "salary": "[月薪]",
  "email": "[邮箱]",
  "phone": "[电话]"
}

要求:
1. 只输出JSON,不要有任何其他文本
2. 确保JSON格式合法
3. 如果某个字段无法提取,设为null [/INST]"""

4.2 代码审查

示例:Python代码审查

提示词

python
code_to_review = """
import mysql.connector
import hashlib

def register_user(username, password, email):
    conn = mysql.connector.connect(
        host="localhost",
        user="root",
        password="password123",
        database="user_db"
    )
    cursor = conn.cursor()

    hashed_pwd = hashlib.md5(password.encode()).hexdigest()

    sql = "INSERT INTO users (username, password, email) VALUES ('" + username + "', '" + hashed_pwd + "', '" + email + "')"
    cursor.execute(sql)
    conn.commit()

    cursor.close()
    conn.close()

    return "User registered successfully"
"""

prompt = f"""[INST] 你是一位资深代码审查专家,擅长发现代码中的bug、性能问题、安全漏洞和可维护性问题。

任务:请审查以下Python代码,并提供详细的审查报告。

代码:
```python
{code_to_review}

审查维度: 请从以下维度审查代码:

  1. 安全性

    • SQL注入漏洞
    • 密码哈希方法的安全性
    • 敏感信息硬编码
  2. 代码质量

    • 命名规范
    • 代码重复
    • 函数设计
  3. 错误处理

    • 异常处理
    • 资源管理

输出格式:

执行摘要

[总体评价]

详细问题列表

🔴 严重问题

[列出严重问题]

🟡 中等问题

[列出中等问题]

🟢 轻微问题

[列出轻微问题]

改进建议

[针对每个问题提供改进建议]

重构后的代码

[提供改进后的完整代码] [/INST]"""


---

## 5. 数据分析提示词

### 5.1 数据解读

#### 示例:销售数据分析

**提示词**:

```python
data = """
日期,销售额,订单数,客单价,活跃用户数,退货率,广告支出
2024-04-01,150000,500,300,1200,5.2%,15000
2024-04-08,165000,550,300,1250,5.0%,18000
2024-04-15,170000,520,327,1300,4.8%,20000
"""

prompt = f"""[INST] 你是一位数据分析师,擅长从数据中提取业务洞察,并提供可操作的建议。

任务:请分析以下电商平台的销售数据,并提取关键洞察。

数据(CSV格式):


分析要求:
请完成以下分析:

1. **数据概览**
   - 数据时间范围
   - 核心指标的变化趋势

2. **关键指标分析**
   - 销售额增长率(按周)
   - 订单数增长率
   - 客单价变化趋势
   - 活跃用户增长
   - 退货率趋势
   - 广告支出回报率(ROAS)分析

3. **业务洞察**
   - 至少提取3个关键洞察
   - 每个洞察都应该有数据支撑

4. **建议**
   - 提供至少2条可操作的业务建议
   - 建议应该基于数据分析结果

输出格式:
请以Markdown格式输出分析报告,包含:
- 标题和章节结构
- 表格(用于展示数据和对比)
- 要点列表
- 结论和建议

非常重要:请基于数据说话,不要添加数据中没有的信息。 [/INST]"""

6. 推理任务提示词

6.1 逻辑推理

示例:演绎推理

提示词

python
prompt = """[INST] 你是一位逻辑推理专家,擅长演绎推理、归纳推理和批判性思维。

任务:请解决以下逻辑推理问题,并详细展示推理过程。

问题:
所有的哺乳动物都是脊椎动物。
所有的猫都是哺乳动物。
请问:所有的猫都是脊椎动物吗?

推理步骤:
请按以下步骤推理:

1. **理解问题**:重述问题,确保准确理解。
2. **列出已知前提**:清晰列出所有给定的前提。
3. **分析逻辑关系**:识别前提之间的逻辑关联。
4. **应用推理规则**:使用演绎推理(如三段论)。
5. **检查有效性**:验证推理过程是否符合逻辑规则。
6. **得出结论**:给出明确的最终答案。

输出格式:
请以清晰的Markdown格式输出推理过程,包含:
- 标题和分节
- 逻辑符号(如⊆表示包含于)
- 示范性解释
- 结论的明确表述 [/INST]"""

7. 高级技巧

7.1 使用系统提示(System Prompt)

虽然Mistral没有像OpenAI那样显式的"system message",但可以通过在开头添加指令来模拟。

python
system_prompt = """<s>[INST] You are a helpful assistant. You always answer questions truthfully and accurately. If you are unsure about something, say "I don't know" instead of making up information.

[用户的问题] [/INST]"""

# 注意:这不是官方推荐格式,Mistral主要通过Few-Shot学习行为

7.2 思维链(Chain-of-Thought)在Mistral中的应用

python
prompt = """[INST] 请解决以下数学问题。让我们逐步思考:

问题:一个游泳池有甲、乙两根水管。单开甲管,2小时注满;单开乙管,3小时注满。如果同时打开两根水管,需要多少小时注满游泳池?

让我们一步步分析:

步骤1:理解问题
- 甲管单独注满需要2小时,意味着甲管每小时注满1/2个游泳池。
- 乙管单独注满需要3小时,意味着乙管每小时注满1/3个游泳池。

步骤2:建立数学模型
- 当两根水管同时打开时,它们的注水速度相加。
- 总速度 = 甲管速度 + 乙管速度 = 1/2 + 1/3

步骤3:计算总速度
- 1/2 + 1/3 = 3/6 + 2/6 = 5/6
- 所以两根水管同时工作,每小时注满5/6个游泳池。

步骤4:计算所需时间
- 时间 = 总工作量 ÷ 速度 = 1 ÷ (5/6) = 6/5 = 1.2小时

步骤5:转换为分钟(可选)
- 1.2小时 = 1小时12分钟

步骤6:验证答案
- 检查:1.2小时内,甲管注入了1.2 × (1/2) = 0.6个游泳池
- 乙管注入了1.2 × (1/3) = 0.4个游泳池
- 总计:0.6 + 0.4 = 1.0个游泳池 ✓

最终答案:需要1.2小时(或1小时12分钟)。

现在,请使用相同的步骤,解决以下新问题:
问题:如果丙管单独注满需要4小时,那么三根水管(甲、乙、丙)同时打开,需要多少小时注满游泳池? [/INST]"""

8. 配置参数建议

8.1 Temperature(温度)

控制生成文本的随机性。

任务类型推荐Temperature说明
事实性任务(翻译、摘要、问答)0.1 - 0.3低温度使输出更确定、一致
平衡任务(通用对话、解释)0.3 - 0.7适度随机性,保持连贯
创意任务(写作、头脑风暴)0.7 - 1.0高温度增加多样性和创意
代码生成0.2 - 0.5较低温度确保语法正确

使用Ollama的示例

python
response = ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': '请将以下句子翻译成法语:[句子]'}],
    options={'temperature': 0.2}  # 低温度确保翻译准确
)

response = ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': '写一个关于太空探险的短篇故事'}],
    options={'temperature': 0.85}  # 高温度增加创意
)

8.2 Top P(核采样)

控制生成时考虑的token范围。

建议

  • 一般任务:top_p=0.95(默认)
  • 需要高质量输出:top_p=0.99
  • 需要更多多样性:top_p=0.9
python
response = ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': '生成10个创意产品名称'}],
    options={
        'temperature': 0.8,
        'top_p': 0.95  # 从高概率token中采样
    }
)

8.3 Num Predict(最大生成长度)

控制模型生成的最大token数。

建议

  • 简单任务:100-300 tokens
  • 中等任务(摘要、解释):300-1000 tokens
  • 复杂任务(文章、代码):1000-4000 tokens
python
response = ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': '写一篇关于气候变化的文章'}],
    options={
        'num_predict': 2000,  # 限制输出长度约1500字
        'temperature': 0.7
    }
)

8.4 推荐配置组合

配置1:精准翻译任务

python
{
    "model": "mistral",
    "temperature": 0.2,
    "top_p": 0.9,
    "num_predict": 500
}

配置2:创意写作

python
{
    "model": "mistral",
    "temperature": 0.85,
    "top_p": 0.95,
    "num_predict": 4096
}

配置3:代码生成

python
{
    "model": "mistral",
    "temperature": 0.3,
    "top_p": 0.95,
    "num_predict": 3000
}

配置4:JSON输出

python
{
    "model": "mistral",
    "temperature": 0.2,  # 低温度确保格式一致
    "top_p": 0.9,
    "num_predict": 1000,
    "stop": ["</s>"]  # 遇到</s>时停止
}

9. 常见错误与解决方案

9.1 提示词格式错误

问题描述:没有使用[INST]...[/INST]格式,导致模型性能下降。

解决方案

python
# ❌ 错误的格式
prompt = "请解释什么是机器学习。"

# ✅ 正确的格式
prompt = "[INST] 请解释什么是机器学习。 [/INST]"

9.2 输出格式不符合要求

问题描述:期望JSON输出,但Mistral输出纯文本。

解决方案

方法1:在提示词中明确说明

python
prompt = """[INST] 请分析以下句子的情感,并以JSON格式输出结果。

句子:"这个产品真的很棒,超出我的预期!"

输出格式(严格遵守):
{
  "sentiment": "[Positive/Neutral/Negative]",
  "confidence": [0-1之间的数值],
  "reason": "[简要说明]"
}

非常重要:
1. 必须是合法的JSON
2. 不要添加任何JSON以外的内容
3. Just generate the JSON object without explanations [/INST]"""

方法2:使用少样本示例

python
prompt = """[INST] 请学习以下情感分析的输出格式,然后分析新句子。

示例1:
输入:这个产品真的太棒了,超出我的预期!
输出:{"sentiment": "Positive", "confidence": 0.95, "reason": "用户使用了'太棒了'、'超出预期'等正面词汇。"}

示例2:
输入:质量一般,性价比不高,不推荐购买。
输出:{"sentiment": "Negative", "confidence": 0.88, "reason": "用户明确指出'不推荐购买',且提到性价比不高。"}

现在请分析:
输入:还算可以吧,没什么特别的。
输出: [/INST]"""

9.3 输出过于冗长

问题描述:Mistral输出过长,超出预期。

解决方案

方法1:明确指定字数要求

python
prompt = """[INST] 请写一篇关于人工智能的短文。

要求:
1. 字数:500-600字(严格遵守)
2. 包含3个主要观点
3. 每个观点用一段话阐述

非常重要:请确保字数在500-600字之间,不要超出。 [/INST]"""

方法2:设置num_predict限制

python
response = ollama.chat(
    model='mistral',
    messages=[{'role': 'user', 'content': '写一篇关于人工智能的短文,500-600字。'}],
    options={'num_predict': 800}  # 约500-600字
)

10. 实用提示词模板

模板1:JSON数据提取

python
prompt = """[INST] 从以下文本中提取关键信息,并以JSON格式输出。

文本:
"""
[在此粘贴文本内容]
"""

输出JSON格式:
{
  "field1": "[值1]",
  "field2": "[值2]",
  ...
}

要求:
1. 只输出JSON,不要有任何其他文本
2. 确保JSON格式合法
3. 如果某个字段无法提取,设为null
4. Just generate the JSON object without explanations [/INST]"""

模板2:代码生成(Python)

python
prompt = """[INST] 你是一个[语言]高级开发工程师,
擅长[领域,如:Web开发/数据科学/算法实现]。

任务:请编写一个[函数/类/完整程序],实现[功能描述]。

具体需求:
1. [需求1]
2. [需求2]
3. [需求3]
...

技术要求:
- 编程语言:[语言及版本]
- 框架/库:[列出需要的框架]
- 代码规范:[如:PEP 8/Airbnb Style]
- 性能要求:[如:时间复杂度O(n log n)]

输出要求:
1. 完整的可运行代码
2. 详细注释
3. 文档字符串(docstring)
4. 使用示例
5. 单元测试
6. 复杂度分析 [/INST]"""

模板3:数据分析和可视化建议

python
prompt = """[INST] 你是一位数据分析师和可视化专家。

任务:我有以下数据,请帮我分析并推荐合适的可视化方案。

数据描述:
- 数据来源:[描述数据来源]
- 数据规模:[行数、列数]
- 字段列表:[列出字段名和含义]
- 示例数据:[提供几行示例数据]

分析目标:
基于数据特点,我可能想要了解:
1. [分析目标1,如:趋势分析]
2. [分析目标2,如:对比分析]
3. [分析目标3,如:相关性分析]

请完成以下任务:

1. **数据理解**
   - 各字段的数据类型
   - 数据质量评估(缺失值、异常值等)

2. **可视化推荐**
   对每个分析目标,推荐:
   - 最佳图表类型(如:折线图、柱状图、散点图等)
   - 推荐理由
   - 设计建议(颜色、标签、图例等)

3. **分析建议**
   - 除了可视化,还可以进行哪些统计分析?
   - 如何深入挖掘数据价值?

输出格式:
请以Markdown格式输出,包含:
- 标题和分节
- 表格(用于对比不同图表类型)
- 图表描述(用文字描述预期的图表效果)
 [/INST]"""

11. 参考资料

官方文档

  1. Mistral AI Documentation
    https://docs.mistral.ai/
    Mistral AI的官方文档,包含模型介绍、API参考、快速入门。

  2. Mistral 7B Paper
    https://arxiv.org/abs/2310.06825
    Mistral 7B的技术报告。

  3. Mixtral 8x7B Paper
    https://arxiv.org/abs/2401.04088
    Mixtral 8x7B的技术报告,介绍Mixture of Experts架构。

社区资源

  1. Mistral AI on Hugging Face
    https://huggingface.co/mistralai
    Mistral AI的官方模型仓库,可以下载模型权重。

  2. Ollama - Mistral
    https://ollama.com/library/mistral
    使用Ollama运行Mistral的最简单方式。

  3. Awesome Mistral
    https://github.com/awaiting/mistral-ai
    Mistral AI相关的资源、项目、教程集合。

教程

  1. Running Mistral 7B Locally with Ollama
    https://ollama.com/library/mistral
    Ollama的Mistral使用指南。

  2. Fine-tuning Mistral 7B with LoRA
    https://www.databricks.com/blog/fine-tuning-mistral-7b
    Databricks提供的Mistral 7B微调教程。


📝 更新日志

  • 2026-05-18:初始版本发布,完成Mistral AI提示词指南
  • 包含Mistral 7B/Mixtral 8x7B的详细提示词技巧
  • 涵盖写作、代码、数据分析、推理等主流场景
  • 提供丰富的实用示例和可复用模板

🤝 贡献与反馈

如果你发现任何错误或有改进建议,欢迎:

  • 提交Issue进行讨论
  • 提交Pull Request贡献内容
  • 分享你的提示词使用技巧

📄 许可证

本文档采用 MIT 许可证。可自由使用、修改和分发。


最后更新时间:2026年5月18日
作者:AI Engineering Team
版本:v1.0