Compare commits
No commits in common. "8cd80dcd9c678908eae665adc9d61b11ddcb3b05" and "c6bb3b4ffdd2f94fd654924cb65df77b49a9bfc9" have entirely different histories.
8cd80dcd9c
...
c6bb3b4ffd
|
|
@ -19,5 +19,3 @@
|
||||||
.idea/modules.xml
|
.idea/modules.xml
|
||||||
.idea/prettier.xml
|
.idea/prettier.xml
|
||||||
.idea/vcs.xml
|
.idea/vcs.xml
|
||||||
/.idea
|
|
||||||
/test_tool
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ search_local_knowledgebase:
|
||||||
# 搜索引擎工具配置项。推荐自己部署 searx 搜索引擎,国内使用最方便。
|
# 搜索引擎工具配置项。推荐自己部署 searx 搜索引擎,国内使用最方便。
|
||||||
search_internet:
|
search_internet:
|
||||||
use: false
|
use: false
|
||||||
search_engine_name: zhipu_search
|
search_engine_name: tavily
|
||||||
search_engine_config:
|
search_engine_config:
|
||||||
bing:
|
bing:
|
||||||
bing_search_url: https://api.bing.microsoft.com/v7.0/search
|
bing_search_url: https://api.bing.microsoft.com/v7.0/search
|
||||||
|
|
@ -36,8 +36,6 @@ search_internet:
|
||||||
search_depth: advanced
|
search_depth: advanced
|
||||||
include_raw_content: True
|
include_raw_content: True
|
||||||
max_results: 1
|
max_results: 1
|
||||||
zhipu_search:
|
|
||||||
zhipu_api_key: 'e2bdc39618624fd782ebcd721185645c.pcvcrTPFT69Jda8B'
|
|
||||||
top_k: 5
|
top_k: 5
|
||||||
verbose: Origin
|
verbose: Origin
|
||||||
conclude_prompt: "<指令>这是搜索到的互联网信息,请你根据这些信息进行提取并有调理,简洁的回答问题。如果无法从中得到答案,请说 “无法搜索到能回答问题的内容”。
|
conclude_prompt: "<指令>这是搜索到的互联网信息,请你根据这些信息进行提取并有调理,简洁的回答问题。如果无法从中得到答案,请说 “无法搜索到能回答问题的内容”。
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
import uuid
|
|
||||||
from typing import Dict, List
|
from typing import Dict, List
|
||||||
|
|
||||||
import requests
|
|
||||||
from langchain.docstore.document import Document
|
from langchain.docstore.document import Document
|
||||||
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
||||||
from langchain.utilities.bing_search import BingSearchAPIWrapper
|
from langchain.utilities.bing_search import BingSearchAPIWrapper
|
||||||
|
|
@ -109,42 +107,15 @@ def tavily_search(text, config, top_k):
|
||||||
# print("=== 完整搜索返回值 ===")
|
# print("=== 完整搜索返回值 ===")
|
||||||
# print(search_results)
|
# print(search_results)
|
||||||
return search_results
|
return search_results
|
||||||
def zhipu_search(text, config):
|
|
||||||
api_key = config["zhipu_api_key"]
|
|
||||||
msg = [
|
|
||||||
{
|
|
||||||
"role": "user",
|
|
||||||
"content": text
|
|
||||||
}
|
|
||||||
]
|
|
||||||
tool = "web-search-pro"
|
|
||||||
url = "https://open.bigmodel.cn/api/paas/v4/tools"
|
|
||||||
request_id = str(uuid.uuid4())
|
|
||||||
data = {
|
|
||||||
"request_id": request_id,
|
|
||||||
"tool": tool,
|
|
||||||
"stream": False,
|
|
||||||
"messages": msg
|
|
||||||
}
|
|
||||||
resp = requests.post(
|
|
||||||
url,
|
|
||||||
json=data,
|
|
||||||
headers={'Authorization': api_key},
|
|
||||||
timeout=300
|
|
||||||
)
|
|
||||||
print(resp.content.decode())
|
|
||||||
return resp.content.decode()
|
|
||||||
|
|
||||||
SEARCH_ENGINES = {
|
SEARCH_ENGINES = {
|
||||||
"bing": bing_search,
|
"bing": bing_search,
|
||||||
"duckduckgo": duckduckgo_search,
|
"duckduckgo": duckduckgo_search,
|
||||||
"metaphor": metaphor_search,
|
"metaphor": metaphor_search,
|
||||||
"searx": searx_search,
|
"searx": searx_search,
|
||||||
"tavily": tavily_search,
|
"tavily": tavily_search
|
||||||
"zhipu_search": zhipu_search
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# tavily的解析
|
# tavily的解析
|
||||||
# def search_result2docs_tavily(search_results) -> List[Document]:
|
# def search_result2docs_tavily(search_results) -> List[Document]:
|
||||||
# docs = []
|
# docs = []
|
||||||
|
|
@ -161,17 +132,6 @@ SEARCH_ENGINES = {
|
||||||
|
|
||||||
def search_result2docs(search_results, engine_name) -> List[Document]:
|
def search_result2docs(search_results, engine_name) -> List[Document]:
|
||||||
docs = []
|
docs = []
|
||||||
if engine_name == "zhipu_search":
|
|
||||||
try:
|
|
||||||
results = search_results["choices"][0]["message"]["tool_calls"][1]["search_result"]
|
|
||||||
except (KeyError, IndexError) as e:
|
|
||||||
print(f"结构异常: {e}")
|
|
||||||
results = []
|
|
||||||
# 遍历并处理每个结果
|
|
||||||
for idx, result in enumerate(search_results, 1):
|
|
||||||
docs.append(result.get('content', '无内容'))
|
|
||||||
print(f"内容:\n{result.get('content', '无内容')}\n")
|
|
||||||
return docs
|
|
||||||
page_contents_key = "snippet" if engine_name != "tavily" else "content"
|
page_contents_key = "snippet" if engine_name != "tavily" else "content"
|
||||||
metadata_key = "link" if engine_name != "tavily" else "url"
|
metadata_key = "link" if engine_name != "tavily" else "url"
|
||||||
for result in search_results:
|
for result in search_results:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue