diff --git a/src/lib/stores/marketplace.ts b/src/lib/stores/marketplace.ts index 5e74be6422..02484e498b 100644 --- a/src/lib/stores/marketplace.ts +++ b/src/lib/stores/marketplace.ts @@ -902,6 +902,698 @@ export const marketplace: MarketplaceTemplate[] = [ type: 'text' } ] + }, + { + icon: 'icon-chip', + id: 'text-generation-with-huggingface', + name: 'Text generation', + tagline: 'Generate text using the Hugging Face inference API.', + permissions: ['any'], + events: [], + cron: '', + timeout: 30, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/text-generation-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'language-translation-with-huggingface', + name: 'Language translation', + tagline: 'Translate text using the Hugging Face inference API.', + permissions: ['any'], + events: [], + cron: '', + timeout: 30, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/language-translation-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'image-classification-with-huggingface', + name: 'Image classification', + tagline: 'Classify images using the Hugging Face inference API.', + permissions: ['any'], + events: ['buckets.*.files.*.create'], + cron: '', + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install && npm run setup', + 'src/main.js', + 'node/image-classification-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's Server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the responses are stored. Learn more.`, + value: 'ai', + placeholder: 'ai', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the responses are stored. Learn more.`, + value: 'image_classification', + placeholder: 'image_classification', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_BUCKET_ID', + description: `The ID of the bucket where the images are stored. Learn more.`, + value: 'image_classification', + placeholder: 'image_classification', + required: false, + type: 'text' + }, + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'object-detection-with-huggingface', + name: 'Object detection', + tagline: 'Detect objects in images using the Hugging Face inference API.', + permissions: ['any'], + events: ['buckets.*.files.*.create'], + cron: '', + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install && npm run setup', + 'src/main.js', + 'node/object-detection-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the responses are stored. Learn more.`, + value: 'ai', + placeholder: 'ai', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the responses are stored. Learn more.`, + value: 'object_detection', + placeholder: 'object_detection', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_BUCKET_ID', + description: `The ID of the bucket where the images are stored. Learn more.`, + value: 'object_detection', + placeholder: 'object_detection', + required: false, + type: 'text' + }, + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'speech-recognition-with-huggingface', + name: 'Speech recognition', + tagline: 'Transcribe audio to text using the Hugging Face inference API.', + permissions: ['any'], + events: ['buckets.*.files.*.create'], + cron: '', + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install && npm run setup', + 'src/main.js', + 'node/speech-recognition-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the responses are stored. Learn more.`, + value: 'ai', + placeholder: 'ai', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the responses are stored. Learn more.`, + value: 'speech_recognition', + placeholder: 'speech_recognition', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_BUCKET_ID', + description: `The ID of the bucket where audio is stored. Learn more.`, + value: 'speech_recognition', + placeholder: 'speech_recognition', + required: false, + type: 'text' + }, + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'text-to-speech-with-huggingface', + name: 'Text to speech', + tagline: 'Convert text to speech using the Hugging Face inference API.', + permissions: ['any'], + events: ['databases.*.collections.*.documents.*.create'], + cron: '', + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install && npm run setup', + 'src/main.js', + 'node/text-to-speech-with-huggingface' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the responses are stored. Learn more.`, + value: 'ai', + placeholder: 'ai', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the responses are stored. Learn more.`, + value: 'speech_recognition', + placeholder: 'speech_recognition', + required: false, + type: 'text' + }, + { + name: 'APPWRITE_BUCKET_ID', + description: `The ID of the bucket where audio is stored. Learn more.`, + value: 'speech_recognition', + placeholder: 'speech_recognition', + required: false, + type: 'text' + }, + { + name: 'HUGGINGFACE_ACCESS_TOKEN', + description: `Secret for sending requests to the Hugging Face API. Learn more.`, + placeholder: 'hf_MUvn...', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'generate-with-replicate', + name: 'Generate with Replicate', + tagline: "Generate text, audio and images using Replicate's API.", + permissions: ['any'], + events: [], + cron: '', + timeout: 300, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/generate-with-replicate' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'REPLICATE_API_KEY', + description: `A unique key used to authenticate with the Replicate API. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'chat-with-perplexity-ai', + name: 'Chat with Perplexity AI', + tagline: 'Create a chatbot using the Perplexity AI API.', + permissions: ['any'], + events: [], + cron: '', + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/chat-with-perplexity-ai' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'PERPLEXITY_API_KEY', + description: `A unique key used to authenticate with the Perplexity API. Learn more.`, + placeholder: `pplex-68...999`, + required: true, + type: 'password' + }, + { + name: 'PERPLEXITY_MAX_TOKENS', + description: `The maximum number of tokens to generate. Learn more.`, + placeholder: `512`, + required: false, + type: 'number' + } + ] + }, + { + icon: 'icon-chip', + id: 'generate-with-replicate', + name: 'Generate with Replicate', + tagline: "Generate text, audio and images using Replicate's API.", + permissions: ['any'], + events: [], + cron: '', + timeout: 300, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/generate-with-replicate' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'REPLICATE_API_KEY', + description: `A unique key used to authenticate with the Replicate API. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + } + ] + }, + { + icon: 'icon-chip', + id: 'sync-with-pinecone', + name: 'Sync with Pinecone', + tagline: "Sync your Appwrite database with Pinecone's vector database.", + permissions: ['any'], + events: [], + cron: '', + timeout: 30, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/sync-with-pinecone' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'OPENAI_API_KEY', + description: `A unique key used to authenticate with the OpenAI API. This is a paid service and you will be charged for each request made to the API. Learn more.`, + value: '', + placeholder: 'sk-wzG...vcy', + required: true, + type: 'password' + }, + { + name: 'PINECONE_API_KEY', + description: `A unique key used to authenticate with the Pinecone API. Learn more.`, + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'PINECONE_INDEX_NAME', + description: `The name of the index in Pinecone. Learn more.`, + placeholder: 'my-index', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the documents are stored. Learn more.`, + placeholder: 'my-database', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the documents are stored. Learn more.`, + placeholder: 'my-collection', + required: true, + type: 'text' + } + ] + }, + { + icon: 'icon-chip', + id: 'rag-with-langchain', + name: 'RAG with LangChain', + tagline: 'Generate text using a LangChain RAG model', + permissions: ['any'], + events: [], + cron: '', + timeout: 30, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/rag-with-langchain' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'OPENAI_API_KEY', + description: `A unique key used to authenticate with the OpenAI API. This is a paid service and you will be charged for each request made to the API. Learn more.`, + value: '', + placeholder: 'sk-wzG...vcy', + required: true, + type: 'password' + }, + { + name: 'PINECONE_API_KEY', + description: `A unique key used to authenticate with the Pinecone API. Learn more.`, + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'PINECONE_INDEX_NAME', + description: `The name of the index in Pinecone. Learn more.`, + placeholder: 'my-index', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the documents are stored. Learn more.`, + placeholder: 'my-database', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the documents are stored. Learn more.`, + placeholder: 'my-collection', + required: true, + type: 'text' + } + ] + }, + { + icon: 'icon-chip', + id: 'speak-with-elevenlabs', + name: 'Speak with ElevenLabs', + tagline: 'Convert text to speech using the ElevenLabs API.', + permissions: ['any'], + cron: '', + events: [], + timeout: 15, + usecases: ['AI'], + runtimes: [ + ...getRuntimes( + TemplateRuntimes.NODE, + 'npm install', + 'src/main.js', + 'node/speak-with-elevenlabs' + ) + ], + instructions: `For documentation and instructions check out file.`, + vcsProvider: 'github', + providerRepositoryId: 'templates', + providerOwner: 'appwrite', + providerBranch: 'main', + variables: [ + { + name: 'ELEVENLABS_API_KEY', + description: `A unique key used to authenticate with the ElevenLabs API. Learn more.`, + placeholder: 'd03xxxxxxxx26', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_API_KEY', + description: `The API Key to authenticate against Appwrite's server APIs. Learn more.`, + value: '', + placeholder: 'd1efb...aec35', + required: true, + type: 'password' + }, + { + name: 'APPWRITE_ENDPOINT', + description: `The URL endpoint of the Appwrite server. Learn more.`, + value: 'https://cloud.appwrite.io/v1', + placeholder: 'https://cloud.appwrite.io/v1', + required: false, + type: 'url' + }, + { + name: 'APPWRITE_DATABASE_ID', + description: `The ID of the database where the responses are stored. Learn more.`, + placeholder: 'my-database', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_COLLECTION_ID', + description: `The ID of the collection where the responses are stored. Learn more.`, + placeholder: 'my-collection', + required: true, + type: 'text' + }, + { + name: 'APPWRITE_BUCKET_ID', + description: `The ID of the bucket where audio is stored. Learn more.`, + placeholder: 'generated_speech', + required: true, + type: 'text' + } + ] } ];