Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ COOKIES_STR=your_cookies_here
MODEL_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
MODEL_NAME=qwen-max
TOGGLE_KEYWORDS=。
SIMULATE_HUMAN_TYPING=False
SIMULATE_HUMAN_TYPING=False
FILTER_THINKING=True
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ MODEL_NAME=模型名称
#可选配置
TOGGLE_KEYWORDS=接管模式切换关键词,默认为句号(输入句号切换为人工接管,再次输入则切换AI接管)
SIMULATE_HUMAN_TYPING=True/False #模拟人工回复延迟
FILTER_THINKING=True/False #是否过滤AI模型思考过程(开启后自动清理<think>...</think>等推理内容,仅输出最终回复,默认开启)

注意:默认使用的模型是通义千问,如需使用其他API,请自行修改.env文件中的模型地址和模型名称;
COOKIES_STR自行在闲鱼网页端获取cookies(网页端F12打开控制台,选择Network,点击Fetch/XHR,点击一个请求,查看cookies)
Expand Down
8 changes: 8 additions & 0 deletions XianyuAgent.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ def __init__(self):
self._init_agents()
self.router = IntentRouter(self.agents['classify'])
self.last_intent = None # 记录最后一次意图
self.filter_thinking = os.getenv("FILTER_THINKING", "True").lower() in ("true", "1", "yes")


def _init_agents(self):
Expand Down Expand Up @@ -61,8 +62,15 @@ def load_prompt_content(name: str) -> str:
logger.error(f"加载提示词时出错: {e}")
raise

def _filter_thinking(self, text: str) -> str:
"""过滤AI模型的思考过程(<think>...</think>标签)"""
text = re.sub(r'<think>.*?</think>', '', text, flags=re.DOTALL)
return re.sub(r'\n{3,}', '\n\n', text).strip()

def _safe_filter(self, text: str) -> str:
"""安全过滤模块"""
if self.filter_thinking:
text = self._filter_thinking(text)
blocked_phrases = ["微信", "QQ", "支付宝", "银行卡", "线下"]
return "[安全提醒]请通过平台沟通" if any(p in text for p in blocked_phrases) else text

Expand Down