当前位置: 首页 > 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':</

相关文章:

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

为了确保这段代码能够在Windows和Linux系统上都能正常运行,我考虑以下几个方面: 路径分隔符:在Windows和Linux中,文件路径的分隔符不同。Windows使用反斜杠(\),而Linux使用正斜杠(/)。我们可以使用 os.path.join 来处理路径,以确保跨平台兼容性。 消息框:tkinter.…...

国家队出手!DeepSeek上线国家超算互联网平台!

目前,国家超算互联网平台已推出 DeepSeek – R1 模型的 1.5B、7B、8B、14B 版本,后续还会在近期更新 32B、70B 等版本。 DeepSeek太火爆了!在这个春节档,直接成了全民热议的话题。 DeepSeek也毫无悬念地干到了全球增速最快的AI应用。这几天,国内的云计算厂家都在支持Dee…...

Deep seek学习日记1

Deepseek最强大的就是它的深度思考&#xff0c;并且展现了它的思考过程。 五种可使用Deep seek的方式&#xff08;应该不限于这五种&#xff0c;后续嵌入deepseek的应该更多&#xff0c;多了解一点因为官网容易崩~~&#xff09;&#xff1a; 1.deep seek官网 2.硅基流动silicon…...

乐理笔记(持续更新)

单音与音程 单音&#xff1a;由一个音组成。 音程&#xff1a;由两个音组成&#xff0c;表示两个音之间的音高距离。 如何数音程&#xff1a; 单音程&#xff1a;9 - X&#xff0c;性质相反。例如&#xff0c;9度音程减去某个数&#xff0c;性质会相反。 复音程&#xff1a…...

【动态路由】系统Web URL资源整合系列(后端技术实现)【nodejs实现】

需求说明 软件功能需求&#xff1a;反向代理功能&#xff08;描述&#xff1a;apollo、eureka控、apisix、sentinel、普米、kibana、timetask、grafana、hbase、skywalking-ui、pinpoint、cmak界面、kafka-map、nacos、gateway、elasticsearch、 oa-portal 业务应用等多个web资…...

PHP高效、轻量级表格数据处理库 OpenSpout ,很好用

OpenSpout 是一个高效、轻量级的 PHP 库&#xff0c;用于处理电子表格文件&#xff08;如 Excel 和 CSV&#xff09;。它支持读取和写入大型文件&#xff0c;且内存占用低。本文将详细介绍如何安装和使用 OpenSpout。 目录 安装 基本使用 高级功能 参考文档 安装 OpenSp…...

2010年上半年软件设计师考试上午真题的知识点整理(附真题及答案解析)

以下是2010年上半年软件设计师考试上午真题的知识点分类整理&#xff0c;涉及定义的详细解释&#xff0c;供背诵记忆。 1. 计算机组成原理 CPU与存储器的访问。 Cache的作用: 提高CPU访问主存数据的速度&#xff0c;减少访问延迟。存储器的层次结构: 包括寄存器、Cache、主存和…...

EventSource的使用

什么是EventSource EventSource 是一个用于服务器推送事件&#xff08;Server-Sent Events, SSE&#xff09;的接口&#xff0c;它允许服务器推送实时更新到浏览器。与 WebSocket 不同&#xff0c;SSE 是单向的&#xff08;服务器到客户端&#xff09;&#xff0c;适用于更新频…...

【第12章:深度学习与伦理、隐私—12.3 深度学习模型的透明性与可解释性提升策略】

