Super A.I. Chatbot
- Shopping A.I. Chatbot Application: https://nestia.io/chat/shopping
- Shopping Backend Repository: https://github.com/samchon/shopping-backend
- Shopping Swagger Document (
@nestia/editor
): https://nestia.io/editor/?url=…
The above demonstration video shows Shopping A.I. chatbot built with Nestia.
As you can see, just by delivering only swagger document of the shopping backend server, the shopping A.I. chatbot automatically composed. And in the Shopping A.I. chatbot, the user can search products, and take orders just by conversation texts.
No special coding and configuration required. Just deliver your swagger document. Then you can start conversation with your backend server performing the LLM (Large Language Model) function calling. The super A.I. chatbot selects proper functions defined in the swagger document by analyzing conversation contexts with user. And then the super A.I. chatbot requests the user to write arguments for the selected functions by conversation text, and actually calls the API function with the arguments.
If the swagger file you provide contains enough and reasonable level of functions, DTO schemas, and descriptions, everything is ready. Just put the swagger file to the Nestia A.I. Chatbot, you can start conversation with your backend server calling the API functions by chatting text.
Playground
You can test your backend server’s A.I. chatbot with the following playground.
Upload your Swagger document file to the playground website, and start conversation with your backend server. If your backend server’s documentation is well written so that the A.I. chatbot quality is satisfiable, you can start your own A.I. chatbot service from the next section Application Setup.
Application Setup
npm install @nestia/agent @nestia/chat @samchon/openapi openai
Install @nestia/chat
and its dependencies.
@nestia/chat
@nestia/agent
@samchon/openapi
openai
To make the super A.I. chatbot, you need to install the above libraries. All of them except @nestia/chat
are in the dependencies of the @nestia/chat
, but it would better to install them explicitly for the safe frontend application development.
import { NestiaAgent } from "@nestia/agent";
import { NestiaChatApplication } from "@nestia/chat";
import {
HttpLlm,
IHttpConnection,
IHttpLlmApplication,
OpenApi,
} from "@samchon/openapi";
import OpenAI from "openai";
import { useEffect, useState } from "react";
export const ShoppingChatApplication = (
props: ShoppingChatApplication.IProps,
) => {
const [application, setApplication] =
useState<IHttpLlmApplication<"chatgpt"> | null>(null);
useEffect(() => {
(async () => {
setApplication(
HttpLlm.application({
model: "chatgpt",
document: OpenApi.convert(
await fetch(
"https://raw.githubusercontent.com/samchon/shopping-backend/refs/heads/master/packages/api/customer.swagger.json",
).then((r) => r.json()),
),
}),
);
})().catch(console.error);
}, []);
if (application === null)
return (
<div>
<h2>Loading Swagger document</h2>
<hr />
<p>Wait for a moment please.</p>
<p>Loading Swagger document...</p>
</div>
);
const agent: NestiaAgent = new NestiaAgent({
provider: {
type: "chatgpt",
api: props.api,
model: "gpt-4o-mini",
},
controllers: [
{
protocol: "http",
name: "main",
application,
connection: props.connection,
},
],
config: {
locale: props.locale,
},
});
return <NestiaChatApplication agent={agent} />;
};
export namespace ShoppingChatApplication {
export interface IProps {
api: OpenAI;
connection: IHttpConnection;
name: string;
mobile: string;
locale?: string;
}
}
After setup, import and compose the A.I. chatbot like above.
The first thing you should do is composing OpenApi.IDocument
typed object from your swagger document. The OpenApi.IDocument
is an emended version of the OpenAPI v3.1 specification for the normalization. You can do it through OpenApi.convert()
function.
After that, you have to compose the IHttpLlmApplication
typed object from the HttpLlm.application()
function. The IHttpLlmApplication
object is a schema for the LLM function calling. As current Nestia supports only the OpenAI (The type name is chatgpt to avoid confusion due to the similar names openapi
/openai
), you should set the model
property to "chatgpt"
.
At last, create an NestiaAgent
instance. The IHttpLlmApplication
is a type of controller to the NestiaAgent
, and OpenAI client is a type of provider in the NestiaAgent
concept. After composing the NestiaAgent
, you can directly create the A.I. chatbot frontend application with the <NestiaChatApplication agent={agent} />
statement.
OpenAPI conversion process
You can learn more about the schema conversion process in the @samchon/openapi
repository.
Make Your A.I. Chatbot
Above @nestia/agent
and @nestia/chat
libraries are just for testing and demonstration. I’ve made them to prove a conncept that every backend servers providing swagger documents can be conversed with the A.I. chatbot, and nestia
is especially efficient for the A.I. chatbot development purpose.
However, @nestia/agent
support only OpenAI, and has not optimized for specific purpose. As it has not been optimized without any RAG (Retrieval Augmented Generation) models, it may consume a lot of LLM cost than what you may expected. Therefore, use the @nestia/agent
for studying the A.I. chatbot development, or just demonstrating your backend server before production development.
- Source Codes:
@nestia/agent
: https://github.com/samchon/nestia/tree/master/packages/agent@nestia/chat
: https://github.com/samchon/nestia/tree/master/packages/chat
Wrtn OS
The new era of software development.
If you are not familiar with LLM (Large Language Moodel) development or RAG implementation, you can take another option. Prepare your swagger document file, and visit WrtnLabs homepage https://wrtnlabs.io. You can create your own A.I. chatbot with “Wrtn OS”, and re-distribute it as you want. The A.I. assistant in the Wrtn OS is much more optimized and cost efficient than the @nestia/agent
, and it is fully open sourced.
Also, you can sell your swagger document (backend API functions) in the “Wrtn Store”, so that let other users to create their own A.I. chatbot with your backend API functions. Conversely, you can purchase the functions you need to create an A.I. chatbot from the store. If you have create an A.I. chatbot with only the functions purchased in the Wrtn Store, it is the no coding development.
I think this is a new way of software development, and a new way of software distribution. It is a new era of software development, and I hope you to be a part of it.