From e3e88a82298bc8cdd01310f5ff0376e59fad0348 Mon Sep 17 00:00:00 2001 From: Gary Badwal Date: Sun, 19 Oct 2025 11:13:00 +0530 Subject: [PATCH 1/2] Add google-genai integration --- integrations/cometapi.md | 98 +++++++++++++++++++++++++++++++++++++++ logos/cometapi.png | Bin 0 -> 15400 bytes 2 files changed, 98 insertions(+) create mode 100644 integrations/cometapi.md create mode 100644 logos/cometapi.png diff --git a/integrations/cometapi.md b/integrations/cometapi.md new file mode 100644 index 0000000..5629840 --- /dev/null +++ b/integrations/cometapi.md @@ -0,0 +1,98 @@ +--- +layout: integration +name: Comet API +description: Use the Comet API for text generation models. +authors: + - name: deepset + socials: + github: deepset-ai + twitter: deepset_ai + linkedin: https://www.linkedin.com/company/deepset-ai/ + - name: Gary Badwal + socials: + website: garybadwal.com + github: garybadwal + twitter: garybadwal_ + linkedin: https://www.linkedin.com/in/garybadwal/ +pypi: https://pypi.org/project/cometapi-haystack +repo: https://github.com/deepset-ai/haystack-core-integrations/tree/main/integrations/cometapi +type: Model Provider +report_issue: https://github.com/deepset-ai/haystack-core-integrations/issues +logo: /logos/cometapi.png +version: Haystack 2.0 +toc: true +--- + +### **Table of Contents** +- [Overview](#overview) +- [Installation](#installation) +- [Usage](#usage) +- [License](#license) + +## Overview + +`CometAPIChatGenerator` lets you call any LLMs available on [Comet API](https://cometapi.com), including: + +- OpenAI variants such as `gpt-5` +- Anthropic’s `claude-4.5-haiku` +- Community-hosted open-source models (Llama 2, Mixtral, etc.) + +For more information on models available via the Comet API API, see [the Comet API docs](https://www.cometapi.com/model/). + + +In order to follow along with this guide, you'll need a Comet API key. Add it as an environment variable, `COMET_API_KEY`. + +## Installation + +```bash +pip install cometapi-haystack +``` + +## Usage +You can use [CometAPIChatGenerator](https://docs.haystack.deepset.ai/docs/cometapichatgenerator) as standalone, within a [pipeline](https://docs.haystack.deepset.ai/docs/pipelines) or with the [Agent component](https://docs.haystack.deepset.ai/docs/agent). + +Here's an example of using it as a standalone component: + +```python +import os +from haystack.dataclasses import ChatMessage +from haystack_integrations.components.generators.cometapi import CometAPIChatGenerator + +os.environ["COMET_API_KEY"] = "YOUR_COMET_API_KEY" + +client = CometAPIChatGenerator() # defaults to gpt-4o-mini +response = client.run( + [ChatMessage.from_user("What are Agentic Pipelines? Be brief.")] +) +print(response["replies"]) + +``` +```bash +{'replies': [ChatMessage(_role=, _content=[TextContent(text='Agentic Pipelines refer to processes or frameworks that enable individuals or groups to take proactive control over their learning, decision-making, or actions in a systematic way. They emphasize agency, allowing participants to navigate pathways that reflect their interests, goals, and capabilities, often leveraging technology and resources to facilitate this empowerment. In various contexts, such as education or organizational development, Agentic Pipelines can foster greater engagement, autonomy, and outcomes.')], _name=None, _meta={'model': 'gpt-4o-mini-2024-07-18', 'index': 0, 'finish_reason': 'stop', 'usage': {'completion_tokens': 87, 'prompt_tokens': 17, 'total_tokens': 104, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}})]} +``` +`CometAPIChatGenerator` also support streaming responses if you pass a streaming callback: + +```python +import os +from haystack.dataclasses import ChatMessage +from haystack_integrations.components.generators.cometapi import CometAPIChatGenerator + +os.environ["COMET_API_KEY"] = "YOUR_COMET_API_KEY" + +def show(chunk): # simple streaming callback + print(chunk.content, end="", flush=True) + +client = CometAPIChatGenerator( + model="grok-3-mini", + streaming_callback=show, +) + +response = client.run([ChatMessage.from_user("Summarize RAG in two lines.")]) + +print(response) + +``` + +### License + +`cometapi-haystack` is distributed under the terms of the [Apache-2.0](https://spdx.org/licenses/Apache-2.0.html) license. diff --git a/logos/cometapi.png b/logos/cometapi.png new file mode 100644 index 0000000000000000000000000000000000000000..a92eb1e51c09f82ab9323672db72695c819e4ae0 GIT binary patch literal 15400 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 literal 0 HcmV?d00001 From 0e435819dad0c360c37ae732d59eff3bafc6ddb4 Mon Sep 17 00:00:00 2001 From: garybadwal Date: Wed, 22 Oct 2025 16:08:48 +0530 Subject: [PATCH 2/2] current README should be instead placed as a comet-api.md file --- integrations/{cometapi.md => comet-api.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename integrations/{cometapi.md => comet-api.md} (100%) diff --git a/integrations/cometapi.md b/integrations/comet-api.md similarity index 100% rename from integrations/cometapi.md rename to integrations/comet-api.md