Spaces:
Sleeping
Sleeping
| from __future__ import absolute_import | |
| from abc import ABC, abstractmethod | |
| from typing import List | |
| from omagent_core.engine.http.models.integration import Integration | |
| from omagent_core.engine.http.models.integration_api import IntegrationApi | |
| from omagent_core.engine.http.models.integration_api_update import \ | |
| IntegrationApiUpdate | |
| from omagent_core.engine.http.models.integration_update import \ | |
| IntegrationUpdate | |
| from omagent_core.engine.http.models.prompt_template import PromptTemplate | |
| class IntegrationClient(ABC): | |
| """Client for managing integrations with external systems. Some examples of integrations are: | |
| 1. AI/LLM providers (e.g. OpenAI, HuggingFace) | |
| 2. Vector DBs (Pinecone, Weaviate etc.) | |
| 3. Kafka | |
| 4. Relational databases | |
| Integrations are configured as integration -> api with 1->N cardinality. | |
| APIs are the underlying resources for an integration and depending on the type of integration they represent underlying resources. | |
| Examples: | |
| LLM integrations | |
| The integration specifies the name of the integration unique to your environment, api keys and endpoint used. | |
| APIs are the models (e.g. text-davinci-003, or text-embedding-ada-002) | |
| Vector DB integrations, | |
| The integration represents the cluster, specifies the name of the integration unique to your environment, api keys and endpoint used. | |
| APIs are the indexes (e.g. pinecone) or class (e.g. for weaviate) | |
| Kafka | |
| The integration represents the cluster, specifies the name of the integration unique to your environment, api keys and endpoint used. | |
| APIs are the topics that are configured for use within this kafka cluster | |
| """ | |
| def associate_prompt_with_integration( | |
| self, ai_integration: str, model_name: str, prompt_name: str | |
| ): | |
| """Associate a prompt with an AI integration and model""" | |
| pass | |
| def delete_integration_api(self, api_name: str, integration_name: str): | |
| """Delete a specific integration api for a given integration""" | |
| pass | |
| def delete_integration(self, integration_name: str): | |
| """Delete an integration""" | |
| pass | |
| def get_integration_api( | |
| self, api_name: str, integration_name: str | |
| ) -> IntegrationApi: | |
| pass | |
| def get_integration_apis(self, integration_name: str) -> List[IntegrationApi]: | |
| pass | |
| def get_integration(self, integration_name: str) -> Integration: | |
| pass | |
| def get_integrations(self) -> List[Integration]: | |
| """Returns the list of all the available integrations""" | |
| pass | |
| def get_prompts_with_integration( | |
| self, ai_integration: str, model_name: str | |
| ) -> List[PromptTemplate]: | |
| pass | |
| def get_token_usage_for_integration(self, name, integration_name) -> int: | |
| pass | |
| def get_token_usage_for_integration_provider(self, name) -> dict: | |
| pass | |
| def register_token_usage(self, body, name, integration_name): | |
| pass | |
| def save_integration_api( | |
| self, integration_name, api_name, api_details: IntegrationApiUpdate | |
| ): | |
| pass | |
| def save_integration( | |
| self, integration_name, integration_details: IntegrationUpdate | |
| ): | |
| pass | |
| # Tags | |
| def delete_tag_for_integration(self, body, tag_name, integration_name): | |
| """Delete an integration""" | |
| pass | |
| def delete_tag_for_integration_provider(self, body, name): | |
| pass | |
| def put_tag_for_integration(self, body, name, integration_name): | |
| pass | |
| def put_tag_for_integration_provider(self, body, name): | |
| pass | |
| def get_tags_for_integration(self, name, integration_name): | |
| pass | |
| def get_tags_for_integration_provider(self, name): | |
| pass | |