2
0
Files
bot/packages/forge/blocks/difyAi/auth.ts
Abdullah bin Amir 0817fbaebb Add Dify.AI block (#1183)
Implemented [Dify.AI](https://dify.ai) Block
- Dify Features:
-- Can Create Multiple Chat Bots
-- Assign Knowledge base/vector database to chat bots
-- Variables send by client to be used in the prompt
-- Options of custom and cloud AI LLMs to be changed with on click

- Dify API Function/Action Implemented
-- Create Chat Message (Takes in input variables, query, conversation
id, user id and returns answer, usage metadata and conversation id)

- Future Implantations with this block
-- Streaming response 
-- File Upload for GPT Vision
-- Speech to text action

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced the ability to create chat messages within the Dify
platform.
	- Added secure authentication for Dify.AI accounts.
- Implemented a new Dify.AI block with integrated chat message creation
and logo display.
	- Enabled Dify.AI block in the repository for user access.

- **Enhancements**
- Enhanced security for API key input by changing it to a password
field.

- **Documentation**
	- Included new types to support Dify AI service responses.

- **Refactor**
- Updated schema imports and array listings to include the new Dify.AI
block.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Baptiste Arnaud <baptiste.arnaud95@gmail.com>
2024-01-29 10:52:29 +01:00

24 lines
685 B
TypeScript

import { option, AuthDefinition } from '@typebot.io/forge'
import { defaultBaseUrl } from './constants'
export const auth = {
type: 'encryptedCredentials',
name: 'Dify.AI account',
schema: option.object({
apiEndpoint: option.string.layout({
label: 'API Endpoint',
isRequired: true,
helperText: 'URI where the Service API is hosted.',
withVariableButton: false,
defaultValue: defaultBaseUrl,
}),
apiKey: option.string.layout({
label: 'App API key',
isRequired: true,
helperText: 'API Secret Key for your Dify App.',
inputType: 'password',
withVariableButton: false,
}),
}),
} satisfies AuthDefinition