deepseek-r1模型推理多次提问
时间: 2025-03-02 16:04:55 浏览: 84
### 使用 DeepSeek-R1 模型执行多轮问答推理
为了实现基于 DeepSeek-R1 的多轮对话推理,通常需要设置一个交互式的环境来处理连续的输入并维持上下文记忆。下面是一个具体的 Python 实现方案:
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
# 加载预训练模型和分词器
model_name = "deepseek-ai/DeepSeek-R1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
def generate_response(context_history, user_input):
"""
根据历史记录生成回复
参数:
context_history (list): 历史对话列表
user_input (str): 用户当前输入
返回:
str: 模型生成的回答
"""
# 合并历史对话与新问题形成完整的提示串
full_context = "\n".join([*context_history, f"User: {user_input}"])
inputs = tokenizer(full_context, return_tensors="pt").input_ids.to('cuda')
outputs = model.generate(
inputs,
max_length=500,
num_return_sequences=1,
no_repeat_ngram_size=2,
top_p=0.95,
temperature=0.7
)
response_text = tokenizer.decode(outputs[0], skip_special_tokens=True).split("Assistant:")[-1].strip()
return response_text
history = [] # 初始化会话历史为空列表
while True:
query = input("请输入您的问题(或按 q 退出):")
if query.lower() == 'q':
break
answer = generate_response(history, query)
print(f"\nAI Answer:\n{answer}\n")
history.append(f"User: {query}")
history.append(f"Assistant: {answer}")
```
此脚本创建了一个简单的命令行界面,在其中可以持续向 AI 提问,并让其记住之前的交流以便更好地理解后续的问题[^1]。
阅读全文
相关推荐

















