67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
from typing import TYPE_CHECKING, Optional
|
|
|
|
if TYPE_CHECKING:
|
|
from .bitbucket_prompt_manager import BitBucketPromptManager
|
|
from litellm.types.prompts.init_prompts import PromptLiteLLMParams, PromptSpec
|
|
from litellm.integrations.custom_prompt_management import CustomPromptManagement
|
|
|
|
from litellm.types.prompts.init_prompts import SupportedPromptIntegrations
|
|
|
|
from .bitbucket_prompt_manager import BitBucketPromptManager
|
|
|
|
# Global instances
|
|
global_bitbucket_config: Optional[dict] = None
|
|
|
|
|
|
def set_global_bitbucket_config(config: dict) -> None:
|
|
"""
|
|
Set the global BitBucket configuration for prompt management.
|
|
|
|
Args:
|
|
config: Dictionary containing BitBucket configuration
|
|
- workspace: BitBucket workspace name
|
|
- repository: Repository name
|
|
- access_token: BitBucket access token
|
|
- branch: Branch to fetch prompts from (default: main)
|
|
"""
|
|
import litellm
|
|
|
|
litellm.global_bitbucket_config = config # type: ignore
|
|
|
|
|
|
def prompt_initializer(
|
|
litellm_params: "PromptLiteLLMParams", prompt_spec: "PromptSpec"
|
|
) -> "CustomPromptManagement":
|
|
"""
|
|
Initialize a prompt from a BitBucket repository.
|
|
"""
|
|
bitbucket_config = getattr(litellm_params, "bitbucket_config", None)
|
|
prompt_id = getattr(litellm_params, "prompt_id", None)
|
|
|
|
if not bitbucket_config:
|
|
raise ValueError(
|
|
"bitbucket_config is required for BitBucket prompt integration"
|
|
)
|
|
|
|
try:
|
|
bitbucket_prompt_manager = BitBucketPromptManager(
|
|
bitbucket_config=bitbucket_config,
|
|
prompt_id=prompt_id,
|
|
)
|
|
|
|
return bitbucket_prompt_manager
|
|
except Exception as e:
|
|
raise e
|
|
|
|
|
|
prompt_initializer_registry = {
|
|
SupportedPromptIntegrations.BITBUCKET.value: prompt_initializer,
|
|
}
|
|
|
|
# Export public API
|
|
__all__ = [
|
|
"BitBucketPromptManager",
|
|
"set_global_bitbucket_config",
|
|
"global_bitbucket_config",
|
|
]
|