⚡ Introduce a new high-performing standalone chat API (#1200)
Closes #1154 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added authentication functionality for user sessions in chat API. - Introduced chat-related API endpoints for starting, previewing, and continuing chat sessions, and streaming messages. - Implemented WhatsApp API webhook handling for receiving and processing messages. - Added environment variable `NEXT_PUBLIC_CHAT_API_URL` for chat API URL configuration. - **Bug Fixes** - Adjusted file upload logic to correctly determine the API host. - Fixed message streaming URL in chat integration with OpenAI. - **Documentation** - Updated guides for creating blocks, local installation, self-hosting, and deployment to use `bun` instead of `pnpm`. - **Refactor** - Refactored chat API functionalities to use modular architecture. - Simplified client log saving and session update functionalities by using external functions. - Transitioned package management and workflow commands to use `bun`. - **Chores** - Switched to `bun` for package management in Dockerfiles and GitHub workflows. - Added new Dockerfile for chat API service setup with Bun framework. - Updated `.prettierignore` and documentation with new commands. - **Style** - No visible changes to end-users. - **Tests** - No visible changes to end-users. - **Revert** - No reverts in this release. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
17
packages/env/env.ts
vendored
17
packages/env/env.ts
vendored
@ -46,7 +46,9 @@ const boolean = z.enum(['true', 'false']).transform((value) => value === 'true')
|
||||
|
||||
const baseEnv = {
|
||||
server: {
|
||||
NODE_ENV: z.enum(['development', 'production', 'test']).optional(),
|
||||
NODE_ENV: z
|
||||
.enum(['development', 'staging', 'production', 'test'])
|
||||
.optional(),
|
||||
DATABASE_URL: z
|
||||
.string()
|
||||
.url()
|
||||
@ -99,6 +101,15 @@ const baseEnv = {
|
||||
),
|
||||
NEXT_PUBLIC_ONBOARDING_TYPEBOT_ID: z.string().min(1).optional(),
|
||||
NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE: z.coerce.number().optional(),
|
||||
NEXT_PUBLIC_CHAT_API_URL: z.string().url().optional(),
|
||||
// To remove to deploy chat API for all typebots
|
||||
NEXT_PUBLIC_USE_EXPERIMENTAL_CHAT_API_ON: z
|
||||
.string()
|
||||
.min(1)
|
||||
.transform((val) =>
|
||||
val.split('/').map((s) => s.split(',').map((s) => s.split('|')))
|
||||
)
|
||||
.optional(),
|
||||
NEXT_PUBLIC_VIEWER_404_TITLE: z.string().optional().default('404'),
|
||||
NEXT_PUBLIC_VIEWER_404_SUBTITLE: z
|
||||
.string()
|
||||
@ -114,6 +125,10 @@ const baseEnv = {
|
||||
NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE: getRuntimeVariable(
|
||||
'NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE'
|
||||
),
|
||||
NEXT_PUBLIC_CHAT_API_URL: getRuntimeVariable('NEXT_PUBLIC_CHAT_API_URL'),
|
||||
NEXT_PUBLIC_USE_EXPERIMENTAL_CHAT_API_ON: getRuntimeVariable(
|
||||
'NEXT_PUBLIC_USE_EXPERIMENTAL_CHAT_API_ON'
|
||||
),
|
||||
NEXT_PUBLIC_VIEWER_404_TITLE: getRuntimeVariable(
|
||||
'NEXT_PUBLIC_VIEWER_404_TITLE'
|
||||
),
|
||||
|
Reference in New Issue
Block a user