当前位置: 首页 > 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 = 150TIMEOUT = 10MODEL = 'deepseek-7b'# 当前使用的API节点
CURRENT_API_URL = API_NODES[0]# 存储对话历史
conversation_history = []def get_response(prompt):headers = {'Authorization':</
http://www.lryc.cn/news/538245.html

相关文章:

  • 国家队出手!DeepSeek上线国家超算互联网平台!
  • Deep seek学习日记1
  • 乐理笔记(持续更新)
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】
  • PHP高效、轻量级表格数据处理库 OpenSpout ,很好用
  • 2010年上半年软件设计师考试上午真题的知识点整理(附真题及答案解析)
  • EventSource的使用
  • 【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】
  • RocketMq中RouteInfoManger组件的源码分析
  • java八股文-mysql
  • Cherno C++ P55 宏
  • MybatisMybatisPllus公共字段填充与配置逻辑删除
  • VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant
  • MongoDB:listDatabases failed : not master and slaveOk=false
  • Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究
  • 【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析④】
  • 图论入门算法:拓扑排序(C++)
  • 【CXX】2 CXX blobstore客户端说明
  • HTTP相关面试题
  • 关于XML映射器的基本问题
  • 【MyBatis】预编译SQL与即时SQL
  • Python--正则表达式
  • 【java面试】线程篇
  • 分布式光纤传感:为生活编织“感知密网”
  • cmake Qt Mingw windows构建
  • 无人机信号调制技术原理
  • 书评与笔记:《如何有效报告Bug》
  • 3.【线性代数】——矩阵乘法和逆矩阵
  • [JVM篇]虚拟机性能监控、故障处理工具
  • UniApp 中 margin 和 padding 属性的使用详解