ADD file via upload

main
pcafzw7pf 6 months ago
parent b6cfff47ae
commit a62d4803c5

@ -0,0 +1,120 @@
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('<Return>', send_message)
root.mainloop()
Loading…
Cancel
Save