diff --git a/packages/osr-code-bot/client.js b/packages/osr-code-bot/client.js index fa28f70..5498074 100644 --- a/packages/osr-code-bot/client.js +++ b/packages/osr-code-bot/client.js @@ -15,6 +15,7 @@ const ROUTER_BASE_URLS = { ollama: 'http://localhost:11434', // Ollama's default local API endpoint fireworks: 'https://api.fireworks.ai/v1', // Fireworks API endpoint gemini: 'https://generativelanguage.googleapis.com/v1beta', // Gemini API base URL + xai: 'https://api.x.ai/v1', // XAI (Grok) API base URL }; /** * Default models for different routers @@ -27,8 +28,9 @@ const DEFAULT_MODELS = { ollama: 'leonard', // Default Ollama model fireworks: 'llama-v2-70b-chat', // Default Fireworks model gemini: 'gemini-1.5-pro', // Default Gemini model + xai: 'grok-1' // Default XAI (Grok) model }; -/** +/* * Creates an OpenAI client instance based on the provided options. * @param options - Configuration options for the client * @returns OpenAI client instance or undefined if configuration is invalid @@ -70,6 +72,9 @@ const createClient = (options) => { case 'gemini': apiKey = config?.gemini?.key; break; + case 'xai': + apiKey = config?.xai?.key; + break; } } // Validate API key @@ -91,4 +96,4 @@ const createClient = (options) => { }); }; exports.createClient = createClient; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBZ0M7QUFDaEMsbUNBQWlDO0FBQ2pDLHFDQUFzQztBQVl0Qzs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQStCO0lBQ2pELFVBQVUsRUFBRSw4QkFBOEI7SUFDMUMsTUFBTSxFQUFFLEVBQUUsRUFBRSwwQkFBMEI7SUFDdEMsUUFBUSxFQUFFLDBCQUEwQjtJQUNwQyxXQUFXLEVBQUUsc0NBQXNDO0lBQ25ELE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxzQ0FBc0M7SUFDeEUsU0FBUyxFQUFFLDZCQUE2QixFQUFFLHlCQUF5QjtJQUNuRSxNQUFNLEVBQUUsa0RBQWtELEVBQUUsc0JBQXNCO0NBQ3JGLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUErQjtJQUMvQyxVQUFVLEVBQUUsNkJBQTZCO0lBQ3pDLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFdBQVcsRUFBRSxjQUFjO0lBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsdUJBQXVCO0lBQzFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDMUQsTUFBTSxFQUFFLGdCQUFnQixFQUFFLHVCQUF1QjtDQUNwRCxDQUFDO0FBRUY7Ozs7R0FJRztBQUNJLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ2xELCtCQUErQjtJQUMvQixNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFVLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsY0FBTSxDQUFDLEtBQUssQ0FDUiw4Q0FBOEM7WUFDOUMsd0VBQXdFLENBQzNFLENBQUM7UUFDRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQscURBQXFEO0lBQ3JELE1BQU0sTUFBTSxHQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxZQUFZLENBQWUsQ0FBQztJQUUxRSxxQkFBcUI7SUFDckIsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUU3Qix5REFBeUQ7SUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsUUFBUSxNQUFNLEVBQUUsQ0FBQztZQUNiLEtBQUssWUFBWTtnQkFDYixNQUFNLEdBQUcsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUM7Z0JBQ2pDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QsTUFBTSxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO2dCQUM3QixNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLE1BQU0sR0FBRyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDL0IsTUFBTTtZQUNWLEtBQUssYUFBYTtnQkFDZCxNQUFNLEdBQUcsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLENBQUM7Z0JBQ2xDLE1BQU07WUFDVixLQUFLLFFBQVE7Z0JBQ1QseURBQXlEO2dCQUN6RCxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsdUJBQXVCO2dCQUMxQyxNQUFNO1lBQ1YsS0FBSyxXQUFXO2dCQUNaLE1BQU0sR0FBRyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxNQUFNLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7Z0JBQzdCLE1BQU07UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7UUFDWCxjQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sTUFBTSw0RkFBNEYsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUUzRCxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixPQUFPLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsY0FBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsTUFBTSxrQkFBa0IsT0FBTyxDQUFDLEtBQUssaUJBQWlCLE1BQU0sT0FBTyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBRWpILCtDQUErQztJQUMvQyxPQUFPLElBQUksZUFBTSxDQUFDO1FBQ2QsTUFBTTtRQUNOLE9BQU87S0FDVixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFsRVcsUUFBQSxZQUFZLGdCQWtFdkIifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBZ0M7QUFDaEMsbUNBQWlDO0FBQ2pDLHFDQUFzQztBQVl0Qzs7R0FFRztBQUNILE1BQU0sZ0JBQWdCLEdBQStCO0lBQ2pELFVBQVUsRUFBRSw4QkFBOEI7SUFDMUMsTUFBTSxFQUFFLEVBQUUsRUFBRSwwQkFBMEI7SUFDdEMsUUFBUSxFQUFFLDBCQUEwQjtJQUNwQyxXQUFXLEVBQUUsc0NBQXNDO0lBQ25ELE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxzQ0FBc0M7SUFDeEUsU0FBUyxFQUFFLDZCQUE2QixFQUFFLHlCQUF5QjtJQUNuRSxNQUFNLEVBQUUsa0RBQWtELEVBQUUsc0JBQXNCO0lBQ2xGLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEI7Q0FDekQsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxjQUFjLEdBQStCO0lBQy9DLFVBQVUsRUFBRSw2QkFBNkI7SUFDekMsTUFBTSxFQUFFLFFBQVE7SUFDaEIsUUFBUSxFQUFFLGVBQWU7SUFDekIsV0FBVyxFQUFFLGNBQWM7SUFDM0IsTUFBTSxFQUFFLFNBQVMsRUFBRSx1QkFBdUI7SUFDMUMsU0FBUyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQjtJQUMxRCxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCO0lBQ2pELEdBQUcsRUFBRSxRQUFRLENBQUMsMkJBQTJCO0NBQzVDLENBQUM7QUFDRjs7OztHQUlHO0FBQ0ksTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDbEQsK0JBQStCO0lBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUEsbUJBQVUsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixjQUFNLENBQUMsS0FBSyxDQUNSLDhDQUE4QztZQUM5Qyx3RUFBd0UsQ0FDM0UsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxxREFBcUQ7SUFDckQsTUFBTSxNQUFNLEdBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLFlBQVksQ0FBZSxDQUFDO0lBRTFFLHFCQUFxQjtJQUNyQixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBRTdCLHlEQUF5RDtJQUN6RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2IsS0FBSyxZQUFZO2dCQUNiLE1BQU0sR0FBRyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQztnQkFDakMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCxNQUFNLEdBQUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUM7Z0JBQzdCLE1BQU07WUFDVixLQUFLLFVBQVU7Z0JBQ1gsTUFBTSxHQUFHLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixNQUFNO1lBQ1YsS0FBSyxhQUFhO2dCQUNkLE1BQU0sR0FBRyxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQztnQkFDbEMsTUFBTTtZQUNWLEtBQUssUUFBUTtnQkFDVCx5REFBeUQ7Z0JBQ3pELE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyx1QkFBdUI7Z0JBQzFDLE1BQU07WUFDVixLQUFLLFdBQVc7Z0JBQ1osTUFBTSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1YsS0FBSyxRQUFRO2dCQUNULE1BQU0sR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQztnQkFDN0IsTUFBTTtZQUNWLEtBQUssS0FBSztnQkFDTixNQUFNLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7Z0JBQzFCLE1BQU07UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixJQUFJLENBQUMsTUFBTSxFQUFHLENBQUM7UUFDWCxjQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sTUFBTSw0RkFBNEYsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxzQ0FBc0M7SUFDdEMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUUzRCxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNqQixPQUFPLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBRUQsY0FBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsTUFBTSxrQkFBa0IsT0FBTyxDQUFDLEtBQUssaUJBQWlCLE1BQU0sT0FBTyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBRWpILCtDQUErQztJQUMvQyxPQUFPLElBQUksZUFBTSxDQUFDO1FBQ2QsTUFBTTtRQUNOLE9BQU87S0FDVixDQUFDLENBQUM7QUFDUCxDQUFDLENBQUM7QUFyRVcsUUFBQSxZQUFZLGdCQXFFdkIifQ== \ No newline at end of file diff --git a/packages/osr-code-bot/dist/package-lock.json b/packages/osr-code-bot/dist/package-lock.json index 7b26bd8..6b6fc56 100644 --- a/packages/osr-code-bot/dist/package-lock.json +++ b/packages/osr-code-bot/dist/package-lock.json @@ -1,12 +1,12 @@ { "name": "@plastichub/kbot", - "version": "1.1.14", + "version": "1.1.15", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@plastichub/kbot", - "version": "1.1.14", + "version": "1.1.15", "license": "ISC", "dependencies": { "node-emoji": "^2.2.0" diff --git a/packages/osr-code-bot/dist/package.json b/packages/osr-code-bot/dist/package.json index 1092922..6cece91 100644 --- a/packages/osr-code-bot/dist/package.json +++ b/packages/osr-code-bot/dist/package.json @@ -1,6 +1,6 @@ { "name": "@plastichub/kbot", - "version": "1.1.14", + "version": "1.1.15", "main": "main_node.js", "author": "", "license": "ISC", diff --git a/packages/osr-code-bot/docs_/AI Inpainting Tools Comparison_.md b/packages/osr-code-bot/docs_/AI Inpainting Tools Comparison_.md new file mode 100644 index 0000000..01edf8a --- /dev/null +++ b/packages/osr-code-bot/docs_/AI Inpainting Tools Comparison_.md @@ -0,0 +1,358 @@ +# **AI Inpainting Tools: A Comparative Overview** + +Inpainting, the art of seamlessly restoring or modifying images, has been revolutionized by artificial intelligence (AI). AI inpainting tools offer powerful capabilities for removing unwanted objects, filling in missing parts, or even generating entirely new content within an image, all while maintaining a natural and cohesive look 1. Most of the tools discussed in this article also offer background removal capabilities, allowing you to easily change or erase the background of an image. This article explores some of the leading AI inpainting tools available, providing a comparative overview of their features, pricing, and accessibility. + +## **YouCam Perfect** + +YouCam Perfect 1 is an AI-powered photo editing app that specializes in object replacement and offers a range of features for enhancing and transforming images. + +**Features:** + +* **AI Replace:** YouCam Perfect's AI Replace tool allows users to seamlessly swap out objects or elements within an image. This feature can be used to change outfits, add accessories, or replace backgrounds with a few simple taps. + +**Pricing:** + +YouCam Perfect offers a free version with basic editing features. Users can upgrade to a premium subscription for access to advanced tools and exclusive content. + +**Website:** [https://www.perfectcorp.com/consumer/apps/youcam-perfect](https://www.google.com/search?q=https://www.perfectcorp.com/consumer/apps/youcam-perfect) + +## **Shakker AI** + +Shakker AI 3 is a versatile platform that provides access to a vast library of over 50,000 Stable Diffusion models, making it a one-stop shop for various AI image editing needs. With its user-friendly interface, Shakker AI is suitable for both beginners and seasoned professionals 4. + +**Features:** + +* **Inpainting and Outpainting:** Shakker AI excels in inpainting, allowing users to seamlessly remove or replace objects within an image. It also offers outpainting, which extends the canvas beyond the original image boundaries 1. +* **Custom Mode Generation:** Users can fine-tune their results by adjusting prompts, selecting specific models, and modifying settings like img2img, adetailer, and samplers. This feature provides greater control over the AI's creative process, allowing for more personalized and precise edits 4. +* **Integrated Tools:** Shakker AI integrates with A1111 WebUI and ComfyUI, providing advanced editing capabilities and streamlined workflows 4. +* **Model Training:** Users can even train their own models to achieve highly personalized results 4. + +**Key Insight:** Shakker AI allows users to earn money by uploading and sharing their trained models. Each time someone uses your model, you earn, creating a unique opportunity for monetizing your AI skills 5. + +**Pricing:** + +Shakker AI offers a free tier with 200 fast tokens daily 3. Paid plans start at $10 per month for 15,000 tokens, with higher tiers offering more tokens and faster image generation speeds 6. + +**Website:** [https://www.shakker.ai/](https://www.shakker.ai/) 7 + +## **Fotor** + +Fotor 1 is an all-in-one online photo editor that provides a user-friendly platform for various image editing needs, including AI-powered inpainting. + +**Features:** + +* **AI Inpainting:** Fotor's AI inpainting tool allows users to remove unwanted objects, replace elements, or even generate entirely new content within an image 8. +* **AI Object Remover:** This feature allows for precise removal of unwanted objects from photos 9. +* **Background Removal:** Users can easily remove or replace backgrounds from images 9. +* **Photo Restoration:** Fotor can restore old or damaged photos, enhancing their quality and color 10. + +**Key Insight:** Fotor offers a comprehensive suite of AI tools beyond inpainting, including AI Headshot Generator and AI Face Generator, providing a versatile platform for various creative needs 9. + +**Pricing:** + +Fotor offers a free plan with basic editing features 11. Paid plans start at $8.99 per month, providing access to advanced AI tools, premium templates, and high-resolution downloads 11. + +**Website:** [https://www.fotor.com/](https://www.fotor.com/) 12 + +## **Deep-image.ai** + +Deep-image.ai 13 is an AI-powered image enhancement platform that offers a range of tools for improving image quality 14, including inpainting. + +**Features:** + +* **Inpainting:** Deep-image.ai's inpainting tool allows users to select specific areas of an image and use text prompts to add or remove elements 13. +* **Upscaling:** The platform can upscale images up to 16 times or 300 megapixels while preserving details and quality. It also supports batch processing of up to 50 images simultaneously, enhancing efficiency for users with multiple files 14. +* **Noise Reduction:** Deep-image.ai can effectively remove noise from photos taken in low-light conditions or with high ISO settings 15. +* **Background Removal:** Users can remove or swap backgrounds from images 14. + +**Key Insight:** Deep-image.ai is a cost-effective solution for image enhancement, offering both pay-as-you-go options and volume discounts for users who need flexibility and affordability 16. + +**Pricing:** + +Deep-image.ai offers both pay-as-you-go and subscription plans 16. Pay-as-you-go starts at $7.99 for 15 credits, while subscriptions start at $9 per month for 100 credits 16. + +**Website:** [https://deep-image.ai/](https://deep-image.ai/) 14 + +## **VanceAI** + +VanceAI 17 is an AI-powered image editing toolkit that specializes in image enhancement and photo restoration, with a dedicated inpainting tool. + +**Features:** + +* **AI Inpainting:** VanceAI's inpainting tool allows users to remove unwanted objects or blemishes from images 17. +* **AI Photo Restorer:** This feature can repair old or damaged photos, removing scratches, tears, and spots 17. +* **AI Image Enhancer:** VanceAI can automatically enhance image quality by adjusting colors, contrast, and sharpness 18. +* **Background Removal:** Users can remove backgrounds from images with AI 18. + +**Applications of VanceAI:** + +VanceAI's AI-powered tools have applications across various fields, including: + +* **E-commerce:** Enhance product images to attract customers and boost sales. +* **Photography:** Improve the quality of photos and restore old or damaged pictures. +* **Marketing:** Create visually appealing marketing materials and social media content. + +18 + +**Key Insight:** VanceAI is committed to providing high-quality results with its AI-powered tools, ensuring that images are enhanced and restored with precision and clarity 19. + +**Pricing:** + +VanceAI offers a credit-based system, with packages starting at $4.95 for 100 credits 20. Subscription plans are also available, starting at $39.90 per month for the desktop version 22. + +**Website:** [https://vanceai.com/](https://vanceai.com/) 19 + +## **getimg.ai** + +getimg.ai 2 is an AI image generation platform that offers a range of tools for creating and editing images, including inpainting. + +**Features:** + +* **Inpainting:** getimg.ai's inpainting tool allows users to remove objects from photos or make specific edits using text prompts 23. +* **Outpainting:** This feature expands images beyond their original boundaries, and getimg.ai offers an infinite canvas for this purpose, allowing for limitless creative exploration 23. +* **Image-to-Image:** Users can transform images into different styles while preserving their structure 25. +* **DreamBooth:** This feature allows for custom AI model training to generate personalized results 24. + +**Key Insight:** getimg.ai boasts real-time image generation capabilities, producing images in 1-2 seconds, allowing for rapid iteration and experimentation 24. + +**Pricing:** + +getimg.ai offers a free plan with 100 image generation credits per month 26. Paid plans start at $12 per month for 3,000 credits, with higher tiers offering more credits and faster generation speeds 26. + +**Website:** [https://getimg.ai/](https://getimg.ai/) 27 + +## **Pincel** + +Pincel 28 is an AI-powered online image editing platform that offers a variety of tools for retouching, generative fill, and creative photo manipulation, including inpainting. + +**Features:** + +* **Inpainting:** Pincel's inpainting tool allows users to remove unwanted objects or edit parts of an image with a brush and text prompts 29. +* **AI Image Editor:** This feature functions similarly to Photoshop's generative fill, enabling users to make complex edits with AI prompts 30. +* **Object Remover:** Pincel can precisely remove unwanted objects from photos 30. +* **AI Portrait Maker:** This tool enhances portraits using AI, adjusting lighting, skin tone, and facial features 31. +* **AI Image Replicator:** This tool allows users to mimic and duplicate image colors, styles, or even body poses, providing a unique way to transform images while maintaining key elements 31. + +**Key Insight:** Pincel is designed for multi-device compatibility and can be accessed on any device with a web browser, offering flexibility and convenience for users who want to edit images on the go 31. + +**Pricing:** + +Pincel offers a free trial with 20 credits 32. Paid plans start at $19 per month for 1,000 credits, with higher tiers offering more credits and access to advanced features 32. + +**Website:** [https://pincel.app/](https://pincel.app/) 31 + +## **Novita AI** + +Novita AI 33 is an AI platform that offers a range of APIs for various AI tasks, including image generation and inpainting. + +**Features:** + +* **Inpainting:** Novita AI's inpainting API allows developers to integrate AI inpainting capabilities into their applications 33. +* **Text-to-Image and Image-to-Image:** Novita AI provides APIs for generating images from text descriptions and transforming existing images into new styles 34. +* **Stable Diffusion:** The platform utilizes Stable Diffusion for image generation, ensuring high-quality and consistent results 34. +* **Serverless GPUs:** Novita AI offers serverless GPUs, allowing for scalable and cost-effective AI model deployment 35. + +**Key Insight:** Novita AI offers serverless GPUs, which provide a significant advantage for developers and businesses looking to deploy and scale AI models without the cost and complexity of managing their own infrastructure 35. + +**Specific Models and APIs:** Novita AI provides access to a variety of models and APIs, including Llama 2, Mistral, and Stable Diffusion, offering a comprehensive suite of tools for various AI tasks 36. + +**Pricing:** + +Novita AI uses a pay-as-you-go pricing model for its APIs 37. The pricing for image generation starts at $0.0015 per standard image 34. + +**Website:** [https://novita.ai/](https://novita.ai/) 35 + +## **Sider.AI** + +Sider.AI 38 is an AI-powered browser extension that offers a suite of tools for enhancing productivity and creativity, including an inpainting tool. + +**Features:** + +* **AI Inpainting:** Sider.AI's inpainting tool allows users to remove and replace objects in images, generate context-aware fills, and enhance images with professional-grade results 38. +* **Background Removal:** Users can remove or change backgrounds from images 38. +* **AI Chatbots:** Sider.AI integrates with various AI chatbots like ChatGPT, GPT-4, Claude, and Bard 39. +* **YouTube Video Summarization:** This feature generates concise summaries of YouTube videos 39. +* **AI Image Translator:** Sider.AI can translate text within images and photos online, making it a valuable tool for global communication and accessibility 40. + +**Key Insight:** Sider.AI integrates with multiple AI models in its chatbot, allowing users to compare responses from different AI models and gain diverse perspectives on their queries 39. + +**Pricing:** + +Sider.AI offers a free plan with limited credits for various features 39. Paid plans start at $8.3 per month, providing more credits and access to advanced AI models 39. + +**Website:** [https://sider.ai/](https://sider.ai/) 41 + +## **Picsart** + +Picsart 1 is a popular all-in-one creative platform that offers a wide range of photo and video editing tools, including AI-powered features like inpainting. + +**Features:** + +* **AI Replace:** Picsart's AI Replace tool allows users to swap out objects or elements within an image using text prompts 42. +* **AI Image Generator:** This feature allows users to generate images from text descriptions 43. +* **AI Enhance:** This tool automatically enhances images, improving their quality and clarity with AI-powered adjustments 43. +* **Background Removal:** Users can remove backgrounds from images 44. +* **Collage Maker:** Picsart offers a collage maker with various layouts and customization options 44. + +**Key Insight:** Picsart fosters a strong community aspect with its challenges, remixing features, and collaborative spaces, encouraging users to connect, share, and learn from each other 44. + +**Free-to-Edit Images:** Picsart offers an extensive collection of free-to-edit images, providing users with a vast library of high-quality visuals for their creative projects 45. + +**Pricing:** + +Picsart offers a free plan with basic editing tools and limited access to AI features 46. Paid plans start at $5 per month, providing more credits for AI tools, access to premium content, and advanced features 43. + +**Website:** [https://picsart.com/](https://picsart.com/) 46 + +## **Hotpot.ai** + +Hotpot.ai 10 is an AI-powered platform that offers a variety of tools for image generation, photo editing, and content writing, including an inpainting tool. + +**Features:** + +* **AI Inpainting:** Hotpot.ai's inpainting tool allows users to remove objects from photos or make specific edits 47. +* **AI Art Generator:** This feature allows users to generate art and images from text descriptions in various styles 48. +* **Photo Restoration:** Hotpot.ai can restore old or damaged photos 49. +* **Object Removal:** Users can remove unwanted objects from photos 48. +* **AI Sparkwriter:** This tool can assist with copywriting, brainstorming ideas, and generating content for various purposes, including articles, ads, and creative writing 50. + +**Key Insight:** Hotpot.ai boasts an extensive library of AI art and photo styles, offering over 180 options for users to explore and personalize their creations 51. + +**Pricing:** + +Hotpot.ai offers a credit-based system, with packages starting at $12 for 1,000 credits 47. Subscription plans are also available, starting at $10 per month for 1,000 credits 47. + +**Website:** [https://hotpot.ai/](https://hotpot.ai/) 51 + +## **Phot.ai** + +Phot.ai 10 is an AI-powered visual design platform that offers a range of photo editing and creative tools, including inpainting. + +**Features:** + +* **Object Remover:** Phot.ai's object remover allows users to remove unwanted objects from photos using a brush tool 52. +* **AI Object Replacer:** This tool allows users to swap, remove, or add objects to images, providing greater flexibility for creative edits and object manipulation 52. +* **Background Replacer:** This feature allows users to replace, remove, or blur backgrounds in images 52. +* **AI Image Enhancer:** Phot.ai can enhance image quality, clear blurry pictures, and sharpen details 53. +* **AI Image Extender:** This tool expands images beyond their original borders 54. + +**Key Insight:** Phot.ai boasts a user-friendly interface, making its advanced AI-powered tools accessible to users with varying levels of experience 55. + +**Pricing:** + +Phot.ai offers various subscription plans, starting at $9 per month for the basic plan with limited usage 56. The pro plan costs $19.99 per month and offers more features and usage 56. + +**Website:** [https://www.phot.ai/](https://www.phot.ai/) 52 + +## **PhotoRestore.io** + +PhotoRestore.io 10 is a free AI-powered photo restoration service that specializes in repairing and enhancing old or damaged photos. + +**Features:** + +* **Photo Restoration:** PhotoRestore.io can repair blurry, faded, or damaged photos using AI algorithms 57. +* **Increase Image Quality:** The platform can enhance image quality by removing noise, improving clarity, and increasing sharpness 58. +* **Remove Background:** Users can remove or replace backgrounds from images 58. +* **Colorize Photo:** PhotoRestore.io can add natural-looking color to black and white photos 58. +* **Photo Albums:** Users can create and organize photo albums on the platform, making it easy to manage and share restored memories with family and friends 58. + +**Key Insight:** PhotoRestore.io prioritizes user privacy and data security, ensuring that uploaded photos are not stored or shared with third parties 57. + +**Pricing:** + +PhotoRestore.io is completely free to use 59. + +**Website:** [https://www.photorestore.io/](https://www.photorestore.io/) 60 + +## **Summary Table** + +| Name | Link | Price | Features | Supported File Formats | +| :---- | :---- | :---- | :---- | :---- | +| YouCam Perfect | [https://www.perfectcorp.com/consumer/apps/youcam-perfect](https://www.google.com/search?q=https://www.perfectcorp.com/consumer/apps/youcam-perfect) | Free, with premium subscription | AI Replace | JPEG, PNG | +| Shakker AI | [https://www.shakker.ai/](https://www.shakker.ai/) | Free tier, Paid plans from $10/month | Inpainting, Outpainting, Custom Mode Generation, Model Training | Various | +| Fotor | [https://www.fotor.com/](https://www.fotor.com/) | Free plan, Paid plans from $8.99/month | AI Inpainting, AI Object Remover, Background Removal, Photo Restoration | JPG, PNG, WEBP | +| Deep-image.ai | [https://deep-image.ai/](https://deep-image.ai/) | Pay-as-you-go from $7.99, Subscriptions from $9/month | Inpainting, Upscaling, Noise Reduction, Background Removal | JPG, PNG | +| VanceAI | [https://vanceai.com/](https://vanceai.com/) | Credit-based from $4.95, Subscriptions from $39.90/month | AI Inpainting, AI Photo Restorer, AI Image Enhancer, Background Removal | JPG, PNG | +| getimg.ai | [https://getimg.ai/](https://getimg.ai/) | Free plan, Paid plans from $12/month | Inpainting, Outpainting, Image-to-Image, DreamBooth | JPG, PNG, WEBP | +| Pincel | [https://pincel.app/](https://pincel.app/) | Free trial, Paid plans from $19/month | Inpainting, AI Image Editor, Object Remover, AI Portrait Maker, AI Image Replicator | Various | +| Novita AI | [https://novita.ai/](https://novita.ai/) | Pay-as-you-go from $0.0015/image | Inpainting API, Text-to-Image, Image-to-Image, Serverless GPUs | Various | +| Sider.AI | [https://sider.ai/](https://sider.ai/) | Free plan, Paid plans from $8.3/month | AI Inpainting, Background Removal, AI Chatbots, YouTube Video Summarization, AI Image Translator | JPG, PNG, WEBP | +| Picsart | [https://picsart.com/](https://picsart.com/) | Free plan, Paid plans from $5/month | AI Replace, AI Image Generator, AI Enhance, Background Removal, Collage Maker | Various | +| Hotpot.ai | [https://hotpot.ai/](https://hotpot.ai/) | Credit-based from $12, Subscriptions from $10/month | AI Inpainting, AI Art Generator, Photo Restoration, Object Removal, AI Sparkwriter | JPEG, PNG, SVG | +| Phot.ai | [https://www.phot.ai/](https://www.phot.ai/) | Subscriptions from $9/month | Object Remover, AI Object Replacer, Background Replacer, AI Image Enhancer, AI Image Extender | JPEG, PNG, JPG, BMP, WEBP | +| PhotoRestore.io | [https://www.photorestore.io/](https://www.photorestore.io/) | Free | Photo Restoration, Increase Image Quality, Remove Background, Colorize Photo, Photo Albums | PNG, JPG, JPEG | + +## **Conclusion** + +The field of AI inpainting is rapidly evolving, with new tools and features emerging constantly. The tools discussed in this article represent a diverse range of options, each with its own strengths and weaknesses. When choosing an AI inpainting tool, it's essential to consider your specific needs, budget, and technical expertise. Factors such as ease of use, image quality, pricing, and the availability of advanced features should all play a role in your decision. + +Here's a more detailed comparison to help you choose the right tool: + +* **For Beginners:** If you're new to AI inpainting, YouCam Perfect, Fotor, or PhotoRestore.io offer user-friendly interfaces and straightforward tools that are easy to learn. PhotoRestore.io is an excellent option for those seeking a completely free solution, while YouCam Perfect and Fotor provide more comprehensive editing features with their premium plans. +* **For Professionals:** Shakker AI, Deep-image.ai, and VanceAI offer advanced features and customization options that cater to professional needs. Shakker AI stands out with its vast model library and model training capabilities, while Deep-image.ai excels in upscaling and batch processing. VanceAI provides a strong focus on high-quality image enhancement and restoration. +* **For Specific Use Cases:** If you need to expand images beyond their original boundaries, getimg.ai's infinite canvas for outpainting is a unique feature. Pincel's AI Image Replicator offers a creative way to transform images while maintaining key elements. For developers seeking to integrate inpainting capabilities into their applications, Novita AI provides a range of APIs and serverless GPUs for scalable deployment. Sider.AI's integration with multiple AI models in its chatbot allows for diverse perspectives and comparisons. Picsart's strong community and collaborative features make it an excellent choice for those who enjoy sharing and learning from others. Hotpot.ai's extensive library of AI art and photo styles provides a wide range of creative options. Phot.ai's user-friendly interface makes it accessible to users with varying levels of experience. + +By carefully evaluating these factors, you can select the tool that best empowers you to achieve your creative goals and seamlessly enhance your images. + +#### **Works cited** + +1\. Top 7 AI Replace and AI Inpainting Tools of 2024 \- Perfect Corp., accessed on February 16, 2025, [https://www.perfectcorp.com/consumer/blog/photo-editing/ai-replace-tools](https://www.perfectcorp.com/consumer/blog/photo-editing/ai-replace-tools) +2\. Stable Diffusion Inpainting Online | getimg.ai, accessed on February 16, 2025, [https://getimg.ai/features/inpainting](https://getimg.ai/features/inpainting) +3\. Shakker AI Reviews, Alternatives, and Pricing updated February 2025, accessed on February 16, 2025, [https://opentools.ai/tools/shakker-ai](https://opentools.ai/tools/shakker-ai) +4\. Master AI Inpainting: Tools, Features, and Benefits in 2024 | Shakker AI, accessed on February 16, 2025, [https://wiki.shakker.ai/en/ai-inpainting](https://wiki.shakker.ai/en/ai-inpainting) +5\. How to Use Shakker AI: The Ultimate Guide to AI Image Generation \- YouTube, accessed on February 16, 2025, [https://www.youtube.com/watch?v=ohvxhqOzlrg](https://www.youtube.com/watch?v=ohvxhqOzlrg) +6\. Shakker \- Membership, accessed on February 16, 2025, [https://www.shakker.ai/purchase](https://www.shakker.ai/purchase) +7\. Creators who have published original models on other AI platforms such as CivitAI, SeaArt and Tensor before June 13,2024. \- Shakker AI, accessed on February 16, 2025, [https://www.shakker.ai/activitys/shake-the-world](https://www.shakker.ai/activitys/shake-the-world) +8\. Inpainting AI \- Free Online Image Recreation With AI \- Fotor, accessed on February 16, 2025, [https://www.fotor.com/features/image-inpainting/](https://www.fotor.com/features/image-inpainting/) +9\. Features Overview \- Get To Know Fotor Better, accessed on February 16, 2025, [https://www.fotor.com/features/](https://www.fotor.com/features/) +10\. My Hands-on Experience Testing AI Photo Restorers \- Shotkit, accessed on February 16, 2025, [https://shotkit.com/ai-photo-restorers/](https://shotkit.com/ai-photo-restorers/) +11\. Fotor Pricing Plan & Cost Guide \- GetApp, accessed on February 16, 2025, [https://www.getapp.com/website-ecommerce-software/a/fotor/pricing/](https://www.getapp.com/website-ecommerce-software/a/fotor/pricing/) +12\. Fotor | Photo Editing Made Simple \- Free Online Photo Editor, accessed on February 16, 2025, [https://www.fotor.com/mobile/android.html](https://www.fotor.com/mobile/android.html) +13\. Inpainting AI \- Select and edit a section of an image with AI Generator, accessed on February 16, 2025, [https://deep-image.ai/app/tools/inpainting](https://deep-image.ai/app/tools/inpainting) +14\. Deep-Image.ai \- AI Image Enhancer to Generate & Upscale, accessed on February 16, 2025, [https://deep-image.ai/](https://deep-image.ai/) +15\. Overview of Deep-Image.ai's Image Enhancement Tools, accessed on February 16, 2025, [https://deep-image.ai/blog/overview-of-deep-image-ais-image-enhancement-tools/](https://deep-image.ai/blog/overview-of-deep-image-ais-image-enhancement-tools/) +16\. Pricing \- AI Image Enhancer from free to enterprise \- Deep-Image.ai, accessed on February 16, 2025, [https://deep-image.ai/app/plans](https://deep-image.ai/app/plans) +17\. AI Old Photo Restoration: Repair & Enhance Old Pictures In Seconds \- VanceAI, accessed on February 16, 2025, [https://vanceai.com/old-photo-restoration/](https://vanceai.com/old-photo-restoration/) +18\. Vance AI: Your Secret Weapon for Effortless Image Enhancement \- Content Beta, accessed on February 16, 2025, [https://www.contentbeta.com/blog/vance-ai/](https://www.contentbeta.com/blog/vance-ai/) +19\. VanceAI | AI Photo Enhancement, Generation & Editing Tools Provider, accessed on February 16, 2025, [https://vanceai.com/](https://vanceai.com/) +20\. Vance AI Pricing \- Photo Editing Software \- SaaSworthy, accessed on February 16, 2025, [https://www.saasworthy.com/product/vance-ai/pricing](https://www.saasworthy.com/product/vance-ai/pricing) +21\. Pricing Plan \- VanceAI, accessed on February 16, 2025, [https://vanceai.com/pricing/](https://vanceai.com/pricing/) +22\. Pricing Plan \- VanceAI, accessed on February 16, 2025, [https://vanceai.com/pricing-for-win/](https://vanceai.com/pricing-for-win/) +23\. Getimg.ai Review: The Best Free AI Image Generator & Editor? \- Unite.AI, accessed on February 16, 2025, [https://www.unite.ai/getimg-ai-review/](https://www.unite.ai/getimg-ai-review/) +24\. Getimg.ai Review: Features, Pros & Cons, Free Trial \- Medium, accessed on February 16, 2025, [https://medium.com/@paowens59/getimg-ai-review-full-features-pros-cons-free-trial-5da453f196c7](https://medium.com/@paowens59/getimg-ai-review-full-features-pros-cons-free-trial-5da453f196c7) +25\. Image to Image AI Generator Online | getimg.ai, accessed on February 16, 2025, [https://getimg.ai/features/image-to-image](https://getimg.ai/features/image-to-image) +26\. Pricing Plans \- Getimg.ai, accessed on February 16, 2025, [https://getimg.ai/pricing](https://getimg.ai/pricing) +27\. Everything you need to create images with AI | getimg.ai, accessed on February 16, 2025, [https://getimg.ai/](https://getimg.ai/) +28\. pincel.app, accessed on February 16, 2025, [https://pincel.app/tools/inpaint\#:\~:text=An%20inpainting%20tool%20is%20a,blemishes%2C%20or%20create%20seamless%20montages.](https://pincel.app/tools/inpaint#:~:text=An%20inpainting%20tool%20is%20a,blemishes%2C%20or%20create%20seamless%20montages.) +29\. Free Online Inpainting Tool \- Pincel, accessed on February 16, 2025, [https://pincel.app/tools/inpaint](https://pincel.app/tools/inpaint) +30\. All Pincel AI Image Tools Explained, accessed on February 16, 2025, [https://blog.pincel.app/ai-tools/](https://blog.pincel.app/ai-tools/) +31\. Pincel \- Smart and Easy Image Editing App, accessed on February 16, 2025, [https://pincel.app/](https://pincel.app/) +32\. Pricing \- Pincel, accessed on February 16, 2025, [https://pincel.app/pricing](https://pincel.app/pricing) +33\. Imagine More with AI Inpainting \- Novita AI, accessed on February 16, 2025, [https://novita.ai/model-api/product/inpainting](https://novita.ai/model-api/product/inpainting) +34\. Getimg vs. novita.ai: Image generation comparison, accessed on February 16, 2025, [https://novita.ai/blogs/getimg-vs-novitaai-image-generation-faceoff.html](https://novita.ai/blogs/getimg-vs-novitaai-image-generation-faceoff.html) +35\. Novita AI – Model Libraries & GPU Cloud \- Deploy, Scale & Innovate, accessed on February 16, 2025, [https://novita.ai/](https://novita.ai/) +36\. Novita AI: Open-Source LLMs, and Affordable GPU Instances \- LobeHub, accessed on February 16, 2025, [https://lobehub.com/blog/novita-ai-open-source-llms-gpu-instances](https://lobehub.com/blog/novita-ai-open-source-llms-gpu-instances) +37\. Novita AI LLM Inference API \- Dev Hunt, accessed on February 16, 2025, [https://devhunt.org/tool/novita](https://devhunt.org/tool/novita) +38\. Online Image Inpainting Tool Powered by Stability.AI \- Sider, accessed on February 16, 2025, [https://sider.ai/create/image/inpaint](https://sider.ai/create/image/inpaint) +39\. Sider Features, Pricing, and Alternatives \- AI Tools, accessed on February 16, 2025, [https://aitools.inc/tools/sider](https://aitools.inc/tools/sider) +40\. Translate Text in Image and Photo Online for Free | Sider.AI, accessed on February 16, 2025, [https://sider.ai/translator/image-translator](https://sider.ai/translator/image-translator) +41\. Free AI Translator: Online Accurate ChatGPT Translation Tool | Sider.AI, accessed on February 16, 2025, [https://sider.ai/translator/text-translator](https://sider.ai/translator/text-translator) +42\. Photo Restoration \- Restore Old Photos with AI Online \- Picsart, accessed on February 16, 2025, [https://picsart.com/ai-image-enhancer/photo-restoration/](https://picsart.com/ai-image-enhancer/photo-restoration/) +43\. Picsart Pro \- Access Advanced Creative Tools, accessed on February 16, 2025, [https://picsart.com/pricing](https://picsart.com/pricing) +44\. Online Photo & Video Editor \- Storytelling Starts Here \- Picsart, accessed on February 16, 2025, [https://picsart.com/apps/picsart-photo-studio/](https://picsart.com/apps/picsart-photo-studio/) +45\. Free-to-Edit Images & Photos \- Start Editing Online & Free \- Picsart, accessed on February 16, 2025, [https://picsart.com/images](https://picsart.com/images) +46\. Picsart: Free AI Design Tools, accessed on February 16, 2025, [https://picsart.com/](https://picsart.com/) +47\. Hotpot AI Review \- Your Creative Helper, accessed on February 16, 2025, [https://originality.ai/blog/hotpot-ai-review](https://originality.ai/blog/hotpot-ai-review) +48\. Hotpot.ai: AI image generator, AI headshots, and other AI tools to spark creativity and productivity, accessed on February 16, 2025, [https://hotpot.ai/](https://hotpot.ai/) +49\. Restore photos: remove scratches, sharpen colors, and enhance ..., accessed on February 16, 2025, [https://hotpot.ai/restore-picture](https://hotpot.ai/restore-picture) +50\. AI Tools: AI headshots, AI image generator, and more \- Hotpot.ai, accessed on February 16, 2025, [https://hotpot.ai/tools](https://hotpot.ai/tools) +51\. AI Image Generator \- Hotpot.ai, accessed on February 16, 2025, [https://hotpot.ai/ai-image-generator](https://hotpot.ai/ai-image-generator) +52\. Phot.AI: AI Photo Editing | Visual Content Creation Platform, accessed on February 16, 2025, [https://www.phot.ai/](https://www.phot.ai/) +53\. AI Photo Enhancer: High quality online AI Image enhancer \- Phot.AI, accessed on February 16, 2025, [https://www.phot.ai/ai-photo-enhancer](https://www.phot.ai/ai-photo-enhancer) +54\. Uncrop & AI Expand Images Easily with AI Image Extender Tool \- Phot.AI, accessed on February 16, 2025, [https://www.phot.ai/ai-image-extender](https://www.phot.ai/ai-image-extender) +55\. Phot.AI Reviews & Product Details \- G2, accessed on February 16, 2025, [https://www.g2.com/products/phot-ai/reviews](https://www.g2.com/products/phot-ai/reviews) +56\. Phot.AI Software Reviews, Demo & Pricing \- 2025, accessed on February 16, 2025, [https://www.softwareadvice.com/graphic-design/phot-ai-profile/](https://www.softwareadvice.com/graphic-design/phot-ai-profile/) +57\. PhotoRestore.io-A free service using AI technology to restore photos. \- AIbase, accessed on February 16, 2025, [https://www.aibase.com/tool/29714](https://www.aibase.com/tool/29714) +58\. AI Photo Restoration & Album Management \- Restore, Organize ..., accessed on February 16, 2025, [https://www.photorestore.io/](https://www.photorestore.io/) +59\. RestorePhotos And 10 Other AI Alternatives For Image restoration, accessed on February 16, 2025, [https://theresanaiforthat.com/ai/restorephotos/](https://theresanaiforthat.com/ai/restorephotos/) +60\. Photo Restore \- ToolAI The world's most complete and comprehensive collection of AI artificial intelligence tools, accessed on February 16, 2025, [https://toolai.io/en/ai/photo-restore](https://toolai.io/en/ai/photo-restore) \ No newline at end of file diff --git a/packages/osr-code-bot/ref/gemini/assistant.html b/packages/osr-code-bot/ref/gemini/assistant.html new file mode 100644 index 0000000..d365b41 --- /dev/null +++ b/packages/osr-code-bot/ref/gemini/assistant.html @@ -0,0 +1,2466 @@ + +edit box document.querySelector("#app-root > main > side-navigation-v2 > +mat-sidenav-container > mat-sidenav-content > div > div.content-container > +chat-window > div > input-container > div > input-area-v2 > input-area-content > +div > div > div.text-input-field_textarea-wrapper.ng-tns-c1058860002-58 > div > +div > rich-textarea") + +//*[@id="app-root"]/main/side-navigation-v2/mat-sidenav-container/mat-sidenav-content/div/div[2]/chat-window/div/input-container/div/input-area-v2/input-area-content/div/div/div[2]/div/div/rich-textarea + +#app-root > main > side-navigation-v2 > mat-sidenav-container > +mat-sidenav-content > div > div.content-container > chat-window > div > +input-container > div > input-area-v2 > input-area-content > div > div > +div.text-input-field_textarea-wrapper.ng-tns-c1058860002-58 > div > div > +rich-textarea + +


+ + + +eval - research +)]}' + +3418 +[["wrb.fr","kwDCne","[[\"7f9e0d19-bbfd-4e3d-9182-3d349889a3ce\",[null,null,null,[\"c_4cc1d7fd79e61ac5\"],[\"Recycled Industrial Plastic Suppliers in Spain\\n\",\"Sources industrial plastic, recycled, clean, dry, spain, markdown table, links, prices\\n(1) Find suppliers of recycled industrial plastic in Spain.\\n(2) Filter suppliers based on those who offer clean and dry plastic.\\n(3) For each supplier, find the following information and present it in a markdown table:\\n (a) Company name\\n (b) Website link\\n (c) Types of recycled industrial plastic offered\\n (d) Prices (if available)\\n (e) Location in Spain\\n (f) Any certifications or quality standards they meet\\n(4) Specify that prices may vary depending on factors such as quantity, quality, and market conditions.\\n\",[[null,null,null,null,[1,\"Researching websites\",[\"http://t0.gstatic.com/faviconV2?url\\u003dhttps://plastagroup.com/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://plastagroup.com/\",\"Plasta Group: Main Page\"],[1739729431,576922772]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t1.gstatic.com/faviconV2?url\\u003dhttps://ensun.io/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://ensun.io/search/plastic-recycling/spain\",\"Top 60 Plastic Recycling Companies in Spain (2025) - ensun\"],[1739729431,576950347]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t1.gstatic.com/faviconV2?url\\u003dhttps://www.recicladoslared.es/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://www.recicladoslared.es/index.php/en/about-us/\",\"ABOUT US - Reciclados LA RED\"],[1739729431,576922772]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t0.gstatic.com/faviconV2?url\\u003dhttps://www.enfplastic.com/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://www.enfplastic.com/directory/plant/Spain\",\"Plastic Recycling Plants In Spain\"],[1739729431,576922772]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t2.gstatic.com/faviconV2?url\\u003dhttps://plasticos-reciclados.es/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://plasticos-reciclados.es/en/home/\",\"Home - Plasticos Reciclados\"],[1739729431,576950347]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t0.gstatic.com/faviconV2?url\\u003dhttps://bplplastic.com/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://bplplastic.com/en/home/our-company/\",\"Our company - Baidal Plastic\"],[1739729431,576922772]]],[null,null,null,null,[1,\"Researching websites\",[\"http://t1.gstatic.com/faviconV2?url\\u003dhttps://www.vandenrecycling.com/\\u0026client\\u003dBARD\\u0026type\\u003dFAVICON\\u0026size\\u003d256\\u0026fallback_opts\\u003dTYPE,SIZE,URL\",\"https://www.vandenrecycling.com/en/who-we-are/our-locations/plastic-recycling-services-in-spain/\",\"Scrap \\u0026 Recycled Plastic Supply for Spain \\u0026 Southern Europe\"],[1739729431,576950347]]]]]],[null,[],null,null,null,[1739729452,661437206],[1739729424,780240024]]]]",null,null,null,"generic"]] +57 +[["di",158],["af.httprm",157,"3305251875176477761",19]] +26 +[["e",4,null,null,3515]] +fetch("https://gemini.google.com/_/BardChatUi/data/batchexecute?rpcids=kwDCne&source-path=%2Fimmersive%2F4cc1d7fd79e61ac5%2Fcff81bf9e2174539&bl=boq_assistant-bard-web-server_20250213.01_p0&f.sid=3251736645897288852&hl=en-GB&_reqid=3768781&rt=c", +{ +"headers": { +"content-type": "application/x-www-form-urlencoded;charset=UTF-8", +"sec-ch-ua": +"\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\"", +"sec-ch-ua-arch": "\"x86\"", +"sec-ch-ua-bitness": "\"64\"", +"sec-ch-ua-form-factors": "\"Desktop\"", +"sec-ch-ua-full-version": "\"132.0.6834.197\"", +"sec-ch-ua-full-version-list": +"\"Not A(Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"132.0.6834.197\", \"Google Chrome\";v=\"132.0.6834.197\"", +"sec-ch-ua-mobile": "?0", +"sec-ch-ua-model": "\"\"", +"sec-ch-ua-platform": "\"Windows\"", +"sec-ch-ua-platform-version": "\"10.0.0\"", +"sec-ch-ua-wow64": "?0", +"x-same-domain": "1", +"Referer": "https://gemini.google.com/", +"Referrer-Policy": "origin" +}, +"body": +"f.req=%5B%5B%5B%22kwDCne%22%2C%22%5B%5C%227f9e0d19-bbfd-4e3d-9182-3d349889a3ce%5C%22%5D%22%2Cnull%2C%22generic%22%5D%5D%5D&at=ANYMCWwECzTUdZ4vpHcGuE0r_Fpr%3A1739729182008&", +"method": "POST" +}); + +end : + +)]}' + +116 +[["wrb.fr","aPya6c","[false,0,[]]",null,null,null,"generic"],["di",57],["af.httprm",56,"-1297692182057002034",16]] +25 +[["e",4,null,null,152]] + +"open in docs" + + + +content : + +

