使用DeepSeek建立一个智能聊天机器人0.12

为了确保这段代码能够在Windows和Linux系统上都能正常运行,我考虑以下几个方面:

路径分隔符:在Windows和Linux中,文件路径的分隔符不同。Windows使用反斜杠(\),而Linux使用正斜杠(/)。我们可以使用 os.path.join 来处理路径,以确保跨平台兼容性。

消息框:tkinter.messagebox 在不同操作系统上的表现可能会有所不同。确保使用 tkinter.messagebox 的标准方法来显示消息框。

文件对话框:tkinter.filedialog 用于打开和保存文件对话框。这些对话框在不同操作系统上的表现也有所不同,但 tkinter.filedialog 已经处理了大部分跨平台的问题。

线程处理:threading 模块在不同操作系统上的行为是一致的,因此不需要特别处理。

环境变量加载:dotenv 模块可以跨平台加载环境变量,确保在不同操作系统上都能正确读取环境变量。

以下是完善后的代码:

import tkinter as tk
from tkinter import scrolledtext, filedialog, messagebox
import requests
import os
import threading
import json
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 从环境变量中获取API密钥和DeepSeek的API端点
API_KEY = os.getenv('DEEPSEEK_API_KEY')
DEFAULT_API_URL = os.getenv('DEEPSEEK_API_URL', 'https://api.deepseek.com/v1/chat')

# 配置文件路径
CONFIG_FILE = os.path.join(os.getcwd(), 'config.json')

# 如果环境变量未设置,尝试从配置文件中读取
if not API_KEY or not DEFAULT_API_URL:
    try:
        with open(CONFIG_FILE, 'r') as f:
            config = json.load(f)
            API_KEY = config.get('API_KEY', API_KEY)
            DEFAULT_API_URL = config.get('DEFAULT_API_URL', DEFAULT_API_URL)
    except (FileNotFoundError, json.JSONDecodeError) as e:
        messagebox.showwarning("警告", f"配置文件加载失败: {
     str(e)}")
        API_KEY = ''
        DEFAULT_API_URL = 'https://api.deepseek.com/v1/chat'

# 从配置文件中读取多个API节点和其他配置
try:
    with open(CONFIG_FILE, 'r') as f:
        config = json.load(f)
        API_NODES = config.get('API_NODES', [DEFAULT_API_URL])
        MAX_TOKENS = config.get('MAX_TOKENS', 150)
        TIMEOUT = config.get('TIMEOUT', 10)
        MODEL = config.get('MODEL', 'deepseek-7b')
except (FileNotFoundError, json.JSONDecodeError) as e:
    messagebox.showwarning("警告", f"配置文件加载失败: {
     str(e)}")
    API_NODES = [DEFAULT_API_URL]
    MAX_TOKENS = 150
    TIMEOUT = 10
    MODEL = 'deepseek-7b'

# 当前使用的API节点
CURRENT_API_URL = API_NODES[0]

# 存储对话历史
conversation_history = []

def get_response(prompt):
    headers = {
   
        'Authorization':

你可能感兴趣的:(python,机器人,ipython)