perf: websearch 可选配置引用链接 #287

This commit is contained in:
Soulter
2025-02-02 14:42:13 +08:00
parent bb5db2e9d0
commit 6ca9e2a753
3 changed files with 25 additions and 3 deletions
+11 -1
View File
@@ -37,6 +37,7 @@ DEFAULT_CONFIG = {
"enable": True,
"wake_prefix": "",
"web_search": False,
"web_search_link": False,
"identifier": False,
"datetime_system_prompt": True,
"default_personality": "default",
@@ -539,16 +540,25 @@ CONFIG_METADATA_2 = {
"web_search": {
"description": "启用网页搜索",
"type": "bool",
"hint": "能访问 Google 时效果最佳。如果 Google 访问失败,程序会依次访问 Bing, Sogo 搜索引擎。",
"obvious_hint": True,
"hint": "能访问 Google 时效果最佳(国内需要在 `其他配置` 开启 HTTP 代理)。如果 Google 访问失败,程序会依次访问 Bing, Sogo 搜索引擎。",
},
"web_search_link": {
"description": "网页搜索引用链接",
"type": "bool",
"obvious_hint": True,
"hint": "开启后,将会传入网页搜索结果的链接给模型,并引导模型输出引用链接。",
},
"identifier": {
"description": "启动识别群员",
"type": "bool",
"obvious_hint": True,
"hint": "在 Prompt 前加上群成员的名字以让模型更好地了解群聊状态。启用将略微增加 token 开销。",
},
"datetime_system_prompt": {
"description": "启用日期时间系统提示",
"type": "bool",
"obvious_hint": True,
"hint": "启用后,会在系统提示词中加上当前机器的日期时间。",
},
"default_personality": {
+2 -1
View File
@@ -8,7 +8,8 @@ from typing import List
class Google(SearchEngine):
def __init__(self) -> None:
super().__init__()
self.proxy = os.environ.get("HTTPS_PROXY")
self.proxy = os.environ.get("https_proxy")
print(f"Google Search using proxy: {self.proxy}")
async def search(self, query: str, num_results: int) -> List[SearchResult]:
results = []
+12 -1
View File
@@ -22,6 +22,8 @@ class Main(star.Star):
self.sogo_search = Sogo()
self.google = Google()
self.websearch_link = self.context.get_config()['provider_settings'].get('web_search_link', False)
async def initialize(self):
websearch = self.context.get_config()['provider_settings']['web_search']
if websearch:
@@ -109,8 +111,17 @@ class Main(star.Star):
except BaseException:
site_result = ""
site_result = site_result[:700] + "..." if len(site_result) > 700 else site_result
ret += f"{idx}. {i.title} \n{i.snippet}\n{site_result}\n\n"
header = f"{idx}. {i.title} "
if self.websearch_link and i.url:
header += i.url
ret += f"{header}\n{i.snippet}\n{site_result}\n\n"
idx += 1
if self.websearch_link:
ret += "针对问题,请根据上面的结果分点总结,并且在结尾处附上对应内容的参考链接(如有)。"
return ret