网友表示:
「借助 TypeChat,AI 能输出准确的 JSON 以与人类研发的系统集成。」
「TypeChat 将 prompt 工程替换为 schema 工程:无需编写非结构化的自然语言 prompt 来描述所需输出的格式,而是编写 TS 类型定义。」npm install typechat至于为何构建 TypeChat 库,微软表示,当前人们可以与 LLM 进行对话交流,在这当中,需要解析语言,然而,人类输入的语言和 LLM 理解的语言在结构上差别很大,典型的软件很难从原始文本中重建语言。TypeChat 可以帮助 LLM 以 JSON 的形式响应,并且响应结果非常合理:例如用户要求将这句话「我可以要一份蓝莓松饼和一杯特级拿铁咖啡吗?」转化成 JSON 格式,TypeChat 响应结果如下:
//./src/sentimentSchema.ts // The following is a schema definition for determining the sentiment of a some user input. // 堆代码 duidaima.com export interface SentimentResponse { /** The sentiment of the text. */ sentiment: "negative" | "neutral" | "positive"; } //./src/main.ts import * as fs from "fs"; import * as path from "path"; import dotenv from "dotenv"; import * as typechat from "typechat"; import {SentimentResponse} from "./sentimentSchema"; // Load environment variables. dotenv.config ({ path: path.join (__dirname, "../.env") }); // Create a language model based on the environment variables. const model = typechat.createLanguageModel (process.env); // Load up the contents of our "Response" schema. const schema = fs.readFileSync (path.join (__dirname, "sentimentSchema.ts"), "utf8"); const translator = typechat.createJsonTranslator<SentimentResponse>(model, schema, "SentimentResponse"); // Process requests interactively. typechat.processRequests ("😀>", /*inputFile*/undefined, async (request) => { const response = await translator.translate (request); if (!response.success) { console.log (response.message); return; } console.log (`The sentiment is ${response.data.sentiment}`); });TypeChat 可以以多种不同的方式使用。目前微软讨论的方式主要是使用数据模式将用户意图转换为结构化响应;然而,TypeChat 还可以使用 API 模式来构建基本程序。