Microsoft Introduces TypeChat
Written by Kay Ewbank   
Monday, 31 July 2023

Microsoft has introduced TypeChat, an experimental library that makes it easy to build natural language interfaces using types.

Microsoft says the library aims to answer questions such as:

"How do we augment traditional UI with natural language interfaces?"


"How do we use AI to take a user request and turn it into something our apps can operate on?"

TypeChat uses the type definitions in your codebase to retrieve structured AI responses that are type-safe.


The library is intended to provide an alternative to the difficulties of building natural language interfaces that rely on complex decision trees to determine intent and collect the required inputs to take action. The TypeChat team says that while large language models (LLMs) have made this easier by enabling developers to take natural language input from a user and match that to intent, they introduced their own challenges including the need to constrain the model's reply for safety, structure responses from the model for further processing, and ensuring that the reply from the model is valid. The team says that prompt engineering aims to solve these problems, but comes with a steep learning curve and increased fragility as the prompt increases in size.

TypeChat replaces prompt engineering with schema engineering. To use it you define types that represent the intents supported in your natural language application. Developers can add additional intents to a schema into a discriminated union, or can make schemas hierarchical by using a "meta-schema" to choose one or more sub-schemas based on user input.

For example, a UI for a coffee shop might have a schema that included:

export type Product = BakeryProducts | LatteDrinks |
EspressoDrinks | CoffeeDrinks;
export interface BakeryProducts {
    type: 'BakeryProducts';
    name: 'apple bran muffin' | 'blueberry muffin' |
'lemon poppyseed muffin' | 'bagel';
    options: (BakeryOptions | BakeryPreparations)[];

After defining your types, TypeChat then constructs a prompt to the LLM using types. It also validates the LLM response to confirm it conforms to the schema, and if the validation fails, repairs the non-conforming output through further language model interaction. Finally, it summarizes the instance and confirms that it aligns with user intent.

The team says that in addition to using a data schema to turn some user intent into a structured response; TypeChat also makes it possible to use an "API schema" to construct basic programs. This is the sort of fusion of techniques that are going to be needed to tame the wilder aspects of large language models.

TypeChat is available now on GitHub.


More Information

TypeChat On GitHub

Related Articles

Google's Large Language Model Takes Control

Open AI And Microsoft Exciting Times For AI 

Runaway Success Of ChatGPT

ChatGPT Coming Soon To Azure OpenAI Services

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


Quadrupedal Parkour

What is it with robots and parkour? First Atlas and now ANYmal want to impress us with their prowess. For the roboticist, however, emulating the skills of free running can enhance the capabilities of  [ ... ]

Insights From AI Index 2024 Report

Published this week, the latest Stanford HAI AI Index report tracks worldwide trends in AI. A mix of its new research and findings from many other sources, it provides a wide ranging look at how  [ ... ]

More News

raspberry pi books



or email your comment to:

Last Updated ( Monday, 31 July 2023 )