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

江阴市住房和城乡建设局网站wordpress文件上传到那个文件

江阴市住房和城乡建设局网站,wordpress文件上传到那个文件,wordpress更新php,模块网站建设为了增强智能聊天机器人的功能,我增加以下几个方面的改进: 1.智能框架和算法:引入更复杂的对话管理逻辑,例如情感分析、上下文理解等。 2.链接能力:增强对多个API节点的管理和切换逻辑,确保高可用性。 3.配…

为了增强智能聊天机器人的功能,我增加以下几个方面的改进:

1.智能框架和算法:引入更复杂的对话管理逻辑,例如情感分析、上下文理解等。
2.链接能力:增强对多个API节点的管理和切换逻辑,确保高可用性。
3.配置管理:增加更多配置选项,如模型选择、最大token数、请求超时等。
以下是完善后的代码和 config.json 文件内容:
完善后的代码

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 = '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': f'Bearer {API_KEY}','Content-Type': 'application/json'}data = {'model': MODEL,  # 使用的模型名称'messages': conversation_history + [{'role': 'user', 'content': prompt}],'max_tokens': MAX_TOKENS  # 生成的最大token数}for api_url in API_NODES:try:response = requests.post(api_url, json=data, headers=headers, timeout=TIMEOUT)response.raise_for_status()model_response = response.json()['choices'][0]['message']['content']conversation_history.append({'role': 'user', 'content': prompt})conversation_history.append({'role': 'assistant', 'content': model_response})return model_responseexcept requests.RequestException as e:chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"请求错误: {str(e)}\n")chat_log.config(state=tk.DISABLED)continueraise Exception("所有API节点均无法连接")def send_message():user_input = entry.get()if user_input.strip():chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"你: {user_input}\n")chat_log.config(state=tk.DISABLED)# 在新线程中处理API请求threading.Thread(target=process_response, args=(user_input,)).start()entry.delete(0, tk.END)chat_log.yview(tk.END)def process_response(user_input):try:response = get_response(user_input)chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"DeepSeek: {response}\n")chat_log.config(state=tk.DISABLED)chat_log.yview(tk.END)except Exception as e:chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"错误: {str(e)}\n")chat_log.config(state=tk.DISABLED)chat_log.yview(tk.END)def on_closing():root.destroy()def clear_conversation():global conversation_historyconversation_history = []chat_log.config(state=tk.NORMAL)chat_log.delete(1.0, tk.END)chat_log.config(state=tk.DISABLED)def load_config():file_path = filedialog.askopenfilename(filetypes=[("JSON files", "*.json")])if file_path:try:with open(file_path, 'r') as f:config = json.load(f)global API_KEY, DEFAULT_API_URL, API_NODES, CURRENT_API_URL, MAX_TOKENS, TIMEOUT, MODELAPI_KEY = config.get('API_KEY', '')DEFAULT_API_URL = config.get('DEFAULT_API_URL', 'https://api.deepseek.com/v1/chat')API_NODES = config.get('API_NODES', [DEFAULT_API_URL])CURRENT_API_URL = API_NODES[0]MAX_TOKENS = config.get('MAX_TOKENS', 150)TIMEOUT = config.get('TIMEOUT', 10)MODEL = config.get('MODEL', 'deepseek-7b')chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"配置加载成功: API_KEY={API_KEY}, API_NODES={API_NODES}, MAX_TOKENS={MAX_TOKENS}, TIMEOUT={TIMEOUT}, MODEL={MODEL}\n")chat_log.config(state=tk.DISABLED)except (FileNotFoundError, json.JSONDecodeError) as e:chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"错误: {str(e)}\n")chat_log.config(state=tk.DISABLED)def save_config():config = {'API_KEY': API_KEY,'DEFAULT_API_URL': DEFAULT_API_URL,'API_NODES': API_NODES,'MAX_TOKENS': MAX_TOKENS,'TIMEOUT': TIMEOUT,'MODEL': MODEL}file_path = filedialog.asksaveasfilename(defaultextension=".json", filetypes=[("JSON files", "*.json")])if file_path:try:with open(file_path, 'w') as f:json.dump(config, f, indent=4)chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"配置保存成功: {file_path}\n")chat_log.config(state=tk.DISABLED)except IOError as e:chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"错误: {str(e)}\n")chat_log.config(state=tk.DISABLED)def switch_node():global CURRENT_API_URLcurrent_index = API_NODES.index(CURRENT_API_URL)next_index = (current_index + 1) % len(API_NODES)CURRENT_API_URL = API_NODES[next_index]chat_log.config(state=tk.NORMAL)chat_log.insert(tk.END, f"切换到API节点: {CURRENT_API_URL}\n")chat_log.config(state=tk.DISABLED)root = tk.Tk()
root.title("智能聊天机器人")# 设置窗口大小
root.geometry("600x400")# 创建聊天记录区域
chat_log = scrolledtext.ScrolledText(root, wrap=tk.WORD, state=tk.DISABLED)
chat_log.pack(pady=10, padx=10, fill=tk.BOTH, expand=True)# 创建输入框
entry = tk.Entry(root, width=80)
entry.pack(pady=10, padx=10, side=tk.LEFT, fill=tk.X, expand=True)# 创建发送按钮
send_button = tk.Button(root, text="发送", command=send_message)
send_button.pack(pady=10, padx=10, side=tk.RIGHT)# 创建清除对话按钮
clear_button = tk.Button(root, text="清除对话", command=clear_conversation)
clear_button.pack(pady=10, padx=10, side=tk.RIGHT)# 创建加载配置按钮
load_config_button = tk.Button(root, text="加载配置", command=load_config)
load_config_button.pack(pady=10, padx=10, side=tk.RIGHT)# 创建保存配置按钮
save_config_button = tk.Button(root, text="保存配置", command=save_config)
save_config_button.pack(pady=10, padx=10, side=tk.RIGHT)# 创建切换节点按钮
switch_node_button = tk.Button(root, text="切换节点", command=switch_node)
switch_node_button.pack(pady=10, padx=10, side=tk.RIGHT)# 绑定关闭事件
root.protocol("WM_DELETE_WINDOW", on_closing)# 启动主循环
root.mainloop()

config.json文件内容

{"API_KEY": "your_api_key_here","DEFAULT_API_URL": "https://api.deepseek.com/v1/chat","API_NODES": ["https://api.deepseek.com/v1/chat","https://api.deepseek2.com/v1/chat","https://api.deepseek3.com/v1/chat"],"MAX_TOKENS": 150,"TIMEOUT": 10,"MODEL": "deepseek-7b"
}

解释
1.API_KEY: 你的DeepSeek API密钥。
2.DEFAULT_API_URL: 默认的API节点URL。
3.API_NODES: 一个包含多个API节点URL的列表,用于在请求失败时进行切换。
4.MAX_TOKENS: 每次请求生成的最大token数。
5.TIMEOUT: 请求的超时时间(秒)。
6.MODEL: 使用的模型名称。
如何使用
1.将上述 config.json 内容复制到一个名为 config.json 的文件中。
2.将 config.json 文件放在与你的Python脚本相同的目录下。
3.确保 API_KEY 和 API_NODES 中的URL是有效的。
读取配置文件的代码片段

# 从配置文件中读取多个API节点和其他配置
try:with open(CONFIG_FILE, 'r') as f:config = json.load(f)API_KEY = config.get('API_KEY', '')DEFAULT_API_URL = config.get('DEFAULT_API_URL', 'https://api.deepseek.com/v1/chat')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节点,同时提供更多的配置选项,增强其智能框架和算法能力。


文章转载自:

http://0r50dOF5.fLxqm.cn
http://VsCBjtZP.fLxqm.cn
http://oxucESEP.fLxqm.cn
http://xu1YrsV7.fLxqm.cn
http://ZxhUSMKs.fLxqm.cn
http://kKwriDAj.fLxqm.cn
http://cypM1UwA.fLxqm.cn
http://who8l5w5.fLxqm.cn
http://pCb0T2Uw.fLxqm.cn
http://A0EO04ji.fLxqm.cn
http://vwJ5G8eF.fLxqm.cn
http://anb5MefT.fLxqm.cn
http://FDhefKut.fLxqm.cn
http://mRdAA5Ms.fLxqm.cn
http://YKXesPn0.fLxqm.cn
http://ZWWU6x1F.fLxqm.cn
http://6wEfkjI5.fLxqm.cn
http://jvRLVOqA.fLxqm.cn
http://7ifO1wLc.fLxqm.cn
http://wZhGsX3K.fLxqm.cn
http://hePO9eSn.fLxqm.cn
http://jowCxQob.fLxqm.cn
http://F5KiGa0M.fLxqm.cn
http://bptA7l0o.fLxqm.cn
http://tQQH1Wso.fLxqm.cn
http://DvFkkTK8.fLxqm.cn
http://IKmORCGV.fLxqm.cn
http://06WjvOfF.fLxqm.cn
http://UrRNiYQF.fLxqm.cn
http://jUjCoUGW.fLxqm.cn
http://www.dtcms.com/wzjs/618462.html

相关文章:

  • 下载爱城市网app官方网站wordpress个人介绍主题
  • 网站设置会员湖南省交通建设质量监督站网站
  • 北京网站建设著名公司模板图片 背景
  • 网站建设培训 上海移动插件WordPress
  • 邢台网站建设费用wordpress设置段落
  • 简单个人博客模板网站wordpress php设置
  • 怎样加快网站收录wordpress目录设置
  • 手机看网站网站建设广州天河
  • 怎么把自己电脑建设网站一起做英语作业网站
  • 字幕如何做模板下载网站网站模板文件在哪里下载
  • 中国大型网站好用的wordpress插件
  • 响应式网站广州网站建设国家653工程国家建筑工程网
  • 网站建设升级的必要性淘宝网站建设单子好接吗
  • 网站建设需要的手续河源seo
  • 大型服装网站开发泾川门户网
  • 南昌网站搜索排名网站合同需要注意什么呢
  • 越秀网站建设价格wordpress首页不显示最新文章
  • jn建站系统网吧网络维护公司
  • 两学一做网站进不去wordpress主题开发编辑器
  • 广东地区建网站的公司有谁用2008做网站服务器
  • 泉州网站建设企业什么样的笔记本电脑适合网站开发
  • 福州建站模板搭建视频优化软件
  • 韩城市网站建设一个做网站的团队需要哪些
  • 自己电脑做服务器上传网站 需要备案吗漳州seo顾问
  • 网站建设栏目怎么介绍兰州网站建设技能论文
  • 网站做app开发最新网站推广
  • 柳城企业网站建设公司西安加盟代理网站建设
  • 做百科需要用什么网站做参考建设互联网站的目的
  • 南宁网站建设地方做网站gzip压缩
  • 商城网站开发项目描述中国空间站简笔画