(๑•̀ㅂ•́)و✧ 一个别开生面的方式给模型赋予【联网搜索】的能力

前言:因为 One API 部署在国内阿里云,导致了 NextChat 的 DuckDuckGo 这个境外搜索插件无法使用。

于是开启联网之前是这样的:

然后,这是借用了免费的 WebPilot 插件联网版的。。

因为 WebPilot 也是长城外的,所以可以使用鸭鸭快跑。。

热知识:WebPilot 是一个读取网页信息的插件,并非搜索插件。因此,只要是类似 Lite DuckDuckGo 这种形式的网页,都可以这么用。。

:bili_040: :bili_040: :bili_040:

我愿称之为新的神器。—— WebPilot


补一下配置方式,很简单的 10 秒 Done。NextChat 从 2.15.0 版开始支持 Plugins,太古老的话就更新一下。

打开 NextChat 主页那个「发现」 → Plugins →「新建」→ 授权方式选「自定义」如图设置:

参数说明

① WebPilot-Friend-UID 应该是官方的免费角色。
也可以用自己的 API 有付费的进阶功能 → Add WebPilot to your GPTs

② Token 随便填,就直接按文档的 xxx 就行。要勾上使用代理 ↓

③ OpenAPI Schema 可以直接填 URL 直接点从网页加载:

https://gpts.webpilot.ai/gpts-openapi.yaml

或者手动复制粘贴 Schema 进黑色框框也行:

点击展开,把里面的全复制进去。
openapi: 3.0.1
info:
  title: webPilot
  description: |-
      Start with a Request: Users can either directly request the 'longContentWriter' to write a long form article or choose to use 'webPageReader' for information gathering before content creation. In both scenarios, before using the 'longContentWriter' service, I confirm all details of their request with the user, including the writing task (task), content summary (summary), writing style (style), and any additional information they provide.
      Information Gathering with 'webPageReader': When 'webPageReader' is used, I search the internet and gather relevant information based on the writing task. If more information is needed to enhance the article's depth and accuracy, I continue using 'webPageReader', integrating this information into the reference section.
      Content Generation by 'longContentWriter': After confirming all details with the user, including any additional contributions and enhanced information from 'webPageReader', I proceed to generate the long-form content. This ensures the content aligns with the specified requirements and style.
      Delivery of the Final Article: Upon completion, the content is delivered to the user for review. They can request revisions or additional information if necessary.
      Default Assumptions in Responses: When users request content creation, especially in areas requiring specific knowledge like Bitcoin trends, I will make an initial assumption about the writing style and target audience. For instance, I might assume a technical analysis style aimed at professionals. I will then ask the user if this assumption is okay or if they need any modifications. This approach helps streamline the content creation process.

  version: 'v1.1'
servers:
  - url: https://gpts.webpilot.ai
paths:
  /api/read:
    post:
      operationId: webPageReader
      x-openai-isConsequential: false
      summary: visit web page
      requestBody:
        required: true
        content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageResponse'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageError'
  /api/write:
    post:
      operationId: longContentWriter
      x-openai-isConsequential: false
      summary: generate a book
      requestBody:
        required: true
        content:
            application/json:
              schema:
                $ref: '#/components/schemas/generateContentRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generateContentResponse'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/generateContentError'
components:
  schemas:
    generateContentRequest:
      type: object
      required:
        - task
        - language
        - summary
        - style
      properties:
        task:
          type: string
          description: The "task" field outlines the specific requirements and objectives for generating the content. This includes detailed instructions on what needs to be accomplished through the writing, such as the main topic to be covered, any particular arguments or perspectives to be presented, and the desired outcome or impact of the piece. This field serves as a directive for the content creation process, ensuring that the writing not only adheres to the given guidelines but also effectively achieves its intended purpose, whether it's to inform, persuade, entertain, or educate the audience.

        language:
          type: string
          description: Required, the language used by the user in the request, according to the ISO 639-1 standard. For Chinese, use zh-CN for Simplified Chinese and zh-TW for Traditional Chinese.
        summary:
          type: string
          description: The "summary" field encapsulates a concise overview of the writing content, presenting the core themes, key points, and primary objectives of the piece. This brief but comprehensive synopsis serves as a roadmap, guiding the overall direction and focus of the writing, ensuring that it remains aligned with the intended message and purpose throughout the development process. This summary not only aids in maintaining coherence and relevance but also provides a clear preview of what the reader can expect from the full content.
        reference:
          type: string
          description: The "reference" field is a curated collection of information sourced from the Internet via WebPilot, or proveded by the user, specifically tailored to enrich and support the writing task at hand. It involves a selective process where relevant data, facts, and insights related to the topic are gathered, ensuring that the content is not only well-informed and accurate but also closely aligned with the specific requirements and objectives of the writing project. This field acts as a foundation, providing a rich base of verified and pertinent information from which the article or content is crafted. This field would be long.
        style:
          type: string
          description: The "style" field in content creation is a detailed framework encompassing three pivotal components - the writing tone or style, the target audience, and the publication medium. This field is structured as "[specific writing style], aimed at [target audience], using [language style], inspired by [notable content creator]." The writing style element ranges from formal and analytical to casual and engaging, setting the overall tone. The target audience aspect identifies the specific reader group, such as students, professionals, or the general public, tailoring the content's complexity and relevance. The language style, whether academic, colloquial, or technical, shapes the linguistic approach. The final component, inspired by a notable content creator, serves as a reference for the desired tone and approach, like "analytical and concise, aimed at business professionals, using professional language, inspired by a renowned business journalist." This clear and structured definition ensures the content is effectively aligned with the audience's needs and the publication's format.

    generateContentResponse:
      type: object
      properties:
        message:
          type: string
          description: Result message of the request

    generateContentError:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        detail:
          type: string
          description: error detail

    visitWebPageResponse:
      type: object
      properties:
        title:
          type: string
          description: The title of this web page
        content:
          type: string
          description: The content of the web page's url to be summarized
        meta:
          type: object
          description: The Html meta info of the web page
        links:
          type: array
          description: Some links in the web page
          items:
            type: string
        extra_search_results:
          type: array
          description: Additional Search results
          items:
            type: object
            properties:
              title:
                type: string
                description: the title of this search result
              link:
                type: string
                description: the link of this search result
              snippet:
                type: string
                description: the snippet of this search result
        todo:
          type: array
          description: what to do with the content
          items:
            type: string
        tips:
          type: array
          description: Tips placed at the end of the answer
          items:
            type: string
        rules:
          description: Adherence is required when outputting content.
          items:
            type: string

    visitWebPageRequest:
      type: object
      required:
        - link
        - ur
      properties:
        link:
          type: string
          description: Required, The web page's url to visit and retrieve content from.
        ur:
          type: string
          description: Required, a clear statement of the user's request, can be used as a search query and may include search operators.
        lp:
          type: boolean
          description: Required, Whether the link is directly provided by the user
        rt:
          type: boolean
          description: If the last request doesn't meet user's need, set this to true when trying to retry another request.
        l:
          type: string
          description: Required, the language used by the user in the request, according to the ISO 639-1 standard. For Chinese, use zh-CN for Simplified Chinese and zh-TW for Traditional Chinese.
    visitWebPageError:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        detail:
          type: string
          description: error detail

