Skip to content

Commit

Permalink
Merge pull request #48 from Callgent/user-as-a-service
Browse files Browse the repository at this point in the history
User as a service
  • Loading branch information
Jamesp918 authored Aug 14, 2024
2 parents 0af2701 + 0acf9d8 commit b758f52
Show file tree
Hide file tree
Showing 52 changed files with 1,617 additions and 157 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ slug: 5-reasons-why-callgent.com-is-revolutionizing-business-operations
title: 🚀 5 Reasons Why Callgent is Revolutionizing Business Operations
authors: jamesp
tags: [Industry Trends, Architecture Patterns, Product Design]
keywords: [AI-powered business operation platform, seamless system integration solutions, natural language workflow automation, integrate business systems without coding, AI integration in enterprise operations, no-code AI tools for businesses, automate business operations with AI, Callgent open-source enterprise solutions, AI iPaaS]
keywords: [Customer Service, Help Desk, IT Service Management, AI-powered business operation platform, natural language workflow automation, AI integration in enterprise operations, no-code AI tools for businesses, automate business operations with AI, AI iPaaS]
description: Uncover how Callgent revolutionizes business operations by simplifying complex processes with its innovative no-code, AI-driven platform. Learn about its features, integrations, and benefits for various business environments.

---
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ AI Large Language Models (LLMs) are ushering in a new golden age of [Home-Cooked

## What is Generative UI?

From now on, forget the traditional software paradigm.
From now on, forget about the traditional software paradigm.

Imagine if we treated every interaction between a user and an app as a chat, with the only difference being that the content of the chat is not text, but rather a collection of widgets.

<figure>
![textual chat => widget chat](./generative-app.png)
</figure>

<!-- truncate -->

Expand All @@ -33,7 +35,9 @@ How does callgent leverage generative UI, as we name it `Callgentive UI`.

A picture is worth a thousand words:

<figure>
![Callgentive UI](./callgentive-ui.png)
</figure>

With predefined business services and standard widgets, the `Home-Cooked Software` works as follows,

Expand Down
4 changes: 2 additions & 2 deletions developer/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: Explore the innovative architecture of Callgent, where services and
# Concepts and Architecture

The core of the callgent architecture, is to encapsulate every **service** and **user** behind a `callgent`.
Then build various endpoints into third-party platforms, so that any users and services are naturally connected anywhere in their native ways: webpages, chatting, mail, APIs..
Then build various endpoints into third-party platforms, so that any users and services are naturally connected anywhere in their native ways: webpages, chatting, email, APIs..

Above this, we add a layer of semantic invocations, empowered by large language models (LLMs), to make the callgent able to understand and react to any user/system's intents.

Expand All @@ -27,7 +27,7 @@ Each system service, and every user is encapsulated into a `Callgent`.

### Calling Anywhere

Requesting a callgent is done through various `Calling Endpoint`, integrated into third-party platforms. So systems and users are naturally connected anywhere in their native ways: Webpages, chatting, mail, APIs..
Requesting a callgent is done through various `Calling Endpoint`, integrated into third-party platforms. So systems and users are naturally connected anywhere in their native ways: Webpages, chatting, email, APIs..

#### User-as-a-Service

Expand Down
2 changes: 1 addition & 1 deletion docs/advanced-topics/callgent-hub.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
sidebar_position: 2
sidebar_position: 4
---

# Callgent Hub
Expand Down
49 changes: 49 additions & 0 deletions docs/advanced-topics/composite-callgent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
sidebar_position: 2
keywords: [composite callgent, group callgent, Nested Callgents]
description: Learn how to create and manage a Composite Callgent. Discover how to handle complex call requests, utilize nested callgents, and perform map/reduce operations. Simplify your call process with a single call endpoint and efficient callgent orchestration..
---

# Group of Callgents

Multiple callgents can naturally be combined to form a new composite callgent, working together to handle a complex call request.

## Creating a Composite Callgent

Similar to a regular callgent, which maintains a list of `function entries` to automatically map each request to a function entry, call it, and return the result, a composite callgent maintains a list of callgents. This allows each request to be automatically mapped to a `callgent entry`, called, and the result returned.

:::tip
Callgent entries come in two types: `function entries` and `callgent entries`. These two types of entries can be mixed together.

A callgent that contains `callgent entries` is typically referred to as a composite callgent.
:::

## Composite Callgent Invocation Process

When a request reaches a composite callgent, the composite callgent automatically selects a `callgent entry` based on the semantic information in the request and invokes that callgent entry.

The callgent entry can be a regular callgent or another composite callgent. If the `callgent entry` is another composite callgent, that composite callgent will recursively process the request until it is fully handled.

:::tip
Composite callgents can be nested, forming a call tree. Each node in the call tree is a callgent, and each node can call other nodes.
:::

## Multiple Internal Invocations

A callgent automatically maps a single request to an entry for processing and retrieves the response result. Based on the original request, the callgent decides whether to return the response to the caller or continue calling the next entry. This process repeats until the final result is returned to the caller.

### Request with Collection Data

If the request contains collection data, the callgent may automatically perform map/reduce operations on the collection and map it to entry calls as needed.

## Advantages of Composite Callgent

Composite Callgent allows multiple callgents to work together while maintaining a single call endpoint, enabling the handling of complex call requests.

:::info
Composite Callgent allows you to interact with a single callgent to invoke multiple callgents, simplifying the call process.
:::

:::tip
If you prefer to decide which callgents handle each task, i.e., you manually orchestrate multiple callgents, you can choose not to rely on Composite Callgent.
:::
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"label": "Event Driven Orchestration",
"position": 2,
"position": 3,
"link": {
"type": "doc",
"id": "orchestration"
Expand Down
3 changes: 2 additions & 1 deletion docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,11 @@ const config: Config = {
position: "right",
},
{
href: process.env.SITE_URL + "/signin",
href: process.env.SITE_URL + "/signin?redirect=",
position: "right",
label: "Login",
className: "navbar-login-btn internal teal-btn",
target: "_self",
},
],
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
---
sidebar_position: 2
keywords: [组合式Callgent, 复杂调用请求, 嵌套Callgent, Callgent编排]
description: 了解如何创建和管理组合式Callgent。发现如何处理复杂调用请求,利用嵌套Callgent和Map/Reduce操作。通过单一调用端点和高效的Callgent编排简化您的调用流程。
---

# Group of Callgents

多个callgents可以自然地组合起来,形成一个新的组合式callgent,共同处理一个复杂的调用请求。

## 创建一个Group Callgent

类比一下普通callgent,其内部会维护一个function entries列表,从而使得每个请求可以自动映射到一个function entry上,调用并返回结果。

同理,创建一个group callgent,其内部会维护一个callgents列表,从而使得每个请求可以自动映射到一个callgent entry上,调用并返回结果。

:::tip
callgent内部的entry有2个类型:function entry和callgent entry。两种entries可以混合一起。

具有callgent entry的的callgent,我们通常称之为group callgent。
:::

## Group Callgent的调用流程

当请求到达group callgent时,group callgent会根据请求中的语义信息,自动选择一个callgent entry,并调用该callgent entry。

callgent entry可以是普通的callgent,也可以是另一个group callgent。如果callgent entry是另一个group callgent,那么该group callgent会递归地处理请求,直到请求被处理完毕。

:::tip
group callgent可以嵌套调用,从而形成一个调用树。调用树中的每个节点都是一个callgent,每个节点都可以调用其他节点。
:::

## Multiple Internal Invocations

Callgent会自动将单个请求,映射到一个entry上处理并拿到响应结果,基于原始的请求,Callgent会决定是否返回响应给调用者,还是继续调用下一个entry;如此循环,直至最终返回结果给调用者。

### Request with Collection Data

如果请求中包含集合数据,那么callgent可能会根据需求,自动将集合做map/reduce,并映射到entry调用上。

## Group Callgent的优势

Group Callgent在保持单一调用端点的前提下,可以使得多个callgent协同工作,从而处理复杂的调用请求。

:::info
Group Callgent使得你只需与单个callgent交互,就可以调用多个callgent,从而简化了调用流程。
:::

:::tip
如果你希望自行决定每个任务希望由哪些callgent处理,也就是说你自行编排多个Callgents,则你也可以不依赖Group Callgent。
:::
2 changes: 1 addition & 1 deletion i18n/zh/docusaurus-plugin-content-docs/current/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Bridge all traditional gaps between systems and users:
- zero code development by just callgents and users orchestration
- everyone may be a product manager
- Orchestrated services may be exposed any where, by polymorphic interface plugins:
- as mail address
- as email address
- in IM channels
- on generative web pages
- VR/AR, etc.
Expand Down
4 changes: 3 additions & 1 deletion solutions/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ keywords: [Callgent function-calling technique, integrate AI with email and Slac
---

# Introduction
Offer users some solutions for getting to know how to define and make use of Callgents.
Our goal is that even users without a technical background can easily build their own tools through Callgent and complete their tasks efficiently.

The following documents provide users with some solutions on how to define and utilize Callgents.

## User as a Service
We do have SAAS, IAAS, and PAAS, and their essence lies in taking Software, Infrastructure, and Platform as the vital tools for building software to fulfill our business demands. Hereinafter, we will present to you UaaS (User as a Service). UaaS is a fresh concept which allows users to construct software with the help of AI without having to write code. Actually, the task is fulfilled by another user behind the service, who responds to the task through either email or chat tools like Slack or via a rest-api or other scenarios.
Expand Down
4 changes: 4 additions & 0 deletions solutions/showcase/generative-ui/generative-ui.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ From now on, forget the traditional software paradigm.

Imagine if we treated every interaction between a user and an app as a chat, with the only difference being that the content of the chat is not text, but rather a collection of widgets.

<figure>
![textual chat => widget chat](./generative-app.png)
</figure>

Users interact with widgets to send chat requests to AI agents, which then decide how to process the request, encapsulate the result in widgets, and present it to the user in a certain way.

Expand All @@ -29,7 +31,9 @@ How does callgent leverage generative UI, as we name it `Callgentive UI`.

A picture is worth a thousand words:

<figure>
![Callgentive UI](./callgentive-ui.png)
</figure>

With predefined business services and standard widgets, the `Home-Cooked Software` works as follows,

Expand Down
2 changes: 1 addition & 1 deletion solutions/showcase/user-as-a-service/_category_.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
"collapsed": true,
"link": {
"type": "generated-index",
"description": "Now, let's encapsulate a user as a REST-API service. By default, the user may respond to invocations by email. And user can respond from Slack channels and other scenarios easily."
"description": "Now, let's encapsulate a user as a REST-API service. By default, the user may respond to invocations by email. Also user can respond from Slack channels and other scenarios easily."
}
}
55 changes: 55 additions & 0 deletions solutions/showcase/user-as-a-service/create-callgent.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
sidebar_position: 2
title: Create Callgent
description: .
keywords: [user as a service]
---

import CreateEndpoints from "@site/src/components/user-as-a-service/create-endpoints"
import CreateCallgent from "@site/src/components/user-as-a-service/create-callgent"
import ImportApi from "@site/src/components/user-as-a-service/import-api"
import Email from "@site/src/components/quick-start/email"
import CascadingMenu from "@site/src/components/tree"

Now let's create the `recruit` callgent, and import the API definition into the callgent.

## Create a new callgent

We can use the following widget to create a new callgent. A callgent contains a list of client endpoints and a list of server endpoints.

{/* <pre><CreateCallgent /></pre> */}
<CascadingMenu adaptorKey="Email" name="Recruitment" />

**Client endpoints** define a method that can be invoked by the user, we can have multiple client endpoints, like email type, restapi type, web type etc, system will auto generates email type and restapi type client endpoints.
Email and restapi are the basic comunicating type of the client endpoint. And we can also define advanced type like web type in the later examples.
1. The email type of client endpoint generates an email address for the user to send an email to in order to send the business request.
2. For the restapi type of client endpoint, you need to provide a predefined restful API definition which uses the OpenAPI specification. Then, you can invoke the restapi to send the business request.
3. The web type of client endpoint generates a web page for the user to send a web request to provide the business request.

For example we choose `web type client` endpoint here.

A **server endpoint** delineates methods that encapsulate and forward the request to the actual service used to accomplish your tasks.
In this case, we can use the `recruit` service endpoint to fullfill our tasks.

{/*
## Create a new Endpoints
<pre><CreateEndpoints /></pre>
:::info
You may view all your callgents in the [Callgent Dashboard](https://app.callgent.com/dashboard) page.
:::
## Create a service-endpoint
This callgent will be assigned an email address which is used to comunicate with the services for you, you can get the callgent email adress just like <Email />,
later you can send an email as a request to this address to accomplish your taks. And meanwhile a SEP(service-endpoint) will be created to connected to the your authorised services
## Import API definition into the callgent
<pre><ImportApi /></pre>
Paste the API documentation below, and click the `Import` button.
*/}


<pre>widget to invoke `https://api.callgent.com/docs/api#/CallgentFunctions/CallgentFunctionsController_importBatch`</pre>
Loading

0 comments on commit b758f52

Please sign in to comment.