Add Activepieces integration for workflow automation
- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "KI-gestützter Assistent für Ihre Wissensdatenbank.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Generiere deinen API-Schlüssel im Dashboard: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Eigene Quellen hinzufügen",
|
||||
"Ask Questions": "Fragen stellen",
|
||||
"Get Custom Source by ID": "Benutzerdefinierte Quelle durch ID erhalten",
|
||||
"Custom API Call": "Eigener API-Aufruf",
|
||||
"Upload one or more files as custom sources for training": "Laden Sie eine oder mehrere Dateien als benutzerdefinierte Quellen für das Training hoch",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Abfragen Ihrer Chat-Hilfe-Wissensdatenbank und erhalten von KI-generierte Antworten mit Quellenzitierungen",
|
||||
"Retrieve single source details by ID": "Einzelne Quellendetails per ID abrufen",
|
||||
"Make a custom API call to a specific endpoint": "Einen benutzerdefinierten API-Aufruf an einen bestimmten Endpunkt machen",
|
||||
"Files": "Dateien",
|
||||
"Team ID": "Team-ID",
|
||||
"Question": "Frage",
|
||||
"Parent Timestamp": "Übergeordneter Zeitstempel",
|
||||
"Message Timestamp": "Nachrichtenzeitstempel",
|
||||
"Source ID": "Quell-ID",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopfzeilen",
|
||||
"Query Parameters": "Abfrageparameter",
|
||||
"Body": "Körper",
|
||||
"Response is Binary ?": "Antwort ist binär?",
|
||||
"No Error on Failure": "Kein Fehler bei Fehler",
|
||||
"Timeout (in seconds)": "Timeout (in Sekunden)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "Eine oder mehrere Dateien zum Hochladen (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "Optionale Team-ID (Standardmäßig org-weit)",
|
||||
"The question to ask the knowledge base": "Die Frage, um die Wissensdatenbank zu stellen",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Optionaler Unix-Zeitstempel für den Thread. Benutzen Sie den gleichen Wert für verwandte Fragen in einer Unterhaltung.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Optionaler Unix-Zeitstempel der aktuellen Nachricht. Benutzen Sie mit den Eltern-Ts für Folgefragen in einem Gespräch.",
|
||||
"The ID of the custom source to retrieve": "Die ID der benutzerdefinierten Quelle zum Abrufen",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisierungs-Header werden automatisch von Ihrer Verbindung injiziert.",
|
||||
"Enable for files like PDFs, images, etc..": "Aktivieren für Dateien wie PDFs, Bilder, etc..",
|
||||
"GET": "ERHALTEN",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "LÖSCHEN",
|
||||
"HEAD": "HEAD"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "Asistente de AI-powered para tu base de conocimiento.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Genera tu clave API en el panel: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Añadir fuentes personalizadas",
|
||||
"Ask Questions": "Hacer preguntas",
|
||||
"Get Custom Source by ID": "Obtener Fuente Personalizada por ID",
|
||||
"Custom API Call": "Llamada API personalizada",
|
||||
"Upload one or more files as custom sources for training": "Subir uno o más archivos como fuentes personalizadas para la formación",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Consulta tu Base de Conocimiento de Ayuda de Chat y recibe respuestas generadas por AIs con citas de origen",
|
||||
"Retrieve single source details by ID": "Recuperar los detalles de una única fuente por ID",
|
||||
"Make a custom API call to a specific endpoint": "Hacer una llamada API personalizada a un extremo específico",
|
||||
"Files": "Archivos",
|
||||
"Team ID": "ID de equipo",
|
||||
"Question": "Pregunta",
|
||||
"Parent Timestamp": "Marca de tiempo padre",
|
||||
"Message Timestamp": "Marca de tiempo del mensaje",
|
||||
"Source ID": "ID fuente",
|
||||
"Method": "Método",
|
||||
"Headers": "Encabezados",
|
||||
"Query Parameters": "Parámetros de consulta",
|
||||
"Body": "Cuerpo",
|
||||
"Response is Binary ?": "¿Respuesta es binaria?",
|
||||
"No Error on Failure": "No hay ningún error en fallo",
|
||||
"Timeout (in seconds)": "Tiempo de espera (en segundos)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "Uno o más archivos para subir (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "ID de equipo opcional (por defecto org-wid)",
|
||||
"The question to ask the knowledge base": "La pregunta para hacer la base de conocimiento",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Marca de tiempo de Unix opcional para el hilo de la conversación. Utilice el mismo valor para las preguntas relacionadas en una conversación.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Marca de tiempo Unix opcional del mensaje actual. Usar con los padres para preguntas de seguimiento en una conversación.",
|
||||
"The ID of the custom source to retrieve": "El ID de la fuente personalizada a recuperar",
|
||||
"Authorization headers are injected automatically from your connection.": "Las cabeceras de autorización se inyectan automáticamente desde tu conexión.",
|
||||
"Enable for files like PDFs, images, etc..": "Activar para archivos como PDF, imágenes, etc.",
|
||||
"GET": "RECOGER",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "BORRAR",
|
||||
"HEAD": "LIMPIO"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "Assistante à l'IA pour votre base de connaissances.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Ajouter des sources personnalisées",
|
||||
"Ask Questions": "Poser des questions",
|
||||
"Get Custom Source by ID": "Obtenir une source personnalisée par ID",
|
||||
"Custom API Call": "Appel d'API personnalisé",
|
||||
"Upload one or more files as custom sources for training": "Télécharger un ou plusieurs fichiers en tant que sources personnalisées pour la formation",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Interrogez-vous dans votre base de connaissances de l'aide de chat et recevez les réponses générées par l'IA avec les citations de la source",
|
||||
"Retrieve single source details by ID": "Récupérer les détails d'une seule source par ID",
|
||||
"Make a custom API call to a specific endpoint": "Passer un appel API personnalisé à un endpoint spécifique",
|
||||
"Files": "Fichiers",
|
||||
"Team ID": "ID d'équipe",
|
||||
"Question": "Question",
|
||||
"Parent Timestamp": "Horodatage parent",
|
||||
"Message Timestamp": "Horodatage du message",
|
||||
"Source ID": "ID source",
|
||||
"Method": "Méthode",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Paramètres de requête",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "La réponse est Binaire ?",
|
||||
"No Error on Failure": "Aucune erreur en cas d'échec",
|
||||
"Timeout (in seconds)": "Délai d'expiration (en secondes)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "Un ou plusieurs fichiers à télécharger (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "ID d'équipe optionnel (par défaut à l'entière)",
|
||||
"The question to ask the knowledge base": "La question à poser à la base de connaissances",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Horodatage Unix optionnel pour le threading de conversation. Utilisez la même valeur pour les questions connexes dans une conversation.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Horodatage UNIX optionnel du message courant. Utiliser avec les Ts parents pour les questions de suivi dans une conversation.",
|
||||
"The ID of the custom source to retrieve": "L'ID de la source personnalisée à récupérer",
|
||||
"Authorization headers are injected automatically from your connection.": "Les Headers d'autorisation sont injectés automatiquement à partir de votre connexion.",
|
||||
"Enable for files like PDFs, images, etc..": "Activer pour les fichiers comme les PDFs, les images, etc.",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "あなたの知識ベースのためのAI搭載アシスタント。",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n ダッシュボードでAPIキーを生成します: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "カスタムソースを追加",
|
||||
"Ask Questions": "質問する",
|
||||
"Get Custom Source by ID": "IDでカスタムソースを取得",
|
||||
"Custom API Call": "カスタムAPI通話",
|
||||
"Upload one or more files as custom sources for training": "トレーニングのカスタムソースとして1つ以上のファイルをアップロード",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "チャット援助のナレッジベースに問い合わせて、ソースの引用でAI生成された回答を受け取る",
|
||||
"Retrieve single source details by ID": "IDで単一のソースの詳細を取得",
|
||||
"Make a custom API call to a specific endpoint": "特定のエンドポイントへのカスタム API コールを実行します。",
|
||||
"Files": "ファイル",
|
||||
"Team ID": "チームID",
|
||||
"Question": "質問",
|
||||
"Parent Timestamp": "親のタイムスタンプ",
|
||||
"Message Timestamp": "メッセージのタイムスタンプ",
|
||||
"Source ID": "ソースID",
|
||||
"Method": "方法",
|
||||
"Headers": "ヘッダー",
|
||||
"Query Parameters": "クエリパラメータ",
|
||||
"Body": "本文",
|
||||
"Response is Binary ?": "応答はバイナリですか?",
|
||||
"No Error on Failure": "失敗時にエラーはありません",
|
||||
"Timeout (in seconds)": "タイムアウト(秒)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "アップロードするファイル(PDF、Word、テキスト、Markdown、HTML、Excel、CSV、PowerPoint、PNG、JPEG、GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "任意のチームID(デフォルトは組織全体)",
|
||||
"The question to ask the knowledge base": "ナレッジベースに質問する",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "会話スレッドの任意の Unix タイムスタンプ。会話内の関連質問には同じ値を使用します。",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "現在のメッセージの任意の Unix タイムスタンプ。会話のフォローアップの質問には、親と一緒に使用します。",
|
||||
"The ID of the custom source to retrieve": "取得するカスタム ソースの ID",
|
||||
"Authorization headers are injected automatically from your connection.": "認証ヘッダは接続から自動的に注入されます。",
|
||||
"Enable for files like PDFs, images, etc..": "PDF、画像などのファイルを有効にします。",
|
||||
"GET": "取得",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "削除",
|
||||
"HEAD": "頭"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "Assistent op AI-basis voor jouw kennisbasis.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Genereer uw API-sleutel in het dashboard: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Aangepaste bronnen toevoegen",
|
||||
"Ask Questions": "Stel vragen",
|
||||
"Get Custom Source by ID": "Krijg aangepaste bron via ID",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Upload one or more files as custom sources for training": "Upload een of meer bestanden als aangepaste bronnen voor training",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Vraag uw Chat Aid kennisbank op en ontvang AI-gegenereerde antwoorden met broncitaten",
|
||||
"Retrieve single source details by ID": "Haal enkele brondetails op via ID",
|
||||
"Make a custom API call to a specific endpoint": "Maak een aangepaste API call naar een specifiek eindpunt",
|
||||
"Files": "Bestanden",
|
||||
"Team ID": "Team ID",
|
||||
"Question": "Vraag",
|
||||
"Parent Timestamp": "Bovenliggende tijdstempel",
|
||||
"Message Timestamp": "Bericht Tijdsstempel",
|
||||
"Source ID": "Bron ID",
|
||||
"Method": "Methode",
|
||||
"Headers": "Kopteksten",
|
||||
"Query Parameters": "Query parameters",
|
||||
"Body": "Lichaam",
|
||||
"Response is Binary ?": "Antwoord is binair?",
|
||||
"No Error on Failure": "Geen fout bij fout",
|
||||
"Timeout (in seconds)": "Time-out (in seconden)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "Een of meer te uploaden bestanden (PDF, Word, Tekst, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "Optioneel team ID (standaard op org-wide)",
|
||||
"The question to ask the knowledge base": "De vraag om de kennisbank te stellen",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Optionele Unix tijdstempel voor conversatie. Gebruik dezelfde waarde voor gerelateerde vragen in een gesprek.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Optionele Unix tijdstempel van het huidige bericht. Gebruik met ouderT's voor vervolgvragen in een gesprek.",
|
||||
"The ID of the custom source to retrieve": "Het ID van de te ophalen aangepaste bron",
|
||||
"Authorization headers are injected automatically from your connection.": "Autorisatie headers worden automatisch geïnjecteerd vanuit uw verbinding.",
|
||||
"Enable for files like PDFs, images, etc..": "Inschakelen voor bestanden zoals PDF's, afbeeldingen etc..",
|
||||
"GET": "KRIJG",
|
||||
"POST": "POSTE",
|
||||
"PATCH": "BEKIJK",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "VERWIJDEREN",
|
||||
"HEAD": "HOOFD"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "Assistente com poder IP para sua base de conhecimento.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Gere sua chave de API no painel: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Adicionar fontes personalizadas",
|
||||
"Ask Questions": "Faça perguntas",
|
||||
"Get Custom Source by ID": "Obter Fonte Personalizada pelo ID",
|
||||
"Custom API Call": "Chamada de API personalizada",
|
||||
"Upload one or more files as custom sources for training": "Carregar um ou mais arquivos como fontes personalizadas para o treinamento",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Consulte sua base de conhecimento do Chat Aid e receba respostas geradas por IA com citações de origem",
|
||||
"Retrieve single source details by ID": "Recuperar detalhes de fonte única por ID",
|
||||
"Make a custom API call to a specific endpoint": "Faça uma chamada de API personalizada para um ponto de extremidade específico",
|
||||
"Files": "arquivos",
|
||||
"Team ID": "ID da Equipe",
|
||||
"Question": "Questão",
|
||||
"Parent Timestamp": "Timestamp pai",
|
||||
"Message Timestamp": "Timestamp da Mensagem",
|
||||
"Source ID": "ID da fonte",
|
||||
"Method": "Método",
|
||||
"Headers": "Cabeçalhos",
|
||||
"Query Parameters": "Parâmetros da consulta",
|
||||
"Body": "Conteúdo",
|
||||
"Response is Binary ?": "A resposta é binária ?",
|
||||
"No Error on Failure": "Nenhum erro no Failure",
|
||||
"Timeout (in seconds)": "Tempo limite (em segundos)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "Um ou mais arquivos a serem enviados (PDF, Word, Texto, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "ID opcional da equipe (o padrão é todo o org)",
|
||||
"The question to ask the knowledge base": "A pergunta para perguntar a base de conhecimento",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Carimbo de tempo Unix opcional para leitura de conversas. Use o mesmo valor para questões relacionadas em uma conversa.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Carimbo de tempo Unix opcional. Use com Ts Pai para perguntas de acompanhamento em uma conversa.",
|
||||
"The ID of the custom source to retrieve": "A ID da fonte personalizada para recuperar",
|
||||
"Authorization headers are injected automatically from your connection.": "Os cabeçalhos de autorização são inseridos automaticamente a partir da sua conexão.",
|
||||
"Enable for files like PDFs, images, etc..": "Habilitar para arquivos como PDFs, imagens, etc..",
|
||||
"GET": "OBTER",
|
||||
"POST": "POSTAR",
|
||||
"PATCH": "COMPRAR",
|
||||
"PUT": "COLOCAR",
|
||||
"DELETE": "EXCLUIR",
|
||||
"HEAD": "CABEÇA"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "AI-powered assistant for your knowledge base.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Add Custom Sources",
|
||||
"Ask Questions": "Ask Questions",
|
||||
"Get Custom Source by ID": "Get Custom Source by ID",
|
||||
"Custom API Call": "Custom API Call",
|
||||
"Upload one or more files as custom sources for training": "Upload one or more files as custom sources for training",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Query your Chat Aid knowledge base and receive AI-generated answers with source citations",
|
||||
"Retrieve single source details by ID": "Retrieve single source details by ID",
|
||||
"Make a custom API call to a specific endpoint": "Make a custom API call to a specific endpoint",
|
||||
"Files": "Files",
|
||||
"Team ID": "Team ID",
|
||||
"Question": "Question",
|
||||
"Parent Timestamp": "Parent Timestamp",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Source ID": "Source ID",
|
||||
"Method": "Method",
|
||||
"Headers": "Headers",
|
||||
"Query Parameters": "Query Parameters",
|
||||
"Body": "Body",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "No Error on Failure",
|
||||
"Timeout (in seconds)": "Timeout (in seconds)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "Optional team ID (defaults to org-wide)",
|
||||
"The question to ask the knowledge base": "The question to ask the knowledge base",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.",
|
||||
"The ID of the custom source to retrieve": "The ID of the custom source to retrieve",
|
||||
"Authorization headers are injected automatically from your connection.": "Authorization headers are injected automatically from your connection.",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"GET": "GET",
|
||||
"POST": "POST",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "PUT",
|
||||
"DELETE": "DELETE",
|
||||
"HEAD": "HEAD"
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"AI-powered assistant for your knowledge base.": "AI-powered assistant for your knowledge base.",
|
||||
"\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n": "\n Generate your API key in the dashboard: https://app.chataid.com/settings/automations\n",
|
||||
"Add Custom Sources": "Add Custom Sources",
|
||||
"Ask Questions": "Ask Questions",
|
||||
"Get Custom Source by ID": "Get Custom Source by ID",
|
||||
"Custom API Call": "自定义 API 呼叫",
|
||||
"Upload one or more files as custom sources for training": "Upload one or more files as custom sources for training",
|
||||
"Query your Chat Aid knowledge base and receive AI-generated answers with source citations": "Query your Chat Aid knowledge base and receive AI-generated answers with source citations",
|
||||
"Retrieve single source details by ID": "Retrieve single source details by ID",
|
||||
"Make a custom API call to a specific endpoint": "将一个自定义 API 调用到一个特定的终点",
|
||||
"Files": "Files",
|
||||
"Team ID": "Team ID",
|
||||
"Question": "Question",
|
||||
"Parent Timestamp": "Parent Timestamp",
|
||||
"Message Timestamp": "Message Timestamp",
|
||||
"Source ID": "Source ID",
|
||||
"Method": "方法",
|
||||
"Headers": "信头",
|
||||
"Query Parameters": "查询参数",
|
||||
"Body": "正文内容",
|
||||
"Response is Binary ?": "Response is Binary ?",
|
||||
"No Error on Failure": "失败时没有错误",
|
||||
"Timeout (in seconds)": "超时(秒)",
|
||||
"One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)": "One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)",
|
||||
"Optional team ID (defaults to org-wide)": "Optional team ID (defaults to org-wide)",
|
||||
"The question to ask the knowledge base": "The question to ask the knowledge base",
|
||||
"Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.": "Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.",
|
||||
"Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.": "Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.",
|
||||
"The ID of the custom source to retrieve": "The ID of the custom source to retrieve",
|
||||
"Authorization headers are injected automatically from your connection.": "授权头自动从您的连接中注入。",
|
||||
"Enable for files like PDFs, images, etc..": "Enable for files like PDFs, images, etc..",
|
||||
"GET": "获取",
|
||||
"POST": "帖子",
|
||||
"PATCH": "PATCH",
|
||||
"PUT": "弹出",
|
||||
"DELETE": "删除",
|
||||
"HEAD": "黑色"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import { createPiece } from '@activepieces/pieces-framework';
|
||||
import { ChatAidAuth } from './lib/common/auth';
|
||||
import { addCustomSources } from './lib/actions/add-custom-sources';
|
||||
import { askQuestions } from './lib/actions/ask-questions';
|
||||
import { getCustomSourceById } from './lib/actions/get-custom-source-by-id';
|
||||
import { PieceCategory } from '@activepieces/shared';
|
||||
import { createCustomApiCallAction } from '@activepieces/pieces-common';
|
||||
import { BASE_URL } from './lib/common/client';
|
||||
|
||||
export const chatAid = createPiece({
|
||||
displayName: 'Chat Aid',
|
||||
description: 'AI-powered assistant for your knowledge base.',
|
||||
auth: ChatAidAuth,
|
||||
minimumSupportedRelease: '0.36.1',
|
||||
logoUrl: 'https://cdn.activepieces.com/pieces/chat-aid.png',
|
||||
categories: [PieceCategory.ARTIFICIAL_INTELLIGENCE],
|
||||
authors: ['sanket-a11y'],
|
||||
actions: [
|
||||
addCustomSources,
|
||||
askQuestions,
|
||||
getCustomSourceById,
|
||||
createCustomApiCallAction({
|
||||
baseUrl: () => BASE_URL,
|
||||
auth: ChatAidAuth,
|
||||
authMapping: async (auth) => ({
|
||||
Authorization: `${auth}`,
|
||||
}),
|
||||
}),
|
||||
],
|
||||
triggers: [],
|
||||
});
|
||||
@@ -0,0 +1,71 @@
|
||||
import { ApFile, createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { ChatAidAuth } from '../common/auth';
|
||||
import { HttpMethod, HttpRequest, httpClient } from '@activepieces/pieces-common';
|
||||
import { BASE_URL } from '../common/client';
|
||||
import FormData from 'form-data';
|
||||
|
||||
interface FileObject {
|
||||
file: ApFile;
|
||||
}
|
||||
|
||||
export const addCustomSources = createAction({
|
||||
auth: ChatAidAuth,
|
||||
name: 'addCustomSources',
|
||||
displayName: 'Add Custom Sources',
|
||||
description: 'Upload one or more files as custom sources for training',
|
||||
props: {
|
||||
files: Property.Array({
|
||||
displayName: 'Files',
|
||||
description:
|
||||
'One or more files to upload (PDF, Word, Text, Markdown, HTML, Excel, CSV, PowerPoint, PNG, JPEG, GIF)',
|
||||
properties: {
|
||||
file: Property.File({
|
||||
displayName: 'File',
|
||||
description: 'File to upload',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
required: true,
|
||||
}),
|
||||
teamId: Property.ShortText({
|
||||
displayName: 'Team ID',
|
||||
description: 'Optional team ID (defaults to org-wide)',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const files = (context.propsValue.files as FileObject[]) || [];
|
||||
const teamId = context.propsValue.teamId as string | undefined;
|
||||
|
||||
if (!files || files.length === 0) {
|
||||
throw new Error('At least one file is required');
|
||||
}
|
||||
|
||||
const formData = new FormData();
|
||||
|
||||
files.forEach((fileObj) => {
|
||||
const file = fileObj.file;
|
||||
const fileBuffer = file.base64 ? Buffer.from(file.base64, 'base64') : file.data;
|
||||
formData.append('files', fileBuffer, file.filename);
|
||||
});
|
||||
|
||||
let path = '/external/sources/custom';
|
||||
if (teamId) {
|
||||
path += `?teamId=${encodeURIComponent(teamId)}`;
|
||||
}
|
||||
|
||||
const request: HttpRequest = {
|
||||
method: HttpMethod.POST,
|
||||
url: `${BASE_URL}${path}`,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
'Content-Type': 'multipart/form-data',
|
||||
},
|
||||
body: formData,
|
||||
};
|
||||
|
||||
const response = await httpClient.sendRequest<never>(request);
|
||||
|
||||
return response.body;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,92 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { ChatAidAuth } from '../common/auth';
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
import { makeRequest } from '../common/client';
|
||||
|
||||
export const askQuestions = createAction({
|
||||
auth: ChatAidAuth,
|
||||
name: 'askQuestions',
|
||||
displayName: 'Ask Questions',
|
||||
description:
|
||||
'Query your Chat Aid knowledge base and receive AI-generated answers with source citations',
|
||||
props: {
|
||||
prompt: Property.LongText({
|
||||
displayName: 'Question',
|
||||
description: 'The question to ask the knowledge base',
|
||||
required: true,
|
||||
}),
|
||||
parentTs: Property.ShortText({
|
||||
displayName: 'Parent Timestamp',
|
||||
description:
|
||||
'Optional Unix timestamp for conversation threading. Use the same value for related questions in a conversation.',
|
||||
required: false,
|
||||
}),
|
||||
messageTs: Property.ShortText({
|
||||
displayName: 'Message Timestamp',
|
||||
description:
|
||||
'Optional Unix timestamp of current message. Use with parentTs for follow-up questions in a conversation.',
|
||||
required: false,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const { prompt, parentTs, messageTs } = context.propsValue;
|
||||
|
||||
const requestBody: any = {
|
||||
prompt,
|
||||
};
|
||||
|
||||
if (parentTs) {
|
||||
requestBody['parentTs'] = parentTs;
|
||||
}
|
||||
|
||||
if (messageTs) {
|
||||
requestBody['messageTs'] = messageTs;
|
||||
}
|
||||
|
||||
const submitResponse = await makeRequest(
|
||||
context.auth.secret_text,
|
||||
HttpMethod.POST,
|
||||
'/chat/completions/custom',
|
||||
requestBody
|
||||
);
|
||||
|
||||
if (!submitResponse.ok) {
|
||||
throw new Error(`Failed to submit question: ${submitResponse}`);
|
||||
}
|
||||
|
||||
const { promptId, pollEndpoint, timeInterval } = submitResponse;
|
||||
|
||||
const start = Date.now();
|
||||
const timeoutMs = 120 * 1000;
|
||||
|
||||
const sleep = (ms: number) => new Promise((res) => setTimeout(res, ms));
|
||||
|
||||
while (Date.now() - start < timeoutMs) {
|
||||
await sleep(timeInterval * 1000);
|
||||
|
||||
const pollResponse = await httpClient.sendRequest({
|
||||
method: HttpMethod.GET,
|
||||
url: pollEndpoint,
|
||||
headers: {
|
||||
Authorization: context.auth.secret_text,
|
||||
},
|
||||
});
|
||||
|
||||
const pollData = pollResponse.body;
|
||||
|
||||
if (!pollData.ok) {
|
||||
throw new Error(`Poll request failed: ${pollData}`);
|
||||
}
|
||||
|
||||
const { canPoll } = pollData.data;
|
||||
|
||||
if (!canPoll) {
|
||||
return {
|
||||
pollData,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('Polling timeout: Answer not ready within 60 seconds');
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,30 @@
|
||||
import { createAction, Property } from '@activepieces/pieces-framework';
|
||||
import { ChatAidAuth } from '../common/auth';
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { makeRequest } from '../common/client';
|
||||
|
||||
export const getCustomSourceById = createAction({
|
||||
auth: ChatAidAuth,
|
||||
name: 'getCustomSourceById',
|
||||
displayName: 'Get Custom Source by ID',
|
||||
description: 'Retrieve single source details by ID',
|
||||
props: {
|
||||
sourceId: Property.ShortText({
|
||||
displayName: 'Source ID',
|
||||
description: 'The ID of the custom source to retrieve',
|
||||
required: true,
|
||||
}),
|
||||
},
|
||||
async run(context) {
|
||||
const sourceId = context.propsValue.sourceId as string;
|
||||
|
||||
const response = await makeRequest(
|
||||
context.auth.secret_text,
|
||||
HttpMethod.GET,
|
||||
`/external/sources/custom/${encodeURIComponent(sourceId)}`,
|
||||
undefined
|
||||
);
|
||||
|
||||
return response;
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,36 @@
|
||||
import { PieceAuth, Property } from '@activepieces/pieces-framework';
|
||||
|
||||
import { HttpMethod } from '@activepieces/pieces-common';
|
||||
import { makeRequest } from './client';
|
||||
|
||||
export const ChatAidAuth = PieceAuth.SecretText({
|
||||
displayName: 'Chat Aid API Key',
|
||||
description: `
|
||||
Generate your API key in the dashboard: https://app.chataid.com/settings/automations
|
||||
`,
|
||||
required: true,
|
||||
validate: async ({ auth }) => {
|
||||
if (auth) {
|
||||
try {
|
||||
await makeRequest(
|
||||
auth,
|
||||
HttpMethod.GET,
|
||||
'/external/sources/custom',
|
||||
{}
|
||||
);
|
||||
return {
|
||||
valid: true,
|
||||
};
|
||||
} catch (error) {
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
}
|
||||
}
|
||||
return {
|
||||
valid: false,
|
||||
error: 'Invalid Api Key',
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,31 @@
|
||||
import { HttpMethod, httpClient } from '@activepieces/pieces-common';
|
||||
|
||||
export const BASE_URL = `https://api.chataid.com`;
|
||||
|
||||
export async function makeRequest(
|
||||
api_key: string,
|
||||
method: HttpMethod,
|
||||
path: string,
|
||||
body?: unknown
|
||||
) {
|
||||
try {
|
||||
const headers: Record<string, string> = {
|
||||
Authorization: `${api_key}`,
|
||||
};
|
||||
|
||||
if (body && !(body instanceof FormData)) {
|
||||
headers['Content-Type'] = 'application/json';
|
||||
}
|
||||
|
||||
const response = await httpClient.sendRequest({
|
||||
method,
|
||||
url: `${BASE_URL}${path}`,
|
||||
headers,
|
||||
body,
|
||||
});
|
||||
return response.body;
|
||||
} catch (error: unknown) {
|
||||
const errorMessage = error instanceof Error ? error.message : String(error);
|
||||
throw new Error(`Unexpected error: ${errorMessage}`);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user