4.0 KiB
4.0 KiB
Documentation
- Class name: LLMScaleSERPSearch
- Category: SALT/Language Toolkit/Tools
- Output node: False
- Repo Ref: https://github.com/comfyanonymous/ComfyUI
LLMScaleSERPSearch节点旨在利用ScaleSERP API对各类网络内容进行搜索,并将结果解析为结构化文档。该节点简化了与ScaleSERP API交互的复杂性,提供了一个简洁的接口,用于高效检索和组织搜索数据。
Input types
Required
- api_key
- 用于向ScaleSERP API进行身份验证的API密钥,使用户能够访问其搜索功能。
- Comfy dtype: STRING
- Python dtype: str
- query
- 用户输入的搜索查询,用于从ScaleSERP API检索相关的搜索结果。
- Comfy dtype: STRING
- Python dtype: str
Optional
- search_type
- 指定要执行的搜索类型,如网页、图片或新闻,以获得更有针对性的搜索结果。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
- location
- 可选参数,用于指定搜索的地理位置,影响搜索结果的相关性。
- Comfy dtype: STRING
- Python dtype: str
- device
- 可选参数,用于指定搜索的设备类型,如桌面或移动设备,以模拟不同设备的搜索。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
- mobile_type
- 当在移动平台上进行搜索时,用于指定移动设备类型的可选参数。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
- tablet_type
- 当在平板电脑平台上进行搜索时,用于指定平板电脑类型的可选参数。
- Comfy dtype: COMBO[STRING]
- Python dtype: str
Output types
- documents
- 从搜索结果解析而来的结构化文档,提供组织良好的信息,便于访问和分析。
- Comfy dtype: DOCUMENT
- Python dtype: list
- results_dict
- 包含解析后搜索结果的字典,提供从ScaleSERP API检索到的数据的结构化概览。
- Comfy dtype: DICT
- Python dtype: dict
- links_list
- 从搜索结果中提取的链接列表,提供直接访问信息源的途径。
- Comfy dtype: LIST
- Python dtype: list
Usage tips
- Infra type:
CPU - Common nodes: unknown
Source code
class LLMScaleSERPSearch:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"api_key": ("STRING", {}),
"query": ("STRING", {}),
},
"optional": {
"search_type": (["none", "news", "videos", "scholar", "places", "shopping"],),
"location": ("STRING", {}),
"device": (["desktop", "tablet", "mobile"],),
"mobile_type": (["iphone", "android"],),
"tablet_type": (["ipad", "android"],),
}
}
RETURN_TYPES = ("DOCUMENT", "DICT", "LIST")
RETURN_NAMES = ("documents", "results_dict", "links_list")
FUNCTION = "search"
CATEGORY = f"{MENU_NAME}/{SUB_MENU_NAME}/Tools"
def search(self, api_key, query, **kwargs):
if kwargs.__contains__("search_type"):
if kwargs["search_type"] == "none":
kwargs.pop("search_type")
if kwargs.__contains__("device"):
if kwargs["device"] == "desktop" and kwargs.__contains__("mobile_type") and kwargs.__contains__("tablet_type"):
kwargs.pop("mobile_type")
kwargs.pop("tablet_type")
if kwargs["device"] == "mobile":
if kwargs.__contains__("tablet_type"):
kwargs.pop("tablet_type")
if kwargs["device"] == "tablet":
if kwargs.__contains__("mobile_type"):
kwargs.pop("mobile_type")
client = ScaleSERP(api_key=api_key)
results = client.search(query, hide_base64_images=True, **kwargs)
documents = client.results_to_documents()
for doc in documents:
print(doc.text, doc.extra_info)
print("\n==================\n")
links = client.results_to_link_dict()
return (documents, results, list(links.values()))