Recycled Industrial + Plastic Suppliers in Spain

This report provides + information on suppliers of recycled industrial + plastic in Spain, with a focus on those who + offer clean and dry materials. It includes a + markdown table with company names, website + links, types of recycled industrial plastic + offered, prices (if available), location in + Spain, and any certifications or quality + standards they meet.

Recycled Industrial + Plastic Suppliers in Spain

Several companies in + Spain specialize in recycling industrial + plastic. These companies collect post-industrial + plastic waste and transform the material into + recycled plastic for use in various + applications. + A key consideration when sourcing recycled + industrial plastic is the cleanliness and + dryness of the material. Clean, dry plastic is + essential for many industrial applications to + ensure the quality of the final product and the + efficiency of the manufacturing process. + However, finding suppliers that consistently + offer clean, dry recycled plastic can be + challenging. +  

Here are a few + companies in Spain that offer recycled + industrial plastic:

    +
  • Baidal + Plastic: With over 40 years of + experience, Baidal Plastic is a leading + recycler of industrial plastic waste in + Alicante, Spain. They are officially + certified managers of post-industrial + plastic waste and offer a wide range of + recycled plastics, including PVC, + polypropylene (PP), polyamide (PA), + polycarbonate (PC), and ABS (acrylonitrile + butadiene styrene). + Baidal Plastic emphasizes a circular economy + approach, aiming to reuse plastic scrap from + industrial manufacturing processes and + reduce plastic + pollution. +  
  • +
  • Reciclados + La Red by Veolia: Based in + Seville, Spain, Reciclados La Red by Veolia + is a highly experienced company that uses + advanced technology to recycle post-consumer + plastics. They are the first recyclers in + Spain to receive the UNE-EN 15343 + certificate for Traceability of + Post-consumer Recycled + Plastic. + They specialize in the recycling of + high-density polyethylene (HDPE), + low-density polyethylene (LDPE), and + polypropylene (PP). +  
  • +
  • Vanden + Recycling: Located in + Barcelona, Spain, Vanden Recycling is a + global leader in plastic recycling, + connecting recyclers, manufacturers, + converters, and compounders across Spain, + Italy, Portugal, and Southern France with + global markets. + They offer over 100 grades of scrap plastic, + including PET, PP, LDPE, HDPE, ABS, EPS, PA, + PC, PMMA, PS, and PVC. + In addition to supplying recycled plastics, + Vanden Recycling provides guidance and + best-practice advice on strategies for the + recovery, sorting, and processing of plastic + scrap to help their customers maximize the + value of their materials and contribute to + sustainable supply + chains. +  
  • +
  • Onlyplast + Spain S.L.: Located in Murcia, + Spain, Onlyplast Spain S.L. handles, + processes, supplies, and distributes + recycled plastic materials to both the + national and international markets. They + offer recycled plastic materials in various + forms, including granules, + densified-agglomerate, regrind, and + baled. +  
  • +
  • Plasta + Group: Plasta Group is one of + Europe's largest polyethylene recyclers, + producers, and suppliers of sustainable + plastic products. + They turn post-consumer plastic waste into a + resource to make new sustainable + polyethylene products. + They hold EcoVadis Silver, ISO 9001, 14001 + & 45001, Blue Angel, RAL, and RecyClass + certificates. +  
  • +

Markdown Table + of Suppliers

+
CompanyWebsiteTypes + of Recycled Industrial Plastic + OfferedPricesLocation + in SpainCertifications + or Quality + Standards
Baidal + Plastichttps://bplplastic.com/en/PVC, + PP, PA, PC, ABSUnavailable + - contact the company for + pricingAlicanteEuCertPlast + certified +
Reciclados + La Red by Veoliahttps://www.recicladoslared.es/index.php/en/home/HDPE, + LDPE, PPUnavailable + - contact the company for + pricingSevilleUNE-EN + 15343 certificate for + Traceability of Post-consumer + Recycled Plastic +
Vanden + Recyclinghttps://www.vandenrecycling.com/en/what-we-do/buy-and-sell-plastic/PET, + PP, LDPE, HDPE, ABS, EPS, PA, + PC, PMMA, PS, PVCUnavailable + - contact the company for + pricingBarcelonaWeEEELABELS + quality standards, ISO 9001, ISO + 14001, and OHSAS 18001 + requirements +
Onlyplast + Spain S.L.https://plasticos-reciclados.es/en/home/Granules, + densified-agglomerate, regrind, + and baledUnavailable + - contact the company for + pricingMurciaNot + specified
Plasta + Grouphttps://plastagroup.com/Recycled + LDPEUnavailable + - contact the company for + pricingNot + specifiedEcoVadis + Silver, ISO 9001, 14001 & + 45001, Blue Angel, RAL, and + RecyClass certificates +
+
+  

Prices: + It is important to note that prices for recycled + industrial plastic may vary depending on factors + such as quantity, quality, and market + conditions. Recent reports indicate that + recycled plastic prices have been on the + rise. +  

Conclusion

This report has + provided information on suppliers of recycled + industrial plastic in Spain, with a focus on + those who offer clean and dry materials. It has + also included a markdown table summarizing key + information about each supplier, such as the + types of plastic offered, location, and + certifications.

While information + on whether the companies offer clean and dry + industrial plastic and pricing is limited, the + report provides a starting point for businesses + looking to source recycled industrial plastic in + Spain. By contacting the companies directly, + businesses can get more information on their + products and services.

The report + highlights the growing importance of recycled + industrial plastics in Spain. Using recycled + plastics offers several environmental benefits, + including reducing plastic pollution, conserving + natural resources, and minimizing landfill + waste. + As sustainability becomes an increasingly + important consideration for businesses, the + demand for recycled industrial plastics is + likely to continue to grow in the + future. +  

Researched + 32 websites

In + researching your report, Gemini searches the web + and browses content from relevant websites on + your behalf.
Icon of the website
Plasta Group: + Main Page
plastagroup.com
Opens + in a new + window
Icon of the website
Top 60 Plastic + Recycling Companies in Spain + (2025) - + ensun
ensun.io/search/plastic-recycling/spain
Opens + in a new + window
Icon of the website
ABOUT US - + Reciclados LA + RED
recicladoslared.es/index.php/en/about-us
Opens + in a new + window
Icon of the website
Plastic + Recycling Plants In + Spain
enfplastic.com/directory/plant/Spain
Opens + in a new + window
Icon of the website
Home - + Plasticos + Reciclados
plasticos-reciclados.es/en/home
Opens + in a new + window
Icon of the website
Our company - + Baidal + Plastic
bplplastic.com/en/home/our-company
Opens + in a new + window
Icon of the website
Scrap & + Recycled Plastic Supply for + Spain & Southern + Europe
vandenrecycling.com/en/who-we-are/our-locations/plastic-recycling-services-in-spain
Opens + in a new + window
Icon of the website
Capturing the + green-premium value from + sustainable materials - + McKinsey & + Company
mckinsey.com/industries/metals-and-mining/our-insights/capturing-the-green-premium-value-from-sustainable-materials
Opens + in a new + window
Icon of the website
REINVENTING + PLASTICS - Institut + Veolia
institut.veolia.org/sites/g/files/dvc2551/files/document/2019/03/Reinventing%20Plastics%20-%20Veolia%20Institute%202019.pdf
Opens + in a new + window
Icon of the website
What are the + Different Types of Plastics? + - Clean the + World
cleantheworld.org/blog/what-are-the-different-types-of-plastics
Opens + in a new + window
Icon of the website
Plastic + recycling - + Wikipedia
en.wikipedia.org/wiki/Plastic_recycling
Opens + in a new + window
Icon of the website
Compliance - + Vanden + Recycling
vandenrecycling.com/en/how-we-work/compliance
Opens + in a new + window
Icon of the website
Plastic + recycling and their use as + raw material for the + synthesis of carbonaceous + materials
pmc.ncbi.nlm.nih.gov/articles/PMC8941171
Opens + in a new + window
Icon of the website
Certifications; + VCA*, Erbo, FSC, PEFC en een + RAL - Van den + Nagel
vandennagel.nl/en/certifications
Opens + in a new + window
Icon of the website
Vanden + Recycling: Experts in + Plastic + Recycling
vandenrecycling.com/en
Opens + in a new + window
Icon of the website
Buy and Sell + Plastic | Vanden + Recycling
vandenrecycling.com/en/what-we-do/buy-and-sell-plastic
Opens + in a new + window
Icon of the website
EuCertPlast + Certification - Baidal + Plastic
bplplastic.com/en/eucertplast-certification
Opens + in a new + window
Icon of the website
Vanden + Recycling - Manufacturing + Today
manufacturing-today.com/news/vanden-recycling
Opens + in a new + window
Icon of the website
MRA Waste + Plastics Industry Standards + Report 1 April 2021 - + DCCEEW
dcceew.gov.au/sites/default/files/documents/waste-plastics-industry-standards-report.pdf
Opens + in a new + window
Icon of the website
Recycling and + recovery of plastic scrap We + purchase post-industrial + plastic waste - Baidal + Plastic
bplplastic.com/en
Opens + in a new + window
Icon of the website
CERTIFICATE OF + REGISTRATION - Vanden + Recycling
vandenrecycling.com/app/uploads/sites/12/2022/08/Vanden-Recycling-Ltd-QMS-2021-01.pdf
Opens + in a new + window
Icon of the website
List of + Certified Recyclers - + EuCertPlast
eucertplast.eu/certified-recyclers
Opens + in a new + window
Icon of the website
Sort For Value + - Plastics + Markets
plasticsmarkets.org/view/sortforvalue
Opens + in a new + window
Icon of the website
Vanden Avenne + Commodities + NV
vda.be/storage/app/media/kwaliteit/pdf/fca/FCA_VDA_en_2024.pdf
Opens + in a new + window
Icon of the website
Certification + schemes - PolyCert + Europe
polycerteurope.eu/certification-schemes
Opens + in a new + window
Icon of the website
USA - + BIR
bir.org/members-area/world-mirrors/plastics/1000008110-usa-2
Opens + in a new + window
Icon of the website
Recycled + plastic prices continue to + climb higher
resource-recycling.com/plastics/2024/05/15/recycled-plastic-prices-continue-to-climb-higher
Opens + in a new + window
Icon of the website
APR PCR + Certification - Association + of Plastic + Recyclers
plasticsrecycling.org/tools-and-resources/apr-tools/apr-pcr-certification
Opens + in a new + window
Icon of the website
Recycled + Plastics Weekly - + OPIS
info.opisnet.com/hubfs/PetroChem%20Wire%20Sample%20Reports/Recycled%20Plastics%20Sample%20Report.pdf?hsLang=en
Opens + in a new + window
Icon of the website
Different + Types of Recycled Plastics + and Benefits
banyannation.com/blog/types-of-recycled-plastics
Opens + in a new + window
Icon of the website
What are the + top plastics that get + recycled? - + Oceanworks
oceanworks.co/blogs/ocean-plastic-news/what-are-the-top-plastics-that-get-recycled
Opens + in a new + window
Icon of the website
Allan Company + recycles a full range of + plastic + materials.
allancompany.com/recyclables/plastic
Opens + in a new + window
+ + +all-sources + +

Conversation with Gemini

Here's my plan to tackle that topic. Let me know if you need to make changes.

Recycled Industrial Plastic Suppliers in Spain +
Research Websites
Sources industrial plastic, recycled, clean, dry, spain, markdown table, links, prices +(1) Find suppliers of recycled industrial plastic in Spain. +(2) Filter suppliers based on those who offer clean and dry plastic. +(3) For each supplier, find the following information and present it in a markdown table: + (a) Company name + (b) Website link + (c) Types of recycled industrial plastic offered + (d) Prices (if available) + (e) Location in Spain + (f) Any certifications or quality standards they meet +(4) Specify that prices may vary depending on factors such as quantity, quality, and market conditions. +
Analyze Results
Create Report
Ready in a few mins

Start research

I've completed your research. Feel free to ask me follow-up questions or request changes.

Recycled Industrial Plastic Suppliers in Spain +Feb 16, 7:12 pm

profile picture


Gemini can make mistakes, including about people, so double-check it. + + Your privacy and Gemini +

Recycled Industrial Plastic Suppliers in Spain +

Recycled Industrial Plastic Suppliers in Spain

This report provides information on suppliers of recycled industrial plastic in Spain, with a focus on those who offer clean and dry materials. It includes a markdown table with company names, website links, types of recycled industrial plastic offered, prices (if available), location in Spain, and any certifications or quality standards they meet.