凌晨三点的ICU病房,AI辅助诊断系统将一位患者的肺炎误判为普通感冒——当主治医生要求查看诊断依据时,系统只能给出冷冰冰的概率数值。这场惊心动魄的误诊事件,掀开了深度学习可解释性危机的冰山一角。 一、模型透明的"第一性原理" 1.1 可解释性的三维度量 ![可…...

RocketMq中RouteInfoManger组件的源码分析

1.前言 RouteInfoManager 是 RocketMQ 中 NameServer 的核心组件之一&#xff0c;主要负责管理和维护整个 RocketMQ 集群的路由元数据信息。里面包含一些非常核心的功能&#xff1a;存储和管理 Broker 信息&#xff08;broker的注册&#xff0c;broker心跳的维护&#xff09;&…...

java八股文-mysql

1. 索引 1.1 什么是索引 索引(index)是帮助Mysql高效获取数据的数据结构(有序).提高数据的检索效率,降低数据库的IO成本(不需要全表扫描).通过索引列对数据进行排序,降低数据排序成本,降低了CPU的消耗. 1.2 mysql索引使用的B树? 1. 没有使用二叉树&#xff0c;最坏情况o&…...

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中&#xff0c;通过文本替换的方式来实现一些操作&#xff0c;这样可以不用反复的输入代码&#xff0c;帮助我们实现自动化。至于预处理的过程&#xff0c;其实就是文本编辑&am…...

MybatisMybatisPllus公共字段填充与配置逻辑删除

Mybatis/MybatisPllus公共字段填充与配置逻辑删除 在开发过程中&#xff0c;很多时候需要处理一些公共字段&#xff0c;例如&#xff1a;创建时间、修改时间、状态字段等。这些字段通常会在插入或更新数据时进行填充&#xff0c;以便记录数据的变化和状态。同时&#xff0c;逻…...

VS Code User和System版区别【推荐使用System版本】and VSCode+Keil协同开发之Keil Assistant

VS Code User和System版区别 Chapter1 VS Code User和System版区别1. 对于安装而言2. 结束语 Chapter2 VS Code 安装、配置教程及插件推荐插件&#xff1a; Chapter3 VSCodeKeil协同开发之Keil Assistant1. 效果展示2. Keil Assistant简介3. Keil Assistant功能特性4. 部署步骤…...

MongoDB:listDatabases failed : not master and slaveOk=false

个人博客地址&#xff1a;MongoDB&#xff1a;listDatabases failed : not master and slaveOkfalse | 一张假钞的真实世界 异常描述 如果在MongoDB的SECONDARY上查询数据时会报如下错误信息&#xff1a; > show databases; 2018-09-20T17:40:55.3770800 E QUERY [thread…...

Python的那些事第二十二篇:基于 Python 的 Django 框架在 Web 开发中的应用研究

基于 Python 的 Django 框架在 Web 开发中的应用研究 摘要 Django 是一个基于 Python 的高级 Web 框架,以其开发效率高、安全性和可扩展性强等特点被广泛应用于现代 Web 开发。本文首先介绍了 Django 的基本架构和核心特性,然后通过一个实际的 Web 开发项目案例,展示了 Dj…...

【ISO 14229-1:2023 UDS诊断(会话控制0x10服务)测试用例CAPL代码全解析④】

ISO 14229-1:2023 UDS诊断【会话控制0x10服务】_TestCase04 作者&#xff1a;车端域控测试工程师 更新日期&#xff1a;2025年02月15日 关键词&#xff1a;UDS诊断、0x10服务、诊断会话控制、ECU测试、ISO 14229-1:2023 TC10-004测试用例 用例ID测试场景验证要点参考条款预期…...

图论入门算法:拓扑排序(C++)

上文中我们了解了图的遍历(DFS/BFS), 本节我们来学习拓扑排序. 在图论中, 拓扑排序(Topological Sorting)是对一个有向无环图(Directed Acyclic Graph, DAG)的所有顶点进行排序的一种算法, 使得如果存在一条从顶点 u 到顶点 v 的有向边 (u, v) , 那么在排序后的序列中, u 一定…...

【CXX】2 CXX blobstore客户端说明

本示例演示了一个调用blobstore服务的C客户端的Rust应用程序。事实上&#xff0c;我们会看到两个方向的调用&#xff1a;Rust到C以及C到Rust。对于您自己的用例&#xff0c;您可能只需要其中一个方向。 示例中涉及的所有代码都显示在此页面上&#xff0c;但它也以可运行的形式提…...

HTTP相关面试题

HTTP/1.1、HTTP/2、HTTP/3 演变 HTTP/1.1 相比 HTTP/1.0 提高了什么性能&#xff1f; HTTP/1.1 相⽐ HTTP/1.0 性能上的改进&#xff1a; 使⽤长连接的⽅式改善了 HTTP/1.0 短连接造成的性能开销。⽀持管道&#xff08;pipeline&#xff09;网络传输&#xff0c;只要第⼀个请…...

【深度解析】从 Chatbot 到 AI 数字队友:Claude 高阶能力、模型选型与 API 实战

摘要 本文基于 Claude 高阶使用方法&#xff0c;系统拆解 Memory、Projects、Artifacts、Code Execution、Computer Use 等能力&#xff0c;并结合 OpenAI 兼容 API 给出 Python 实战示例&#xff0c;帮助开发者构建更稳定、可复用的 AI 工作流。背景介绍&#xff1a;为什么很多…...

小红书上的“三天写完论文”是真的吗?我试了,真的

生成式人工智能技术的飞速发展&#xff0c;正深刻重塑高校学术写作的范式与流程。传统学术创作长期面临选题模糊、框架搭建困难、文献处理繁琐、格式排版机械、重复率与 AIGC 检测压力大等多重痛点&#xff0c;严重挤占学生科研思考与核心创作的时间精力。以智能学术写作平台为…...

为什么你的ComfyUI-Impact-Pack节点总失效?3个架构洞察与5个配置关键点

为什么你的ComfyUI-Impact-Pack节点总失效&#xff1f;3个架构洞察与5个配置关键点 【免费下载链接】ComfyUI-Impact-Pack Custom nodes pack for ComfyUI This custom node helps to conveniently enhance images through Detector, Detailer, Upscaler, Pipe, and more. 项…...

从零到自动化:用Python+PyNX快速上手UG二次开发,告别C语言恐惧

从零到自动化&#xff1a;用PythonPyNX快速上手UG二次开发&#xff0c;告别C语言恐惧 UG NX作为工业设计领域的标杆软件&#xff0c;其二次开发能力一直是工程师提升效率的利器。但传统基于C/C的开发方式让许多设计师望而却步——复杂的语法、繁琐的内存管理、漫长的编译过程&a…...

基于RAG与本地大模型的智能文档管理:从原理到实践部署

1. 项目概述&#xff1a;当GPT遇上无纸化办公如果你和我一样&#xff0c;每天都要和一堆PDF、Word文档、扫描件打交道&#xff0c;那你肯定对“无纸化办公”这个词又爱又恨。爱的是它理论上能让我们摆脱堆积如山的文件&#xff0c;恨的是现实往往是——文件是电子化了&#xff…...

车辆换挡缓冲阀结构设计与优化AMESim仿真【附代码】

✨ 本团队擅长数据搜集与处理、建模仿真、程序设计、仿真代码、EI、SCI写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流&#xff0c;查看文章底部二维码&#xff08;1&#xff09;缓冲阀动力学建模与AMESim参数化仿真&#xff1a;所…...

DesignPatternsPHP:遗留系统改造的10个终极模式指南

DesignPatternsPHP&#xff1a;遗留系统改造的10个终极模式指南 【免费下载链接】DesignPatternsPHP Sample code for several design patterns in PHP 8.x 项目地址: https://gitcode.com/gh_mirrors/de/DesignPatternsPHP DesignPatternsPHP是一个专注于PHP 8.x设计模…...

娱乐圈天降紫微星自带气运,海棠山铁哥无背景照样登顶巅峰

真正的强者&#xff0c;命里自带光芒&#xff0c;不需要外界加持。01 行业迷信 娱乐圈向来迷信 资源、背景、人脉、资本。 没有靠山 ≈ 没有姓名。02 假紫微星 背靠大平台、手握老牌 IP、团队全程包装。 作品流水线代工&#xff0c;离开资本托举立刻露馅。 声势浩大&#xff0c…...

GameDocGenSkill:基于代码即文档理念的游戏设计自动化生成方案

1. 项目概述与核心价值最近在游戏开发社区里&#xff0c;一个名为“GameDocGenSkill”的项目引起了我的注意。这个项目由开发者 maqingwen2 发起&#xff0c;其核心目标直指一个困扰了无数游戏开发团队的老大难问题&#xff1a;如何高效、规范地生成和管理游戏设计文档。如果你…...

Cortex-R82异常处理与调试机制深度解析

1. Cortex-R82异常处理架构解析在嵌入式实时系统中&#xff0c;异常处理机制直接决定了系统的可靠性和响应速度。Cortex-R82作为面向汽车电子和工业控制的高性能实时处理器&#xff0c;其异常处理架构设计体现了三个核心特征&#xff1a;确定性响应&#xff1a;所有异常入口和返…...