diff --git a/.idea/sweet-hut-agent.iml b/.idea/sweet-hut-agent.iml index e408242..7ca2fee 100644 --- a/.idea/sweet-hut-agent.iml +++ b/.idea/sweet-hut-agent.iml @@ -5,7 +5,7 @@ - + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 06d7c2f..530ca28 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,18 +5,11 @@ - - - - - - - - - - - - + + + + + - { - "keyToString": { - "FastAPI.sweet-hut-agent.executor": "Run", - "RunOnceActivity.ShowReadmeOnStart": "true", - "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true", - "RunOnceActivity.git.unshallow": "true", - "RunOnceActivity.typescript.service.memoryLimit.init": "true", - "git-widget-placeholder": "master", - "last_opened_file_path": "D:/Cxx/PythonProjects/sweet-hut-agent/prompt", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "nodejs_package_manager_path": "npm", - "vue.rearranger.settings.migration": "true" + +}]]> + + + - + - + + + + + + + + + + + + + + + + @@ -104,6 +121,9 @@ + + + @@ -111,6 +131,6 @@ - + \ No newline at end of file diff --git a/modes/agent.py b/modes/agent.py index 882e9c8..1eec06c 100644 --- a/modes/agent.py +++ b/modes/agent.py @@ -1,4 +1,5 @@ from pydantic import BaseModel class QueryRequest(BaseModel): - message: str \ No newline at end of file + message: str + platform: str | None = None \ No newline at end of file diff --git a/prompt/mobile.py b/prompt/mobile.py new file mode 100644 index 0000000..91fe169 --- /dev/null +++ b/prompt/mobile.py @@ -0,0 +1,8 @@ +mobile_prompt = """ +你正在为移动端用户回答问题。 + +请严格遵守以下输出规范: + +1. 不要使用 Markdown 表格 +2. 适合手机竖屏阅读 +""" \ No newline at end of file diff --git a/services.py b/services.py index 8fc6ba3..2a72af4 100644 --- a/services.py +++ b/services.py @@ -1,9 +1,10 @@ from datetime import datetime -from langchain_core.messages import HumanMessage, AIMessageChunk +from langchain_core.messages import HumanMessage, AIMessageChunk, SystemMessage, BaseMessage from agent.bill import bill_agent from modes.agent import QueryRequest +from prompt.mobile import mobile_prompt async def query_bill_agent(query: QueryRequest): @@ -11,19 +12,22 @@ async def query_bill_agent(query: QueryRequest): print(query) today = datetime.today().strftime("%Y-%m-%d") - message_content = ( + date_content = ( f"[当前系统日期: {today}]\n\n" f"{query.message}" ) - message = HumanMessage(content=message_content) + messages: list[BaseMessage] = [HumanMessage(content=date_content)] + + if query.platform == "mobile": + messages.insert(0, SystemMessage(content=mobile_prompt)) tool_called = False content_generate = False # 流式调用Agent for chunk, metadata in bill_agent.stream( - {"messages": [message]}, + {"messages": messages}, stream_mode="messages" ): # print(chunk)