Recycled Industrial Plastic Suppliers in Spain

Several companies in Spain specialize in recycling industrial plastic. These companies collect post-industrial plastic waste and transform the material into recycled plastic for use in various applications. A key consideration when sourcing recycled industrial plastic is the cleanliness and dryness of the material. Clean, dry plastic is essential for many industrial applications to ensure the quality of the final product and the efficiency of the manufacturing process. However, finding suppliers that consistently offer clean, dry recycled plastic can be challenging.  

Here are a few companies in Spain that offer recycled industrial plastic:

    +
  • Baidal Plastic: With over 40 years of experience, Baidal Plastic is a leading recycler of industrial plastic waste in Alicante, Spain. They are officially certified managers of post-industrial plastic waste and offer a wide range of recycled plastics, including PVC, polypropylene (PP), polyamide (PA), polycarbonate (PC), and ABS (acrylonitrile butadiene styrene). Baidal Plastic emphasizes a circular economy approach, aiming to reuse plastic scrap from industrial manufacturing processes and reduce plastic pollution.  
  • +
  • Reciclados La Red by Veolia: Based in Seville, Spain, Reciclados La Red by Veolia is a highly experienced company that uses advanced technology to recycle post-consumer plastics. They are the first recyclers in Spain to receive the UNE-EN 15343 certificate for Traceability of Post-consumer Recycled Plastic. They specialize in the recycling of high-density polyethylene (HDPE), low-density polyethylene (LDPE), and polypropylene (PP).  
  • +
  • Vanden Recycling: Located in Barcelona, Spain, Vanden Recycling is a global leader in plastic recycling, connecting recyclers, manufacturers, converters, and compounders across Spain, Italy, Portugal, and Southern France with global markets. They offer over 100 grades of scrap plastic, including PET, PP, LDPE, HDPE, ABS, EPS, PA, PC, PMMA, PS, and PVC. In addition to supplying recycled plastics, Vanden Recycling provides guidance and best-practice advice on strategies for the recovery, sorting, and processing of plastic scrap to help their customers maximize the value of their materials and contribute to sustainable supply chains.  
  • +
  • Onlyplast Spain S.L.: Located in Murcia, Spain, Onlyplast Spain S.L. handles, processes, supplies, and distributes recycled plastic materials to both the national and international markets. They offer recycled plastic materials in various forms, including granules, densified-agglomerate, regrind, and baled.  
  • +
  • Plasta Group: Plasta Group is one of Europe's largest polyethylene recyclers, producers, and suppliers of sustainable plastic products. They turn post-consumer plastic waste into a resource to make new sustainable polyethylene products. They hold EcoVadis Silver, ISO 9001, 14001 & 45001, Blue Angel, RAL, and RecyClass certificates.  
  • +

