| import json | |
| import requests | |
| def get_current_weather(location, unit="celsius"): | |
| """Get the current weather in a given location""" | |
| if "taipei" in location.lower(): | |
| return json.dumps({"location": "Taipei", "temperature": "10", "unit": unit}) | |
| else: | |
| return json.dumps({"location": location, "temperature": "unknown"}) | |
| def get_junyi_content(type): | |
| print(f"Fetching Junyi content of type {type}") | |
| base_url = "https://www.junyiacademy.org/api/v2/open/content/topicpage/" | |
| topic_id = "knsh-7a" | |
| url = f"{base_url}{topic_id}" | |
| response = requests.get(url) | |
| if response.status_code == 200: | |
| data = response.json() | |
| print(data) | |
| else: | |
| print(f"Request failed with status code {response.status_code}") | |
| if type == "english": | |
| return json.dumps( | |
| { | |
| "content": "英文", | |
| "url": "https://www.junyiacademy.org/junyi-english/eng-junior/eng-junior07/eng-junior07-knsh/knsh-7a", | |
| } | |
| ) | |
| def get_openai_function_tools(): | |
| tools = [ | |
| { | |
| "type": "function", | |
| "function": { | |
| "name": "get_current_weather", | |
| "description": "Get the current weather", | |
| "parameters": { | |
| "type": "object", | |
| "properties": { | |
| "location": { | |
| "type": "string", | |
| "description": "The city and state, e.g. San Francisco, CA", | |
| }, | |
| "unit": { | |
| "type": "string", | |
| "enum": ["celsius", "fahrenheit"], | |
| "description": "The temperature unit to use. Infer this from the users location.", | |
| }, | |
| }, | |
| "required": ["location", "unit"], | |
| }, | |
| }, | |
| }, | |
| { | |
| "type": "function", | |
| "function": { | |
| "name": "get_junyi_content", | |
| "description": "Get the content from Junyi Academy", | |
| "parameters": { | |
| "type": "object", | |
| "properties": { | |
| "type": { | |
| "type": "string", | |
| "enum": ["english", "math"], | |
| "description": "The type of content to fetch", | |
| }, | |
| }, | |
| "required": ["type"], | |
| }, | |
| }, | |
| }, | |
| ] | |
| return tools | |
| def get_functions(): | |
| return { | |
| "get_current_weather": get_current_weather, | |
| "get_junyi_content": get_junyi_content, | |
| } | |