当前位置: 首页 > news >正文

使用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':</

相关文章:

  • 【玩转全栈】----Django基本配置和介绍
  • sql语言语法的学习
  • 深入理解 MQTT 协议:物联网通信的核心
  • VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant
  • 常用查找算法整理(顺序查找、二分查找、插值查找、斐波那契查找、哈希查找、二叉排序树查找、平衡二叉树查找、红黑树查找、B树和B+树查找、分块查找)
  • 国产编辑器EverEdit - 如虎添翼的功能:快速选择
  • pycharm社区版有个window和arm64版本,到底下载哪一个?还有pycharm官网
  • Qt——连接MySQL数据库之编译数据库驱动的方法详细总结(各版本大同小异,看这一篇就够了)
  • CentOS系统docker配置镜像加速registry-mirrors,配置阿里云和道客
  • IDEA通过Contince接入Deepseek
  • QT 互斥锁
  • 初识React
  • 2025年 Java 技术的新趋势
  • FreeRTOS第3篇:链表的“精密齿轮”——列表与列表项
  • ubuntu桌面东西没了,右键只有更换壁纸,显示设置和设置
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_init 函数
  • 常用的网络安全设备
  • 我的docker随笔46:在x86平台构建龙芯镜像
  • (三)Axure制作转动的唱片
  • 牛客刷题自留-机械学习基础
  • 纪念|海上金石学的兴盛与王昶《金石萃编》
  • “上海-日喀则”直飞航线正式通航,将于5月1日开启首航
  • 广东一公司违规开展学科培训被罚没470万,已注销营业执照
  • “中国游”带火“中国购”,“即买即退”让外国游客购物更丝滑
  • AI应用大盘点:谁暴涨?谁掉队?
  • 五一假期“热潮”来袭,计划南下的小伙伴注意了