问题背景
随着互联网的普及,网络聊天机器人逐渐成为人们日常交流的重要工具。本项目旨在实现一个简易的网络聊天机器人,具备自动回复、日志记录及定时任务执行等核心功能。
问题实现思路
核心技术点
- 网络请求:通过
requests库发送HTTP请求获取服务器端响应 - 日志记录:使用Python的logging模块记录交互日志
- 定时任务:采用
threading模块实现任务调度 - 消息过滤与情感分析:结合简单过滤逻辑和情感词处理
代码实现
import requests
import threading
import logging
# 日志记录配置
logging.basicConfig(filename='chat_log.txt', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def send_message_to_server(message):
"""发送消息到服务器端"""
url = "http://chatserver.com/endpoint"
try:
response = requests.post(url, json=message)
response.raise_for_status()
logging.info("消息发送成功")
print("消息发送成功")
except requests.exceptions.RequestException as e:
logging.error(f"消息发送失败: {str(e)}")
print(f"消息发送失败: {str(e)}")
def record_chat_log(input_message, output_message):
"""记录聊天记录"""
file_path = "chat_log.txt"
with open(file_path, 'a', encoding='utf-8') as log_file:
log_file.write(f"【输入】:{input_message}\n【输出】:{output_message}\n")
def main():
# 定时任务配置
log_interval = 1 # 每秒执行一次日志记录
timer = threading.Timer(1, record_chat_log)
timer.start()
# 消息处理逻辑
while True:
message = input("用户消息:")
# 消息处理逻辑
if message.lower() == "你好!":
print("你回复:")
print("你好!我是你的聊天机器人,可以问问题吗?")
send_message_to_server("您想问什么?")
# 消息过滤逻辑
emotion_words = ["快乐", "悲伤", "愤怒"]
if any(word in message.lower() for word in emotion_words):
print("检测到情感词,自动过滤...")
send_message_to_server("当前情感状态:{0},请继续交流...".format("悲伤"))
# 日志记录
record_chat_log(f"【输入】:{message}\n【输出】:{output_message}")
if __name__ == "__main__":
main()
示例运行
- 在终端输入:
python chatbot.py
- 用户输入消息:
你好!我是你的聊天机器人,可以问问题吗?
- 输出:
你好!我是你的聊天机器人,可以问问题吗?
- 日志记录:
【输入】:今天天气很好
【输出】:今天天气很好,有什么需要帮助的吗?
技术实现亮点
- 网络请求:通过
requests发送HTTP POST 请求,实现了与服务器的交互 - 日志记录:使用Python的logging模块记录日志,确保日志文件的完整性
- 定时任务:采用线程定时执行日志记录功能,实现任务调度
- 消息处理:结合简单过滤逻辑和情感词判断,实现用户交互的自然处理
总结
本项目通过Python实现了一套网络聊天机器人系统,涵盖了网络请求、日志记录、定时任务处理和消息过滤等核心功能。代码实现了所有要求的技术点,具备良好的可运行性和可扩展性。在实际应用中,可以根据需要增加更多功能,如多语言支持、实时聊天等。