kyuubi/build
Cheng Pan f1eb449c42
[KYUUBI #4544] Initial implement Kyuubi Chat Engine
### _Why are the changes needed?_

Introduce a brand new CHAT engine, it's supposed to support different backends, e.g. ChatGPT, 文心一言, etc.

This PR implements the following providers:

- ECHO, simply replies a welcome message.
- GPT: a.k.a ChatGPT, powered by OpenAI, which requires a API key for authentication. https://platform.openai.com/account/api-keys

Add the following configurations in `kyuubi-defaults.conf`
```
kyuubi.engine.chat.provider=[ECHO|GPT]
kyuubi.engine.chat.gpt.apiKey=<chat-gpt-api-key>
```

Open an ECHO beeline chat engine.
```
beeline -u 'jdbc:hive2://localhost:10009/?kyuubi.engine.type=CHAT;kyuubi.engine.chat.provider=ECHO'
```

```
Connecting to jdbc:hive2://localhost:10009/
Connected to: Kyuubi Chat Engine (version 1.8.0-SNAPSHOT)
Driver: Kyuubi Project Hive JDBC Client (version 1.7.0)
Beeline version 1.7.0 by Apache Kyuubi
0: jdbc:hive2://localhost:10009/> Hello, Kyuubi!;
+----------------------------------------+
|                 reply                  |
+----------------------------------------+
| This is ChatKyuubi, nice to meet you!  |
+----------------------------------------+
1 row selected (0.397 seconds)
```

Open a ChatGPT beeline chat engine. (make sure your network can connect the open API and configure the API key)
```
beeline -u 'jdbc:hive2://localhost:10009/?kyuubi.engine.type=CHAT;kyuubi.engine.chat.provider=GPT'
```

<img width="1109" alt="image" src="https://user-images.githubusercontent.com/26535726/225813625-a002e6e2-3b0d-4194-b061-2e215d58ba94.png">

### _How was this patch tested?_
- [x] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [x] Add screenshots for manual tests if appropriate

- [x] [Run test](https://kyuubi.readthedocs.io/en/master/develop_tools/testing.html#running-tests) locally before make a pull request

Closes #4544 from pan3793/chatgpt.

Closes #4544

87bdebb6d [Cheng Pan] nit
f7dee18f3 [Cheng Pan] Update docs
9beb55162 [cxzl25] chat api (#1)
af38bdc7c [Cheng Pan] update docs
9aa6d83a6 [Cheng Pan] Initial implement Kyuubi Chat Engine

Lead-authored-by: Cheng Pan <chengpan@apache.org>
Co-authored-by: cxzl25 <cxzl25@users.noreply.github.com>
Signed-off-by: Cheng Pan <chengpan@apache.org>
2023-03-17 13:39:30 +08:00
..
release [KYUUBI #4397] [BUILD] build/dist supports --web-ui 2023-02-23 11:45:58 +08:00
dependency.sh [KYUUBI #4191] [Improvement] Skip fetching Maven dependency snapshot update when building dependencyList 2023-01-30 13:47:12 +08:00
dist [KYUUBI #4544] Initial implement Kyuubi Chat Engine 2023-03-17 13:39:30 +08:00
Dockerfile [KYUUBI #4288] Use eclipse-temurin:8-jdk-focal as default base image 2023-02-10 12:25:57 +08:00
kyuubi-build-info [KYUUBI #4187] [Improvement] Print revision commit time on server startup 2023-01-20 23:43:29 +08:00
kyuubi-build-info.cmd [KYUUBI #3903] Support windows generate kyuubi-version-info.properties 2022-12-05 20:27:43 +08:00
mvn [KYUUBI #4247][FOLLOWUP] Fix build/mvn version comparison 2023-02-09 20:45:02 +08:00
mvnd [KYUUBI #4502] Reduce build concurency mvnd.minThreads in CI builds 2023-03-15 17:08:59 +08:00
util.sh [KYUUBI #889] [BUILD] Package release tarball 2021-08-06 13:17:51 +08:00