- 方式一
import requests
import json
import sys
class DeepseekChat:
def __init__(self, base_url="http://127.0.0.1:11434"):
self.base_url = base_url
self.api_endpoint = f"{base_url}/api/chat"
def chat(self, message, model="deepseek-r1:14b"):
payload = {
"model": model,
"messages": [
{
"role": "user",
"content": message
}
],
"options": {
"temperature": 0.7,
"top_p": 0.9
}
}
try:
response = requests.post(self.api_endpoint, json=payload, stream=True)
response.raise_for_status()
full_response = ""
print("\nDeepseek: ", end='', flush=True)
has_content = False
for line in response.iter_lines():
if line:
json_response = json.loads(line)
if 'message' in json_response:
content = json_response['message'].get('content', '')
if content and not ('<think>' in content or '</think>' in content):
if not has_content:
content = content.lstrip('\n')
full_response += content
print(content, end='', flush=True)
has_content = True
print()
return full_response
except requests.exceptions.RequestException as e:
return f"发生错误: {str(e)}"
except json.JSONDecodeError as e:
return f"JSON解析错误: {str(e)}"
except KeyboardInterrupt:
print("\n\n对话被中断")
return ""
def main():
chat = DeepseekChat()
print("欢迎使用Deepseek聊天机器人! (输入'退出'结束对话)")
try:
while True:
try:
user_input = input("\n你: ")
if user_input.lower() in ['退出', 'quit', 'exit']:
print("再见!")
break
response = chat.chat(user_input)
except KeyboardInterrupt:
print("\n\n再见!")
break
except Exception as e:
print(f"\n发生错误: {str(e)}")
sys.exit(1)
if __name__ == "__main__":
main()
- 方式二
import ollama
if __name__ == '__main__':
res = ollama.chat(model='deepseek-r1:14b', stream=False, messages=[{'role': 'user', 'content': '今天是多少号,星期几?'}])
print(res['message']['content'])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具