import http.client import json import tkinter as tk import time import chat2 # 创建HTTPS连接和请求头 conn = http.client.HTTPSConnection("api.chatanywhere.com.cn") headers = { 'Authorization': 'Bearer sk-T2uMUUuvXHFTpVo0M96rOMkLCygv6BODpwBozgXjmzU9c2yi', 'Content-Type': 'application/json' } # 初始化暂停标志 paused = False # 对话历史列表 dialogue_history = [] # 发送消息函数 def send_message(event=None): global paused if paused: return # 获取用户输入的消息 user_message = user_input.get() user_input.delete(0, tk.END) # 构建请求payload payload = json.dumps({ "model": "gpt-3.5-turbo", "messages": [ { "role": "user", "content": user_message } ] }) # 发送POST请求获取助手回复 conn.request("POST", "/v1/chat/completions", payload, headers) res = conn.getresponse() data = res.read() # 解析助手回复数据 response_data = json.loads(data.decode("utf-8")) assistant_response = response_data["choices"][0]["message"]["content"] # 将助手回复按行拆分 assistant_lines = assistant_response.split("\n") # 保存对话时间标识 current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 更新对话历史列表 dialogue_history.append((current_time, "我", user_message)) dialogue_history.extend([(current_time, "下等外国马", line) for line in assistant_lines]) # 保存对话到指定的txt文件 with open("dialogue.txt", "a") as file: for time_stamp, role, message in dialogue_history: file.write(f"[{time_stamp}] {role}: {message}\n") # 更新对话历史文本框并显示助手回复 message_history.config(state=tk.NORMAL) message_history.insert(tk.END, "我: " + user_message + "\n", "user_message") for line in assistant_lines: if paused: break message_history.insert(tk.END, "下等外国马: " + line + "\n", "assistant_message") root.update() time.sleep(1) message_history.config(state=tk.DISABLED) message_history.yview(tk.END) # 控制暂停和继续回答的函数 def pause_response(): global paused paused = not paused # 打开新的tk界面 def open_new_window(): chat2.run() # 创建主窗口 root = tk.Tk() root.title("Chat_fk") root.geometry("660x480") # 创建对话历史文本框 message_history = tk.Text(root, width=60, height=20, wrap="word") message_history.pack(pady=10) message_history.tag_config("user_message", justify="right", foreground="blue") message_history.tag_config("assistant_message", justify="left", foreground="green") message_history.config(state=tk.DISABLED) # 创建用户输入框和发送按钮 input_frame = tk.Frame(root) input_frame.pack() user_input = tk.Entry(input_frame, width=50) user_input.pack(side=tk.LEFT, padx=5) send_button = tk.Button(input_frame, text="发送", command=send_message) send_button.pack(side=tk.LEFT, padx=5) # 创建暂停按钮 pause_button = tk.Button(input_frame, text="暂停", command=pause_response) pause_button.pack(side=tk.LEFT, padx=5) # 创建打开新界面的按钮 open_button = tk.Button(input_frame, text="打开历史对话", command=open_new_window) open_button.pack(side=tk.LEFT, padx=5) root.bind('', send_message) root.mainloop()