转自风车 拓展python脚本可用于智能回复任何场景,cursor项目文件下载地址:
https://www.123684.com/s/2ycWTd-Biv8h

cursor+python调用deepseek本地模型脚本和deepseek的本地AI模型部署

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:7b"):
        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() 
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