README ¶
chat with document API server sample
an API server sample for load and chat with your own document.
Build from local code
-
Clone
arcadia
git clone https://github.cm/kubeagi/arcadia.git
-
Build
go build -o bin/chat_with_document examples/chat_with_document/*.go
-
Start the API server
$ ./bin/chat_with_document start -h Start the server Usage: chat start [usage] [flags] Flags: --addr string used to listen and serve GET request (default ":8800") --apikey string used to connect to ZhiPuAI platform -h, --help help for start --namespace string the vector database namespace (default "arcadia") --vector-store string the chromaDB vector database url $ ./bin/chat_with_document start --apikey [YOUR_API_KEY] --vector-store [YOUR_CHROMADB_URL] Starting chat server example... Connecting platform... Connecting vector database... Heartbeat: &{200 OK 200 HTTP/1.1 1 1 map[Content-Length:[44] Content-Type:[application/json] Date:[Thu, 14 Sep 2023 08:08:04 GMT] Server:[uvicorn]] {{"nanosecond heartbeat":1694678884430848151}} 44 [] false false map[] 0xc000386200 <nil>} Creating HTTP server... ┌───────────────────────────────────────────────────┐ │ chat-server │ │ Fiber v2.49.1 │ │ http://127.0.0.1:8800 │ │ (bound on host 0.0.0.0 and port 8800) │ │ │ │ Handlers ............. 5 Processes ........... 1 │ │ Prefork ....... Disabled PID ............. 30984 │ └───────────────────────────────────────────────────┘
Usage
Load document into vector store
Example:
curl --request POST \
--url http://localhost:8800/load \
--header 'Content-Type: application/json' \
--data '{
"document": "KubeAGI 是 KubeBB 下的项目,致力于将大语言模型与 KubeBB 结合,助力开发者及 K8s 生态发展。",
"chunk-size": 2048,
"chunk-overlap": 128
}'
URL
POST /load
Parameter
Name | Must have | Type | Description |
---|---|---|---|
document | Yes | string | content of the document |
chunk-size | No | int | size of the split documents, default is 2048 |
chunk-overlap | No | int | overlap of the split documents, default is 128 |
Request Body
{
"document": "KubeAGI 是 KubeBB 下的项目,致力于将大语言模型与 KubeBB 结合,助力开发者及 K8s 生态发展。",
"chunk-size": 2048,
"chunk-overlap": 128
}
Response
{
"status": "OK"
}
Chat with document
Example:
curl --request POST \
--url http://localhost:8800/chat \
--header 'Content-Type: application/json' \
--data '{
"content": "什么是KubeAGI?"
}'
URL
POST /chat
Parameter
Name | Must have | Type | Description |
---|---|---|---|
content | Yes | string | chat content |
Request body
{
"content": "什么是KubeAGI?"
}
Response
{
"code":200,
"data":{
"request_id":"7936738270392008763",
"task_id":"7936738270392008763",
"task_status":"SUCCESS",
"usage":{
"total_tokens":189
},
"choices":[
{
"content":"KubeAGI 是一个项目,它是 KubeBB 的一部分,旨在将大语言模型与 KubeBB 相结合,以支持开发者和 K8s 生态系统的发展。KubeBB 是一个用于构建 Kubernetes 应用程序的平台,它提供了三个套件:内核 Kit、开放组件市场和底座 Kit。内核 Kit 提供声明式的组件生命周期管理和组件市场,并通过 Tekton 流水线强化低代码平台组件与底座服务的集成。开放组件市场是内核能力的 productization,作为适配底座服务的组件发布到官方组件仓库中使用,扩展 KubeBB 生态。底座 Kit 通过集成各种组件提供统一的认证中心和门户入口,包括 Low-Code Engine 和具有 Git 特性的关系数据库 Dolt。借助底座门户的菜单和路由资源和内核套件的组件管理能力,实现组件开发、测试到上线的全链路能力。",
"role":"assistant"
}
]},
"msg":"操作成功",
"success":true
}
Stream chat with document
Example:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"content": "KubeBB 有哪些核心套件?"}' \
http://localhost:8800/sse
URL
POST /chat
Parameter
Name | Must have | Type | Description |
---|---|---|---|
content | Yes | string | chat content |
Request body
{
"content": "KubeBB 有哪些核心套件?"
}
Response
KubeBB 的核心套件包括:
1. 内核 Kit:提供声明式的组件生命周期管理和组件市场,并通过 Tekton 流水线强化低代码平台组件与底座服务的集成。
2. 底座 Kit:提供开箱即用的云原生服务门户,包括用户、OIDC 认证、权限、审计、租户管理、门户服务等基础组件以及证书管理、Nginx Ingress 等集群组件。
3. 低码 Kit:依托 Low-Code Engine 和具有 Git 特性的关系数据库 Dolt 打造,并借助底座门户的菜单和路由资源以及内核套件的组件管理能力,实现组件开发、测试到上线的全链路能力。
关于 KubeBB 套件之间的关系,可以类比为:
- Kubernetes ~ 操作系统内核
- Core ~ 软件安装器
- 底座 Kit ~ 操作系统的系统软件,如 GUI、用户系统、网络等
- 低码组件开发 Kit ~ 操作系统软件开发工具
finish:
Documentation ¶
There is no documentation for this package.
Click to show internal directories.
Click to hide internal directories.