Merge branch 'upgrade/deepagents-0.4.4' into bot_manager
This commit is contained in:
commit
ba51bd3583
@ -56,15 +56,17 @@ When creating scripts in `executable_code/`, follow these organization rules:
|
|||||||
- Example: `executable_code/invoice_parser/parse_invoice.py` for invoice parsing scripts
|
- Example: `executable_code/invoice_parser/parse_invoice.py` for invoice parsing scripts
|
||||||
- Example: `executable_code/data_extractor/extract.py` for data extraction scripts
|
- Example: `executable_code/data_extractor/extract.py` for data extraction scripts
|
||||||
|
|
||||||
- **Temporary Scripts**: Place short-lived or experimental scripts in tmp subfolder
|
- **Temporary Scripts**: AVOID creating temporary script files when possible
|
||||||
- Format: `executable_code/tmp/script.py`
|
- **Preferred**: Use `python -c "..."` for one-off scripts (inline execution)
|
||||||
- Example: `executable_code/tmp/debug_test.py` for debugging scripts
|
- **Fallback**: Only create files if the script is too complex or requires file persistence
|
||||||
|
- **Location**: `executable_code/tmp/script.py` (when file creation is necessary)
|
||||||
|
- **Cleanup**: Files in `{agent_dir_path}/executable_code/tmp/` older than 3 days will be automatically deleted
|
||||||
|
|
||||||
**Path Examples:**
|
**Path Examples:**
|
||||||
- Skill script: `{agent_dir_path}/skills/rag-retrieve/scripts/rag_retrieve.py`
|
- Skill script: `{agent_dir_path}/skills/rag-retrieve/scripts/rag_retrieve.py`
|
||||||
- Dataset file: `{agent_dir_path}/dataset/document.txt`
|
- Dataset file: `{agent_dir_path}/dataset/document.txt`
|
||||||
- Task-specific script: `{agent_dir_path}/executable_code/invoice_parser/parse.py`
|
- Task-specific script: `{agent_dir_path}/executable_code/invoice_parser/parse.py`
|
||||||
- Temporary script: `{agent_dir_path}/executable_code/tmp/test.py`
|
- Temporary script (when needed): `{agent_dir_path}/executable_code/tmp/test.py`
|
||||||
- Downloaded file: `{agent_dir_path}/download/report.pdf`
|
- Downloaded file: `{agent_dir_path}/download/report.pdf`
|
||||||
|
|
||||||
## System Information
|
## System Information
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import shutil
|
||||||
|
import time
|
||||||
from typing import Union, Optional, Any, List, Dict
|
from typing import Union, Optional, Any, List, Dict
|
||||||
from fastapi import APIRouter, HTTPException, Header
|
from fastapi import APIRouter, HTTPException, Header
|
||||||
from fastapi.responses import StreamingResponse
|
from fastapi.responses import StreamingResponse
|
||||||
@ -393,6 +395,41 @@ async def _execute_post_agent_hooks(config: AgentConfig, response: str) -> None:
|
|||||||
# hook执行失败不影响主流程
|
# hook执行失败不影响主流程
|
||||||
logger.error(f"Failed to execute PostAgent hooks: {e}")
|
logger.error(f"Failed to execute PostAgent hooks: {e}")
|
||||||
|
|
||||||
|
# 清理 executable_code/tmp 文件夹
|
||||||
|
await _cleanup_tmp_folder(config)
|
||||||
|
|
||||||
|
|
||||||
|
async def _cleanup_tmp_folder(config: AgentConfig) -> None:
|
||||||
|
"""
|
||||||
|
清理 executable_code/tmp 文件夹中 3 天前的文件
|
||||||
|
|
||||||
|
Args:
|
||||||
|
config: AgentConfig 对象
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
if config.project_dir and config.bot_id:
|
||||||
|
tmp_dir = os.path.join(config.project_dir, "executable_code", "tmp")
|
||||||
|
if os.path.exists(tmp_dir):
|
||||||
|
# 3 天前的秒数(3 * 24 * 60 * 60 = 259200)
|
||||||
|
three_days_ago = time.time() - (3 * 24 * 60 * 60)
|
||||||
|
|
||||||
|
deleted_count = 0
|
||||||
|
for item in os.listdir(tmp_dir):
|
||||||
|
item_path = os.path.join(tmp_dir, item)
|
||||||
|
# 检查修改时间
|
||||||
|
if os.path.getmtime(item_path) < three_days_ago:
|
||||||
|
if os.path.isfile(item_path) or os.path.islink(item_path):
|
||||||
|
os.remove(item_path)
|
||||||
|
else:
|
||||||
|
shutil.rmtree(item_path)
|
||||||
|
deleted_count += 1
|
||||||
|
logger.debug(f"Deleted old item: {item_path}")
|
||||||
|
|
||||||
|
logger.info(f"Cleaned up {deleted_count} old item(s) from tmp folder: {tmp_dir}")
|
||||||
|
except Exception as e:
|
||||||
|
# 清理失败不影响主流程
|
||||||
|
logger.error(f"Failed to cleanup tmp folder: {e}")
|
||||||
|
|
||||||
|
|
||||||
@router.post("/api/v1/chat/completions")
|
@router.post("/api/v1/chat/completions")
|
||||||
async def chat_completions(request: ChatRequest, authorization: Optional[str] = Header(None)):
|
async def chat_completions(request: ChatRequest, authorization: Optional[str] = Header(None)):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user