Intellij Idea Typescript到JSON Schema或反之亦然-在Intellij中使用代码完成/导航

7ajki6be  于 5个月前  发布在  TypeScript
关注(0)|答案(1)|浏览(64)

我们在Typescript项目的各个部分使用OpenAI函数调用,这涉及到为您希望OpenAI响应的响应格式创建JSON Schema。
一旦我们得到了响应,我们就想再次在Typescript中与这个对象交互,所以目前我实际上是用相同的信息创建了两个模型。
似乎'json-schema-to-ts'就是为了解决这个问题而创建的。从他们的例子中可以看出:

const dogSchema = {
  type: "object",
  properties: {
    name: { type: "string" },
    age: { type: "integer" },
    hobbies: { type: "array", items: { type: "string" } },
    favoriteFood: { enum: ["pizza", "taco", "fries"] },
  },
  required: ["name", "age"],
} as const;

type Dog = FromSchema<typeof dogSchema>;

字符串
然而,当我在Typescript中使用这个例子时,例如:

let dog: Dog
dog. // <---- I get no auto completion at this point


如上所述,当我使用这个类型时,没有自动完成显示这个模式的属性。我做错了什么吗?
我理想的是能够定义一个Typescript接口或类,并在运行时将其转换为JSON Schema传递给OpenAI,然后将响应转换回该接口/类,这可能吗?

zf9nrax1

zf9nrax11#

TypeBox(https://www.npmjs.com/package/@sinclair/typebox)似乎具有我需要的功能。
它不像从Typescript接口开始那么方便(我假设这是不可能的,因为它们在运行时不存在?),但是定义足够简洁,并且IDE在转换为Typescript类型时识别正确的模型(这对我来说不适用于'json-schema-to-ts')。

相关问题