Markdown Table of Suppliers

+
CompanyWebsiteTypes of Recycled Industrial Plastic OfferedPricesLocation in SpainCertifications or Quality Standards
Baidal Plastichttps://bplplastic.com/en/PVC, PP, PA, PC, ABSUnavailable - contact the company for pricingAlicanteEuCertPlast certified
Reciclados La Red by Veoliahttps://www.recicladoslared.es/index.php/en/home/HDPE, LDPE, PPUnavailable - contact the company for pricingSevilleUNE-EN 15343 certificate for Traceability of Post-consumer Recycled Plastic
Vanden Recyclinghttps://www.vandenrecycling.com/en/what-we-do/buy-and-sell-plastic/PET, PP, LDPE, HDPE, ABS, EPS, PA, PC, PMMA, PS, PVCUnavailable - contact the company for pricingBarcelonaWeEEELABELS quality standards, ISO 9001, ISO 14001, and OHSAS 18001 requirements
Onlyplast Spain S.L.https://plasticos-reciclados.es/en/home/Granules, densified-agglomerate, regrind, and baledUnavailable - contact the company for pricingMurciaNot specified
Plasta Grouphttps://plastagroup.com/Recycled LDPEUnavailable - contact the company for pricingNot specifiedEcoVadis Silver, ISO 9001, 14001 & 45001, Blue Angel, RAL, and RecyClass certificates
+
 

Prices: It is important to note that prices for recycled industrial plastic may vary depending on factors such as quantity, quality, and market conditions. Recent reports indicate that recycled plastic prices have been on the rise.  

Conclusion

This report has provided information on suppliers of recycled industrial plastic in Spain, with a focus on those who offer clean and dry materials. It has also included a markdown table summarizing key information about each supplier, such as the types of plastic offered, location, and certifications.

While information on whether the companies offer clean and dry industrial plastic and pricing is limited, the report provides a starting point for businesses looking to source recycled industrial plastic in Spain. By contacting the companies directly, businesses can get more information on their products and services.

The report highlights the growing importance of recycled industrial plastics in Spain. Using recycled plastics offers several environmental benefits, including reducing plastic pollution, conserving natural resources, and minimizing landfill waste. As sustainability becomes an increasingly important consideration for businesses, the demand for recycled industrial plastics is likely to continue to grow in the future.  

Researched 32 websites

