返回

一句话教会你如何让ChatGPT稳定输出JSON结构

人工智能

将 ChatGPT 的输出转化为 JSON:使用 TypeScript 的分步指南

在与 ChatGPT 互动时,程序员通常面临着一个挑战:如何让它提供结构化的、易于处理的数据。理想情况下,我们希望 ChatGPT 能够以 JSON 格式输出其响应。这种格式易于解析,可以轻松集成到应用程序和系统中。然而,默认情况下,ChatGPT 并不擅长生成 JSON。它的输出通常是无序的文本块,难以解析。

TypeScript 的力量

为了解决这个问题,我们可以借助 TypeScript 的力量。TypeScript 是一种静态类型的语言,可以帮助我们定义 JSON 数据的结构。通过使用 TypeScript,我们可以告诉 ChatGPT 应该生成什么样的 JSON 数据,并确保它遵循我们定义的结构。

分步指南

以下是使用 TypeScript 让 ChatGPT 稳定输出 JSON 结构的分步指南:

1. 定义 JSON 数据结构

首先,我们需要定义 JSON 数据的结构。为此,我们可以创建一个 TypeScript 接口,如下所示:

interface JSONData {
    name: string;
    age: number;
}

这个接口定义了一个名为 "JSONData" 的类型,它具有两个属性:"name"(字符串)和 "age"(数字)。

2. 使用 ChatGPT 生成 JSON 数据

接下来,我们需要使用 ChatGPT 生成 JSON 数据。我们可以使用以下请求体:

const requestBody = {
    prompt: {
        text: "生成一个 JSON 对象,具有以下结构:\n\n" +
            `interface JSONData {\n` +
            `    name: string;\n` +
            `    age: number;\n` +
            `}\n\n` +
            "将 'John' 作为 'name' 的值,将 25 作为 'age' 的值。"
    },
    examples: [
        {
            text: "我叫 John,今年 25 岁。",
            completion: JSON.stringify({ name: "John", age: 25 })
        }
    ]
};

此请求体会提示 ChatGPT 根据我们定义的 JSON 数据结构生成一个 JSON 对象。

3. 解析 ChatGPT 的输出

最后,我们需要解析 ChatGPT 的输出并将其转换为 JSON 字符串。我们可以使用以下代码:

fetch(
    "https://generativelanguage.googleapis.com/v1beta2/models/text-bison-001:generateText?key={{API_KEY}}",
    {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify(requestBody)
    }
)
.then((res) => res.json())
.then((data) => data.candidates[0].output);

此代码将发送请求,解析响应,并返回 ChatGPT 的输出作为 JSON 字符串。

示例代码

完整的示例代码如下:

function generateJSON(prompt: string): Promise<string> {
    interface JSONData {
        name: string;
        age: number;
    }

    const type: JSONData = {
        name: "",
        age: 0
    };

    const requestBody = {
        prompt: {
            text: prompt
        },
        examples: [
            {
                text: "我叫 John,今年 25 岁。",
                completion: JSON.stringify(type)
            }
        ]
    };

    return fetch(
        "https://generativelanguage.googleapis.com/v1beta2/models/text-bison-001:generateText?key={{API_KEY}}",
        {
            method: "POST",
            headers: {
                "Content-Type": "application/json"
            },
            body: JSON.stringify(requestBody)
        }
    )
    .then((res) => res.json())
    .then((data) => data.candidates[0].output);
}

结论

通过使用 TypeScript 和上面的方法,我们可以让 ChatGPT 轻松生成稳定的 JSON 结构。这对于处理 ChatGPT 的输出、集成到我们的应用程序和系统中非常有用。

常见问题解答

  1. 为什么要使用 TypeScript 来生成 JSON?

    TypeScript 可以帮助我们定义 JSON 数据的结构,确保 ChatGPT 遵循该结构生成输出。这使我们能够获得可预测且易于解析的 JSON 数据。

  2. 是否可以使用其他方法来生成 JSON?

    是的,可以使用其他方法,例如正则表达式或自定义解析器。但是,TypeScript 提供了一种更简单、更健壮的方法,特别是当我们处理复杂 JSON 结构时。

  3. 是否需要付费才能使用此方法?

    不,此方法是免费使用的。你只需要一个 ChatGPT API 密钥。

  4. 是否可以在任何编程语言中使用此方法?

    此方法依赖于 TypeScript,因此仅适用于使用 TypeScript 的项目。

  5. 如何进一步提高 JSON 输出的准确性?

    你可以通过提供更多明确的示例和提示来提高 ChatGPT 生成 JSON 输出的准确性。