| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- from langchain_core.tools import tool
- from app.tools.java_client import JavaClient
- import logging
- logger = logging.getLogger(__name__)
- _java = JavaClient()
- @tool
- async def search_product_by_keyword(keyword: str, limit: int = 5) -> str:
- """按关键词搜索上架商品, 返回 JSON 商品列表"""
- try:
- products = await _java.search_products(keyword, limit)
- if not products:
- return "[]"
- return str([{
- "id": p["id"],
- "name": p["name"],
- "price": p.get("price"),
- "description": p.get("intro") or p.get("description", ""),
- } for p in products])
- except Exception as e:
- logger.warning("搜索商品失败: %s", e)
- return "[]"
- @tool
- async def search_activity_by_keyword(keyword: str, limit: int = 5) -> str:
- """按关键词搜索进行中的活动, 返回 JSON 活动列表"""
- try:
- activities = await _java.search_activities(keyword, limit)
- if not activities:
- return "[]"
- return str([{
- "id": a["id"],
- "name": a["title"],
- "description": a.get("description", ""),
- } for a in activities])
- except Exception as e:
- logger.warning("搜索活动失败: %s", e)
- return "[]"
- @tool
- async def search_article_by_keyword(keyword: str, limit: int = 5) -> str:
- """按关键词搜索已发布文章, 返回 JSON 文章列表"""
- try:
- articles = await _java.search_articles(keyword, limit)
- if not articles:
- return "[]"
- return str([{
- "id": a["id"],
- "name": a["title"],
- "summary": a.get("summary", ""),
- } for a in articles])
- except Exception as e:
- logger.warning("搜索文章失败: %s", e)
- return "[]"
|