mirror of
https://github.com/JasonYANG170/CodeGeeX4.git
synced 2024-11-23 12:16:33 +00:00
Create bingsearch.py
This commit is contained in:
parent
c807665092
commit
678493e629
47
repodemo/utils/bingsearch.py
Normal file
47
repodemo/utils/bingsearch.py
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
import requests
|
||||||
|
from bs4 import BeautifulSoup as BS4
|
||||||
|
import requests
|
||||||
|
|
||||||
|
BING_API_KEY = '<your_bing_api_key>'
|
||||||
|
def search_with_bing(query: str, search_timeout=30, top_k=6) -> list[dict]:
|
||||||
|
"""
|
||||||
|
Search with bing and return the contexts.
|
||||||
|
参考文档: https://docs.microsoft.com/en-us/bing/search-apis/bing-web-search/overview
|
||||||
|
"""
|
||||||
|
response = requests.get(
|
||||||
|
url="https://api.bing.microsoft.com/v7.0/search",
|
||||||
|
headers={"Ocp-Apim-Subscription-Key": BING_API_KEY},
|
||||||
|
params={
|
||||||
|
"q": query,
|
||||||
|
"responseFilter": ['webpages'],
|
||||||
|
"freshness": 'month',
|
||||||
|
"mkt": 'zh-CN'
|
||||||
|
},
|
||||||
|
timeout=search_timeout,
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
json_content = response.json()
|
||||||
|
# print(json_content)
|
||||||
|
contexts = json_content["webPages"]["value"][:top_k]
|
||||||
|
#logger.info("Web搜索完成")
|
||||||
|
return contexts
|
||||||
|
except Exception as e:
|
||||||
|
#logger.error(f"搜索失败,错误原因: {e}")
|
||||||
|
print(f"搜索失败,错误原因: {e}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
def fetch_url(url):
|
||||||
|
response = requests.get(url)
|
||||||
|
#use beautifulsoup4 to parse html
|
||||||
|
soup = BS4(response.text, 'html.parser')
|
||||||
|
plain_text = soup.get_text()
|
||||||
|
return plain_text
|
||||||
|
|
||||||
|
def bing_search_prompt(input):
|
||||||
|
contents = search_with_bing(input, search_timeout=5, top_k=6)
|
||||||
|
citations = "\n\n".join(
|
||||||
|
[f"[[citation:{i + 1}]]\n```markdown\n{item['snippet']}\n```" for i, item in enumerate(contents)]
|
||||||
|
)
|
||||||
|
prompt = f"[引用]\n{citations}\n问:{input}\n"
|
||||||
|
return prompt
|
||||||
|
|
Loading…
Reference in New Issue
Block a user