-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunction.py
More file actions
117 lines (81 loc) · 4.26 KB
/
function.py
File metadata and controls
117 lines (81 loc) · 4.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import requests
def calculate_bmr(weight:str, height:str, age:str, gender:str) ->str:
try:
wei=float(weight)
hei=float(height)
a=float(age)
if gender=='男':
BMR=10*wei+6.25*hei-5*a+5
return f"您的基础代谢率是{BMR}"
elif gender=="女":
BMR=10*wei+6.25*hei-5*a-161
return f"您的基础代谢率是{BMR}"
else:
return "请输入“男”或者“女”"
except ValueError:
return "对不起,您的年龄、身高等信息必须是数字"
except Exception as e:
return f"对不起,计算失败,有其他问题!-{e}"
import os
from tavily import TavilyClient
def get_food_calories(food_name:str) ->str:
# 1. 从环境变量中读取API密钥
api_key = os.environ.get("TAVILY_API_KEY")
if not api_key:
return "错误:未配置TAVILY_API_KEY环境变量。"
# 2. 初始化Tavily客户端
tavily = TavilyClient(api_key=api_key)
# 3. 构造一个精确的查询
query = f"查询每100g{food_name}中热量、蛋白质、碳水化合物含量"
try:
# 4. 调用API,include_answer=True会返回一个综合性的回答
response = tavily.search(query=query, search_depth="basic", include_answer=True)
# 5. Tavily返回的结果已经非常干净,可以直接使用
# response['answer'] 是一个基于所有搜索结果的总结性回答
if response.get("answer"):
return f"关于 {food_name} 的营养信息:{response['answer']}"
# 如果没有综合性回答,则格式化原始结果
formatted_results = []
for result in response.get("results", []):
formatted_results.append(f"- {result['title']}: {result['content']}")
if not formatted_results:
return "抱歉,没有找到该种食物的相关数据,你可以换个词语试试。"
return "根据搜索,为您找到以下信息:\n" + "\n".join(formatted_results)
except Exception as e:
return f"错误:执行Tavily搜索食物热量时出现问题 - {e}"
def get_activity_burn(activity:str, weight:str) ->str:
api_key = os.environ.get("TAVILY_API_KEY")
if not api_key:
return "错误:未配置TAVILY_API_KEY环境变量。"
tavily = TavilyClient(api_key=api_key)
query = f"查询{weight}千克的人做{activity}一小时消耗多少热量"
try:
response = tavily.search(query=query, search_depth="basic", include_answer=True)
if response.get("answer"):
return f"{weight}千克的人做{activity}一小时消耗热量:{response['answer']}"
formatted_results = []
for result in response.get("results", []):
formatted_results.append(f"- {result['title']}: {result['content']}")
if not formatted_results:
return "抱歉,没有找到该运动的相关数据,你可以换个运动试试。"
return "根据搜索,为您找到以下信息:\n" + "\n".join(formatted_results)
except Exception as e:
return f"错误:执行Tavily搜索消耗热量出现问题 - {e}"
def search_healthy_recipe(ingredients:str, calories:str) ->str:
api_key = os.environ.get("TAVILY_API_KEY")
if not api_key:
return "错误:未配置TAVILY_API_KEY环境变量。"
tavily = TavilyClient(api_key=api_key)
query = f"使用 {ingredients} 制作的、热量低于 {calories} 大卡的健康食谱做法。"
try:
response = tavily.search(query=query, search_depth="basic", include_answer=True)
if response.get("answer"):
return f"根据您提供的原料,我们的建议如下::{response['answer']}"
formatted_results = []
for result in response.get("results", []):
formatted_results.append(f"- {result['title']}: {result['content']}")
if not formatted_results:
return "抱歉,没有找到相关食谱,你可以换些原料试试。"
return "根据搜索,为您找到以下信息:\n" + "\n".join(formatted_results)
except Exception as e:
return f"错误:执行Tavily搜索健康食谱出现问题 - {e}"