微软开源TypeChat库,给大语言模型换种提示,一行代码安装

2023年 7月 24日 58.1k 0

在过去的几个月里,我们已经见证了围绕最新一波大语言模型掀起的讨论热潮。很多人以对话的方式与大模型进行交流,这也是最直接的方式。

但这一方式面临一个问题:如何将这些模型最好地集成到现有的应用程序界面中仍然存在很大的问题。

换句话说,我们如何利用人工智能将用户的请求转化为应用程序能够处理的内容?以及我们如何确保我们的应用程序是安全的,并且进行的工作可以让开发者和用户都信赖?

为了解决上述问题,微软开源了一个名为 TypeChat 的实验性库,它可以很容易地获得类型良好的结构化数据, 其在自然语言与应用程序模式(application schema)和 API 之间建立起了一座桥梁。

图片图片

项目地址:https://github.com/Microsoft/TypeChat

目前,TypeChat 已经与 OpenAI API 和 Azure OpenAI 服务进行了一些非常基本的集成。

网友表示:「借助 TypeChat,AI 能输出准确的 JSON 以与人类研发的系统集成。」

图片图片

「TypeChat 将 prompt 工程替换为 schema 工程:无需编写非结构化的自然语言 prompt 来描述所需输出的格式,而是编写 TS 类型定义。」

图片图片

还有网友表示 TypeChat 是迈向未来的一大步。

图片图片

TypeChat 介绍

只需一行代码就能启动并运行 TypeChat:

图片图片

至于为何构建 TypeChat 库,微软表示,当前人们可以与 LLM 进行对话交流,在这当中,需要解析语言,然而,人类输入的语言和 LLM 理解的语言在结构上差别很大,典型的软件很难从原始文本中重建语言。

TypeChat 可以帮助 LLM 以 JSON 的形式响应,并且响应结果非常合理:例如用户要求将这句话「我可以要一份蓝莓松饼和一杯特级拿铁咖啡吗?」转化成 JSON 格式,TypeChat 响应结果如下:

图片图片

微软表示,他们一直在提示符中使用 TypeScript 类型,可以说,给定一个提示和 TS 类型,聊天机器人就会使用这些类型构造一个新提示:

图片图片

图片图片

以下是将 TypeChat 连接到 LLM 并确定句子是否定、中性还是肯定的基本代码。

//./src/sentimentSchema.ts


// The following is a schema definition for determining the sentiment of a some user input.


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(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 模式来构建基本程序。

想要体验的小伙伴,可以上手试试了。

参考链接:https://microsoft.github.io/TypeChat/blog/introducing-typechat/

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论