In researching your report, Gemini searches the web and browses content from relevant websites on your behalf.
Icon of the website
Plasta Group: Main Page
plastagroup.com
Opens in a new window
Icon of the website
Top 60 Plastic Recycling Companies in Spain (2025) - ensun
ensun.io/search/plastic-recycling/spain
Opens in a new window
Icon of the website
ABOUT US - Reciclados LA RED
recicladoslared.es/index.php/en/about-us
Opens in a new window
Icon of the website
Plastic Recycling Plants In Spain
enfplastic.com/directory/plant/Spain
Opens in a new window
Icon of the website
Home - Plasticos Reciclados
plasticos-reciclados.es/en/home
Opens in a new window
Icon of the website
Our company - Baidal Plastic
bplplastic.com/en/home/our-company
Opens in a new window
Icon of the website
Scrap & Recycled Plastic Supply for Spain & Southern Europe
vandenrecycling.com/en/who-we-are/our-locations/plastic-recycling-services-in-spain
Opens in a new window
Icon of the website
Capturing the green-premium value from sustainable materials - McKinsey & Company
mckinsey.com/industries/metals-and-mining/our-insights/capturing-the-green-premium-value-from-sustainable-materials
Opens in a new window
Icon of the website
REINVENTING PLASTICS - Institut Veolia
institut.veolia.org/sites/g/files/dvc2551/files/document/2019/03/Reinventing%20Plastics%20-%20Veolia%20Institute%202019.pdf
Opens in a new window
Icon of the website
What are the Different Types of Plastics? - Clean the World
cleantheworld.org/blog/what-are-the-different-types-of-plastics
Opens in a new window
Icon of the website
Plastic recycling - Wikipedia
en.wikipedia.org/wiki/Plastic_recycling
Opens in a new window
Icon of the website
Compliance - Vanden Recycling
vandenrecycling.com/en/how-we-work/compliance
Opens in a new window
Icon of the website
Plastic recycling and their use as raw material for the synthesis of carbonaceous materials
pmc.ncbi.nlm.nih.gov/articles/PMC8941171
Opens in a new window
Icon of the website
Certifications; VCA*, Erbo, FSC, PEFC en een RAL - Van den Nagel
vandennagel.nl/en/certifications
Opens in a new window
Icon of the website
Vanden Recycling: Experts in Plastic Recycling
vandenrecycling.com/en
Opens in a new window
Icon of the website
Buy and Sell Plastic | Vanden Recycling
vandenrecycling.com/en/what-we-do/buy-and-sell-plastic
Opens in a new window
Icon of the website
EuCertPlast Certification - Baidal Plastic
bplplastic.com/en/eucertplast-certification
Opens in a new window
Icon of the website
Vanden Recycling - Manufacturing Today
manufacturing-today.com/news/vanden-recycling
Opens in a new window
Icon of the website
MRA Waste Plastics Industry Standards Report 1 April 2021 - DCCEEW
dcceew.gov.au/sites/default/files/documents/waste-plastics-industry-standards-report.pdf
Opens in a new window
Icon of the website
Recycling and recovery of plastic scrap We purchase post-industrial plastic waste - Baidal Plastic
bplplastic.com/en
Opens in a new window
Icon of the website
CERTIFICATE OF REGISTRATION - Vanden Recycling
vandenrecycling.com/app/uploads/sites/12/2022/08/Vanden-Recycling-Ltd-QMS-2021-01.pdf
Opens in a new window
Icon of the website
List of Certified Recyclers - EuCertPlast
eucertplast.eu/certified-recyclers
Opens in a new window
Icon of the website
Sort For Value - Plastics Markets
plasticsmarkets.org/view/sortforvalue
Opens in a new window
Icon of the website
Vanden Avenne Commodities NV
vda.be/storage/app/media/kwaliteit/pdf/fca/FCA_VDA_en_2024.pdf
Opens in a new window
Icon of the website
Certification schemes - PolyCert Europe
polycerteurope.eu/certification-schemes
Opens in a new window
Icon of the website
USA - BIR
bir.org/members-area/world-mirrors/plastics/1000008110-usa-2
Opens in a new window
Icon of the website
Recycled plastic prices continue to climb higher
resource-recycling.com/plastics/2024/05/15/recycled-plastic-prices-continue-to-climb-higher
Opens in a new window
Icon of the website
APR PCR Certification - Association of Plastic Recyclers
plasticsrecycling.org/tools-and-resources/apr-tools/apr-pcr-certification
Opens in a new window
Icon of the website
Recycled Plastics Weekly - OPIS
info.opisnet.com/hubfs/PetroChem%20Wire%20Sample%20Reports/Recycled%20Plastics%20Sample%20Report.pdf?hsLang=en
Opens in a new window
Icon of the website
Different Types of Recycled Plastics and Benefits
banyannation.com/blog/types-of-recycled-plastics
Opens in a new window
Icon of the website
What are the top plastics that get recycled? - Oceanworks
oceanworks.co/blogs/ocean-plastic-news/what-are-the-top-plastics-that-get-recycled
Opens in a new window
Icon of the website
Allan Company recycles a full range of plastic materials.
allancompany.com/recyclables/plastic
Opens in a new window
\ No newline at end of file diff --git a/packages/osr-code-bot/src/client.ts b/packages/osr-code-bot/src/client.ts index 3cda9b4..e98537a 100644 --- a/packages/osr-code-bot/src/client.ts +++ b/packages/osr-code-bot/src/client.ts @@ -10,7 +10,7 @@ import { IKBotOptions } from './zod_types'; /** * Router types supported by the client */ -type RouterType = 'openrouter' | 'openai' | 'deepseek' | 'huggingface' | 'ollama' | 'fireworks' | 'gemini' +type RouterType = 'openrouter' | 'openai' | 'deepseek' | 'huggingface' | 'ollama' | 'fireworks' | 'gemini' | 'xai' /** * Default base URLs for different routers @@ -23,6 +23,7 @@ const ROUTER_BASE_URLS: Record = { ollama: 'http://localhost:11434', // Ollama's default local API endpoint fireworks: 'https://api.fireworks.ai/v1', // Fireworks API endpoint gemini: 'https://generativelanguage.googleapis.com/v1beta', // Gemini API base URL + xai: 'https://api.x.ai/v1', // XAI (Grok) API base URL }; /** @@ -36,9 +37,9 @@ const DEFAULT_MODELS: Record = { ollama: 'leonard', // Default Ollama model fireworks: 'llama-v2-70b-chat', // Default Fireworks model gemini: 'gemini-1.5-pro', // Default Gemini model + xai: 'grok-1' // Default XAI (Grok) model }; - -/** +/* * Creates an OpenAI client instance based on the provided options. * @param options - Configuration options for the client * @returns OpenAI client instance or undefined if configuration is invalid @@ -85,6 +86,9 @@ export const createClient = (options: IKBotOptions) => { case 'gemini': apiKey = config?.gemini?.key; break; + case 'xai': + apiKey = config?.xai?.key; + break; } } diff --git a/packages/osr-code-bot/src/zod_schema.ts b/packages/osr-code-bot/src/zod_schema.ts index 6370ab2..537cbbe 100644 --- a/packages/osr-code-bot/src/zod_schema.ts +++ b/packages/osr-code-bot/src/zod_schema.ts @@ -2,27 +2,26 @@ import { z } from 'zod' import * as path from 'path' import chalk from 'chalk' import * as env from 'env-var' - +import { sync as writeFS } from '@plastichub/fs/write' import { resolve } from '@plastichub/osr-commons' +import { generate_interfaces, write, ZodMetaMap } from '@plastichub/osr-commons' +import { isString } from '@plastichub/core/primitives' import { API_PREFIX, LOGGING_DIRECTORY, PREFERENCES_FILE_NAME } from './constants' export const get_var = (key: string ='') => env.get(key).asString() || env.get(key.replace(/-/g, '_')).asString() || env.get(key.replace(/_/g, '-')).asString() -export const HOME = (sub = '') => path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], sub) +export const HOME = (sub = '') => path.join(process.env[(process.platform == 'win32' ) ? 'USERPROFILE' : 'HOME'] || '', sub) export const PREFERENCES_DEFAULT = (key: string = 'KBOT_PREFERENCES') => get_var(key) || path.join(HOME(`.${API_PREFIX}`), PREFERENCES_FILE_NAME) -import { models_dist } from './models' -import { defaultTemplate } from './tools' -import { generate_interfaces, write, ZodMetaMap } from '@plastichub/osr-commons' import { Filters } from './filters' +import { models_dist } from './models' +import { defaultTemplate } from './tools' -import { sync as writeFS } from '@plastichub/fs/write' -import { isString } from '@plastichub/core/primitives' export const E_Filters = z.enum(Object.keys(Filters) as any) -export const RouterTypeSchema = z.enum(['openrouter', 'openai', 'deepseek', 'huggingface', 'ollama', 'fireworks', 'gemini']) +export const RouterTypeSchema = z.enum(['openrouter', 'openai', 'deepseek', 'huggingface', 'ollama', 'fireworks', 'gemini', 'xai']) export type RouterType = z.infer export const EMode = { diff --git a/packages/osr-code-bot/tests/each/${SRC_DIR}/tsconfig-claude-3-openrouter.md b/packages/osr-code-bot/tests/each/${SRC_DIR}/tsconfig-claude-3-openrouter.md new file mode 100644 index 0000000..7b973d9 --- /dev/null +++ b/packages/osr-code-bot/tests/each/${SRC_DIR}/tsconfig-claude-3-openrouter.md @@ -0,0 +1,69 @@ + + +I notice there might be an issue with the file name/path. Let me help parse what appears to be a combination of content that was directly pasted. Here's a JSON summary of the preferences structure: + +{ + "personalInformation": { + "gender": "Male", + "location": "Sentmenat, Barcelona, Spain", + "age": "45+", + "occupation": "Software Developer (Typescript)", + "languages": ["German", "English (preferred)"] + }, + "contactInformation": { + "personalEmail": "cgoflyn@gmail.com", + "wifeEmail": { + "name": "Anne", + "email": "barbier.anne13@gmail.com" + } + }, + "contentPreferences": { + "formatting": { + "format": "Markdown", + "rules": [ + "Add new lines after headings", + "Add links to sources", + "Include prompt in result" + ] + }, + "emailPreferences": { + "signature": "kind regards, Guenter", + "specialRules": { + "wifeEmails": "Use French" + } + }, + "newsSearchPreferences": { + "requirements": [ + "Add links to videos", + "Search via Google and other news outlets" + ] + }, + "developmentPreferences": { + "fileHandling": [ + "No need to test file for existence", + "Prefer modify_project_files tool over write_file when possible" + ] + } + }, + "typescriptConfig": { + "compilerOptions": { + "target": "ES2020", + "module": "CommonJS", + "esModuleInterop": true, + "strict": false, + "skipLibCheck": true, + "outDir": "./", + "rootDir": "src", + "lib": ["es2015", "es2016", "es2017", "dom"], + "allowJs": true, + "composite": false, + "importHelpers": false, + "inlineSourceMap": true + }, + "exclude": ["node_modules/**/*"], + "filesGlob": ["./src/**/*.ts"], + "files": ["src/main.ts", "src/index.ts"] + } +} + +This summarizes all the key information from the configuration file in a structured JSON format, including personal information, contact details, various preferences for content handling, email communication, news search, and development settings, as well as TypeScript compiler configuration. \ No newline at end of file diff --git a/packages/osr-code-bot/zod_schema.js b/packages/osr-code-bot/zod_schema.js index a64734d..ca6abfc 100644 --- a/packages/osr-code-bot/zod_schema.js +++ b/packages/osr-code-bot/zod_schema.js @@ -41,22 +41,22 @@ const zod_1 = require("zod"); const path = __importStar(require("path")); const chalk_1 = __importDefault(require("chalk")); const env = __importStar(require("env-var")); +const write_1 = require("@plastichub/fs/write"); const osr_commons_1 = require("@plastichub/osr-commons"); +const osr_commons_2 = require("@plastichub/osr-commons"); +const primitives_1 = require("@plastichub/core/primitives"); const constants_1 = require("./constants"); const get_var = (key = '') => env.get(key).asString() || env.get(key.replace(/-/g, '_')).asString() || env.get(key.replace(/_/g, '-')).asString(); exports.get_var = get_var; -const HOME = (sub = '') => path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], sub); +const HOME = (sub = '') => path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'] || '', sub); exports.HOME = HOME; const PREFERENCES_DEFAULT = (key = 'KBOT_PREFERENCES') => (0, exports.get_var)(key) || path.join((0, exports.HOME)(`.${constants_1.API_PREFIX}`), constants_1.PREFERENCES_FILE_NAME); exports.PREFERENCES_DEFAULT = PREFERENCES_DEFAULT; +const filters_1 = require("./filters"); const models_1 = require("./models"); const tools_1 = require("./tools"); -const osr_commons_2 = require("@plastichub/osr-commons"); -const filters_1 = require("./filters"); -const write_1 = require("@plastichub/fs/write"); -const primitives_1 = require("@plastichub/core/primitives"); exports.E_Filters = zod_1.z.enum(Object.keys(filters_1.Filters)); -exports.RouterTypeSchema = zod_1.z.enum(['openrouter', 'openai', 'deepseek', 'huggingface', 'ollama', 'fireworks', 'gemini']); +exports.RouterTypeSchema = zod_1.z.enum(['openrouter', 'openai', 'deepseek', 'huggingface', 'ollama', 'fireworks', 'gemini', 'xai']); exports.EMode = { COMPLETION: 'completion', TOOLS: 'tools', @@ -212,4 +212,4 @@ const schemas = () => { (0, write_1.sync)('schema_ui.json', schemaMap.getUISchema()); }; exports.schemas = schemas; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUF1QjtBQUN2QiwyQ0FBNEI7QUFDNUIsa0RBQXlCO0FBQ3pCLDZDQUE4QjtBQUU5Qix5REFBaUQ7QUFFakQsMkNBQWtGO0FBRTNFLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUFsSixRQUFBLE9BQU8sV0FBMkk7QUFDeEosTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQXhHLFFBQUEsSUFBSSxRQUFvRztBQUM5RyxNQUFNLG1CQUFtQixHQUFHLENBQUMsTUFBYyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsSUFBQSxlQUFPLEVBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLFlBQUksRUFBQyxJQUFJLHNCQUFVLEVBQUUsQ0FBQyxFQUFFLGlDQUFxQixDQUFDLENBQUE7QUFB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kX3NjaGVtYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy96b2Rfc2NoZW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZCQUF1QjtBQUN2QiwyQ0FBNEI7QUFDNUIsa0RBQXlCO0FBQ3pCLDZDQUE4QjtBQUM5QixnREFBc0Q7QUFDdEQseURBQWlEO0FBQ2pELHlEQUFnRjtBQUNoRiw0REFBc0Q7QUFFdEQsMkNBQWtGO0FBRTNFLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBYSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUFsSixRQUFBLE9BQU8sV0FBMkk7QUFDeEosTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUEvRyxRQUFBLElBQUksUUFBMkc7QUFDckgsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLE1BQWMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUEsZUFBTyxFQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBQSxZQUFJLEVB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 \ No newline at end of file