Hello @baptisteArno, As we discussed in issue #1315 we created a basic implementation of Anthropic’s Claude AI block. This block is based on the OpenAI block and shares a similar structure. The most notable changes in this PR are: - Added the Claude AI block. - Added relevant documentation for the new block. - Formatted some other source files in order to pass git pre-hook checks. Some notes to be made: - Currently there is no way to dynamically fetch the model’s versions since there is no endpoint provided by the SDK. - All pre version-3 Claude models are hard-coded constant variables. - We have opened an issue for that on the SDK repository [here](https://github.com/anthropics/anthropic-sdk-typescript/issues/313). - We can implement in a new PR Claude’s new [Vision system](https://docs.anthropic.com/claude/docs/vision) which allows for image analysis and understanding. - This can be done in a later phase, given that you agree of course. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced the Anthropic block for creating chat messages with Claude AI in Typebot. - Added functionality to create chat messages using Anthropic AI SDK with configurable options. - Implemented encrypted credentials for Anthropic account integration. - Added constants and helpers for better handling of chat messages with Anthropic models. - Included Anthropic block in the list of enabled and forged blocks for broader access. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Retr0-01 <contact@retr0.dev> Co-authored-by: Baptiste Arnaud <baptiste.arnaud95@gmail.com> Co-authored-by: Baptiste Arnaud <contact@baptiste-arnaud.fr>
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
// Do not edit this file manually
|
|
import { anthropic } from '@typebot.io/anthropic-block'
|
|
import { openRouter } from '@typebot.io/open-router-block'
|
|
import { togetherAi } from '@typebot.io/together-ai-block'
|
|
import { elevenlabs } from '@typebot.io/elevenlabs-block'
|
|
import { difyAi } from '@typebot.io/dify-ai-block'
|
|
import { mistral } from '@typebot.io/mistral-block'
|
|
import { qrCode } from '@typebot.io/qrcode-block'
|
|
import { chatNode } from '@typebot.io/chat-node-block'
|
|
import { calCom } from '@typebot.io/cal-com-block'
|
|
import { zemanticAi } from '@typebot.io/zemantic-ai-block'
|
|
import { openAIBlock } from '@typebot.io/openai-block'
|
|
import {
|
|
BlockDefinition,
|
|
parseBlockCredentials,
|
|
parseBlockSchema,
|
|
} from '@typebot.io/forge'
|
|
import { enabledBlocks } from '@typebot.io/forge-repository'
|
|
import { z } from '@typebot.io/forge/zod'
|
|
|
|
export const forgedBlocks = [
|
|
openAIBlock,
|
|
zemanticAi,
|
|
calCom,
|
|
chatNode,
|
|
qrCode,
|
|
difyAi,
|
|
mistral,
|
|
elevenlabs,
|
|
anthropic,
|
|
togetherAi,
|
|
openRouter,
|
|
] as BlockDefinition<(typeof enabledBlocks)[number], any, any>[]
|
|
|
|
export type ForgedBlockDefinition = (typeof forgedBlocks)[number]
|
|
|
|
export const forgedBlockSchemas = forgedBlocks.map(parseBlockSchema)
|
|
export type ForgedBlock = z.infer<(typeof forgedBlockSchemas)[number]>
|
|
|
|
export const forgedCredentialsSchemas = forgedBlocks
|
|
.filter((b) => b.auth)
|
|
.map(parseBlockCredentials)
|