:bili_040: :bili_040: :bili_040:
然后每次要调用插件的时候先点一下 WebPilot 再对话即可。


直接写在 System Prompt 会方便点。!不同问题还会分别搜索

长图会被压窄影响版面,折叠起来。


:bili_040: :bili_040: :bili_040:

不过 按量计费的付费用户 慎用插件,Tokens 爆炸。

55 Likes

导入那些参数怎么填啊 能出个教程么

3 Likes

补上了

2 Likes

是不是敲错了哈哈 nextchat

4 Likes

感谢大佬教程

1 Like

1 Like

:bili_040: 那就手动复制代码进去吧。可能 URL 跳 CF 盾了。

Inter mac 输入框无法输入 :rofl:

Mark一下,研究一下能不能放oi里用:heart_eyes:

好好好,学习了!

ChatGPT, #DeepSeek添加

2.15.4 插件自定义里面没有代理的选项

插件玩明白了

换一个思路,直接修改插件,告诉AI需要搜索XXX时就相当于检索链接https://lite.duckduckgo.com/lite?q=XXX就不用提示词了

用claude改了下

openapi: 3.0.1
info:
  title: webPilot
  description: |-
    This API provides a web page reader functionality that can also be used for searching.
    When users want to search for information, they can use the webPageReader to access
    DuckDuckGo search results by providing a search query.

  version: 'v1.2'
servers:
  - url: https://gpts.webpilot.ai
paths:
  /api/read:
    post:
      operationId: webPageReader
      x-openai-isConsequential: false
      summary: Visit web page or perform search
      requestBody:
        required: true
        content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageRequest'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageResponse'
        "400":
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/visitWebPageError'
components:
  schemas:
    visitWebPageRequest:
      type: object
      required:
        - link
        - ur
      properties:
        link:
          type: string
          description: Required, The web page's url to visit and retrieve content from. For search queries, use 'https://lite.duckduckgo.com/lite?q=YOUR_QUERY_HERE'.
        ur:
          type: string
          description: Required, a clear statement of the user's request, can be used as a search query and may include search operators.
        lp:
          type: boolean
          description: Required, Whether the link is directly provided by the user
        rt:
          type: boolean
          description: If the last request doesn't meet user's need, set this to true when trying to retry another request.
        l:
          type: string
          description: Required, the language used by the user in the request, according to the ISO 639-1 standard. For Chinese, use zh-CN for Simplified Chinese and zh-TW for Traditional Chinese.

    visitWebPageResponse:
      type: object
      properties:
        title:
          type: string
          description: The title of this web page
        content:
          type: string
          description: The content of the web page's url to be summarized
        meta:
          type: object
          description: The Html meta info of the web page
        links:
          type: array
          description: Some links in the web page
          items:
            type: string
        extra_search_results:
          type: array
          description: Additional Search results
          items:
            type: object
            properties:
              title:
                type: string
                description: the title of this search result
              link:
                type: string
                description: the link of this search result
              snippet:
                type: string
                description: the snippet of this search result
        todo:
          type: array
          description: what to do with the content
          items:
            type: string
        tips:
          type: array
          description: Tips placed at the end of the answer
          items:
            type: string
        rules:
          description: Adherence is required when outputting content.
          items:
            type: string

    visitWebPageError:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        detail:
          type: string
          description: error detail

关键就是:

        link:
          type: string
          description: Required, The web page's url to visit and retrieve content from. For search queries, use 'https://lite.duckduckgo.com/lite?q=YOUR_QUERY_HERE'.
2 Likes


真不错

1 Like

感谢分享大佬厉害啊

#ChatGPT移除

:bili_040: :bili_040: :bili_040:
这插件还有很多用法,相当于一个仿生爬虫了。

2 Likes

我只说一句:
谨慎对客户使用
因为:没有脱敏 !!! 政治

哥们你在说啥?