You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未获ChatGPT插件开发权限时,能否开发类插件及方案查询

无需ChatGPT插件权限的类插件开发方案及资料渠道

一、核心替代方案

1. 基于OpenAI API构建自定义工具调用逻辑

绕开ChatGPT插件商店权限限制,手动实现类似插件的工具调用流程:

  • 参照插件的openapi.yaml/plugin.json格式,定义工具的名称、功能描述、参数要求
  • 将工具描述写入系统提示词,引导GPT-4/gpt-3.5-turbo-16k判断是否需要调用工具
  • 解析模型输出的调用指令,自行调用对应服务后,将结果返回给模型生成最终回答

示例伪代码:

import json
import openai

# 自定义工具定义
tools = [
    {
        "name": "document_retrieval",
        "description": "从知识库检索相关文档,输入为查询关键词",
        "parameters": {"query": "字符串类型的查询内容"}
    }
]

# 系统提示词,明确工具调用规则
system_prompt = f"""你可调用以下工具:{json.dumps(tools)}。如需调用工具,请按格式输出:<tool_call>{{"name": "工具名", "parameters": {{参数键值对}}}}</tool_call>"""

# 第一步:请求模型判断是否调用工具
first_response = openai.ChatCompletion.create(
    model="gpt-4",
    messages=[
        {"role": "system", "content": system_prompt},
        {"role": "user", "content": "请说明XX项目的技术架构细节"}
    ]
)

# 第二步:解析调用指令并执行工具
if "<tool_call>" in first_response.choices[0].message.content:
    call_content = first_response.choices[0].message.content.split("<tool_call>")[1].split("</tool_call>")[0]
    tool_call = json.loads(call_content)
    
    if tool_call["name"] == "document_retrieval":
        # 调用本地启动的retrieval-plugin服务
        retrieval_result = your_http_request("http://localhost:8000/query", {"query": tool_call["parameters"]["query"]})
        
        # 第三步:将工具结果返回模型生成最终回答
        final_response = openai.ChatCompletion.create(
            model="gpt-4",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": "请说明XX项目的技术架构细节"},
                {"role": "assistant", "content": f"已调用document_retrieval工具,结果:{retrieval_result}"}
            ]
        )
        print(final_response.choices[0].message.content)

2. 基于LangChain框架快速搭建类插件能力

利用LangChain的Tool和Agent模块,自动处理工具调用的调度、解析流程:

  • 用Tool类封装自定义服务(如检索、第三方API调用)
  • 选择适配的Agent(如CHAT_ZERO_SHOT_REACT_DESCRIPTION),让框架自动完成模型判断、工具调用、结果整合

示例代码片段:

from langchain.agents import AgentType, initialize_agent, Tool
from langchain.chat_models import ChatOpenAI
import requests

# 封装本地retrieval-plugin服务
def retrieval_plugin_call(query):
    resp = requests.post("http://localhost:8000/query", json={"query": query})
    return resp.json()["results"]

# 定义LangChain工具
tools = [
    Tool(
        name="文档检索",
        func=retrieval_plugin_call,
        description="用于从知识库检索相关文档内容,输入为查询关键词"
    )
]

# 初始化Agent
llm = ChatOpenAI(model="gpt-4")
agent = initialize_agent(
    tools, llm,
    agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,
    verbose=True
)

# 执行查询
agent.run("请说明XX项目的技术架构细节")

二、资料获取渠道

  • OpenAI官方文档:重点研读Function Calling章节,这是自定义工具调用的核心规范
  • LangChain官方文档:Agent、Tool模块的教程,覆盖多场景工具集成案例
  • GitHub开源项目:搜索chatgpt tool calling或langchain agent,参考已落地的自定义工具实现
  • 技术社区内容:关注OpenAI开发者博客、LangChain官方博客,获取最新工具调用实践技巧

三、chatgpt-retrieval-plugin本地测试替代方案

无需通过ChatGPT插件流程,直接验证检索功能:

  1. 执行poetry run dev启动本地服务后,用HTTP请求直接调用/query接口测试检索逻辑
  2. 将该接口封装为上述自定义工具,接入GPT的工具调用流程,实现类插件的检索能力

内容的提问来源于stack exchange,提问作者Oleg Petrov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 07:06:12