diff --git a/main/manager-web/src/components/ProviderDialog.vue b/main/manager-web/src/components/ProviderDialog.vue
index 52b19b06..844282ee 100644
--- a/main/manager-web/src/components/ProviderDialog.vue
+++ b/main/manager-web/src/components/ProviderDialog.vue
@@ -49,7 +49,7 @@
-
+
@@ -60,7 +60,7 @@
- {{ scope.row.key || '-' }}
+ {{ scope.row.key }}
@@ -70,7 +70,7 @@
- {{ scope.row.label || '-' }}
+ {{ scope.row.label }}
@@ -89,6 +89,16 @@
+
+
+
+
+
+
+ {{ scope.row.default_value }}
+
+
+
@@ -148,7 +158,7 @@ export default {
'boolean': '布尔值',
'dict': '字典'
};
- return typeMap[type] || '-';
+ return typeMap[type];
},
startEditing(row) {
@@ -205,6 +215,7 @@ export default {
key: '',
label: '',
type: 'string',
+ default_value: '',
selected: false,
editing: true
});
diff --git a/main/xiaozhi-server/config.yaml b/main/xiaozhi-server/config.yaml
index 36e61ec9..57d552c7 100644
--- a/main/xiaozhi-server/config.yaml
+++ b/main/xiaozhi-server/config.yaml
@@ -101,7 +101,8 @@ plugins:
# 这个密钥是项目共用的key,用多了可能会被限制
# 想稳定一点就自行申请替换,每天有1000次免费调用
# 申请地址:https://console.qweather.com/#/apps/create-key/over
- get_weather: { "api_key": "a861d0d5e7bf4ee1a83d9a9e4f96d4da", "default_location": "广州" }
+ # 申请后通过这个链接可以找到自己的apihost:https://console.qweather.com/setting?lang=zh
+ get_weather: {"api_host":"mj7p3y7naa.re.qweatherapi.com", "api_key": "a861d0d5e7bf4ee1a83d9a9e4f96d4da", "default_location": "广州" }
# 获取新闻插件的配置,这里根据需要的新闻类型传入对应的url链接,默认支持社会、科技、财经新闻
# 更多类型的新闻列表查看 https://www.chinanews.com.cn/rss/
get_news_from_chinanews:
diff --git a/main/xiaozhi-server/plugins_func/functions/get_weather.py b/main/xiaozhi-server/plugins_func/functions/get_weather.py
index dc7976dd..75c15c7b 100644
--- a/main/xiaozhi-server/plugins_func/functions/get_weather.py
+++ b/main/xiaozhi-server/plugins_func/functions/get_weather.py
@@ -107,8 +107,8 @@ WEATHER_CODE_MAP = {
}
-def fetch_city_info(location, api_key):
- url = f"https://geoapi.qweather.com/v2/city/lookup?key={api_key}&location={location}&lang=zh"
+def fetch_city_info(location, api_key, api_host):
+ url = f"https://{api_host}/geo/v2/city/lookup?key={api_key}&location={location}&lang=zh"
response = requests.get(url, headers=HEADERS).json()
return response.get("location", [])[0] if response.get("location") else None
@@ -151,7 +151,8 @@ def parse_weather_info(soup):
@register_function("get_weather", GET_WEATHER_FUNCTION_DESC, ToolType.SYSTEM_CTL)
def get_weather(conn, location: str = None, lang: str = "zh_CN"):
- api_key = conn.config["plugins"]["get_weather"]["api_key"]
+ api_host = conn.config["plugins"]["get_weather"].get("api_host", "mj7p3y7naa.re.qweatherapi.com")
+ api_key = conn.config["plugins"]["get_weather"].get("api_key", "a861d0d5e7bf4ee1a83d9a9e4f96d4da")
default_location = conn.config["plugins"]["get_weather"]["default_location"]
client_ip = conn.client_ip
# 优先使用用户提供的location参数
@@ -164,8 +165,7 @@ def get_weather(conn, location: str = None, lang: str = "zh_CN"):
else:
# 若IP解析失败或无IP,使用默认位置
location = default_location
-
- city_info = fetch_city_info(location, api_key)
+ city_info = fetch_city_info(location, api_key, api_host)
if not city_info:
return ActionResponse(
Action.REQLLM, f"未找到相关的城市: {location},请确认地点是否正确", None