Download tools.py from Janneyffr/API: direct link, hf CLI and curl.
- Browser
- Download file 2.39 kB
-
https://huggingface.co/spaces/Janneyffr/API/resolve/main/tools.py
- Command line
-
hf download hf://spaces/Janneyffr/API/tools.py
-
curl -L -o tools.py https://huggingface.co/spaces/Janneyffr/API/resolve/main/tools.py
2.39 kB
| from langchain_community.retrievers import BM25Retriever | |
| from langchain.tools import Tool | |
| from langchain_community.tools import DuckDuckGoSearchRun | |
| from huggingface_hub import list_models | |
| import random | |
| from retriever import docs | |
| import requests | |
| #知识库检索工具 | |
| bm25_retriever = BM25Retriever.from_documents(docs) | |
| def extract_text(query: str) -> str: | |
| """Retrieves detailed information about gala guests based on their name or relation.""" | |
| results = bm25_retriever.invoke(query) | |
| if results: | |
| return "\n\n".join([doc.page_content for doc in results[:3]]) | |
| else: | |
| return "No matching guest information found." | |
| guest_info_tool = Tool( | |
| name="guest_info_retriever", | |
| func=extract_text, | |
| description="Retrieves detailed information about gala guests based on their name or relation." | |
| ) | |
| #网络搜索工具 | |
| search_tool = DuckDuckGoSearchRun() | |
| #天气查询工具 | |
| def get_weather_info(location: str) -> str: | |
| """Fetches weather information from wttr.in for a given location.""" | |
| url = f"https://wttr.in/{location}?format=3" # 简洁格式:City: +天气 +温度 | |
| try: | |
| response = requests.get(url, timeout=10) | |
| return response.text | |
| except Exception as e: | |
| return f"Error fetching weather: {str(e)}" | |
| # 初始化工具 | |
| weather_info_tool = Tool( | |
| name="get_weather_info", | |
| func=get_weather_info, | |
| description="Fetches dummy weather information for a given location." | |
| ) | |
| #为有影响力的 AI 开发者创建 Hub 统计工具 | |
| def get_hub_stats(author: str) -> str: | |
| """Fetches the most downloaded model from a specific author on the Hugging Face Hub.""" | |
| try: | |
| # 列出指定作者的模型,按下载次数排序 | |
| models = list(list_models(author=author, sort="downloads", direction=-1, limit=1)) | |
| if models: | |
| model = models[0] | |
| return f"The most downloaded model by {author} is {model.id} with {model.downloads:,} downloads." | |
| else: | |
| return f"No models found for author {author}." | |
| except Exception as e: | |
| return f"Error fetching models for {author}: {str(e)}" | |
| # 初始化工具 | |
| hub_stats_tool = Tool( | |
| name="get_hub_stats", | |
| func=get_hub_stats, | |
| description="Fetches the most downloaded model from a specific author on the Hugging Face Hub." | |
| ) |