panda_guard.llms package
Submodules
panda_guard.llms.base module
- class panda_guard.llms.base.BaseLLM(config: BaseLLMConfig)[source]
Bases:
ABCAbstract base class for LLM.
- Parameters:
config – Configuration object for LLM.
- property avg_tokens
Get the average number of tokens per request.
- Returns:
Average number of tokens.
- batch_generate(batch_messages: List[List[Dict[str, str]]], config: LLMGenerateConfig) List[List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]]][source]
Generate responses for a batch of messages concurrently.
- Parameters:
batch_messages – List of batches of messages.
config – Configuration for generation.
- Returns:
List of generated responses.
- abstract continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]][source]
Remove EOS token in formatted prompt. Manually add generation prompt.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response or responses with log probabilities.
- abstract evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float][source]
Abstract method for evaluating log likelihood of messages.
- Parameters:
messages – List of messages to evaluate.
config – Configuration for generation.
require_grad – Whether grad information is needed.
- Returns:
List of log likelihoods.
- abstract generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]][source]
Abstract method for generating response from LLM.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response or responses with log probabilities.
- property total_tokens
Get the total number of tokens used.
- Returns:
Total number of tokens.
- class panda_guard.llms.base.BaseLLMConfig(llm_type: str | None = None, model_name: str | None = None)[source]
Bases:
ABCBase configuration for LLM.
- Parameters:
llm_type – Type of the LLM.
model_name – Name of the model.
- llm_type: str = None
- model_name: str = None
- class panda_guard.llms.base.LLMGenerateConfig(max_n_tokens: int | None = None, temperature: float | None = None, logprobs: bool = False, seed: int | None = None, stream: bool = False)[source]
Bases:
objectConfiguration for LLM generation.
- Parameters:
max_n_tokens – Maximum number of tokens to generate.
temperature – Temperature for sampling randomness.
logprobs – Whether to return log probabilities.
seed – Seed for reproducibility.
stream – Whether to use streaming generation.
- logprobs: bool = False
- max_n_tokens: int = None
- seed: int = None
- stream: bool = False
- temperature: float = None
panda_guard.llms.claude module
- class panda_guard.llms.claude.ClaudeLLM(config: ClaudeLLMConfig)[source]
Bases:
BaseLLMClaude LLM Implementation.
- Parameters:
config – Configuration for Claude LLM.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig)[source]
Generate continuation for the last message.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
require_grad – Whether to compute gradients (not supported for API models).
- Raises:
NotImplementedError – Claude API does not support log likelihood evaluation.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) list[dict[str, str]] | Generator[str, None, None] | None[source]
Generate a response for a given input using Anthropic Claude API.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response, stream generator, or response with logprobs.
- class panda_guard.llms.claude.ClaudeLLMConfig(llm_type: str = 'ClaudeLLM', model_name: str = 'claude-3-opus-20240229', api_key: str | None = None, max_tokens_to_sample: int | None = None)[source]
Bases:
BaseLLMConfigClaude LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “ClaudeLLM”.
model_name – Name of the model.
api_key – API key for accessing Anthropic.
max_tokens_to_sample – Maximum tokens to sample, overrides max_n_tokens if provided.
- api_key: str = None
- llm_type: str = 'ClaudeLLM'
- max_tokens_to_sample: int = None
- model_name: str = 'claude-3-opus-20240229'
panda_guard.llms.gemini module
- class panda_guard.llms.gemini.GeminiLLM(config: GeminiLLMConfig)[source]
Bases:
BaseLLMGemini LLM Implementation.
- Parameters:
config – Configuration for Gemini LLM.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig)[source]
Generate continuation for the last message.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
require_grad – Whether to compute gradients (not supported for API models).
- Raises:
NotImplementedError – Gemini API does not support log likelihood evaluation.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]] | Generator[str, None, None][source]
Generate a response for a given input using Google Gemini API.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response, stream generator, or response with logprobs.
- class panda_guard.llms.gemini.GeminiLLMConfig(llm_type: str = 'GeminiLLM', model_name: str = 'gemini-1.5-pro', api_key: str | None = None, safety_settings: Dict[str, str] | None = None)[source]
Bases:
BaseLLMConfigGemini LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “GeminiLLM”.
model_name – Name of the model.
api_key – API key for accessing Google AI.
safety_settings – Custom safety settings for the model.
- api_key: str = None
- llm_type: str = 'GeminiLLM'
- model_name: str = 'gemini-1.5-pro'
- safety_settings: Dict[str, str] = None
panda_guard.llms.hf module
- class panda_guard.llms.hf.HuggingFaceLLM(config: HuggingFaceLLMConfig)[source]
Bases:
BaseLLMHugging Face Language Model Implementation.
- Parameters:
config – Configuration for Hugging Face LLM.
- batch_generate(batch_messages: List[List[Dict[str, str]]], config: LLMGenerateConfig) List[List[Dict[str, str]]][source]
Generate responses for a batch of messages in a single call.
- Parameters:
batch_messages – List of batches of messages.
config – Configuration for LLM generation.
- Returns:
List of generated responses for each batch.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig)[source]
Remove EOS token in formatted prompt. Manually add generation prompt.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response or responses with log probabilities.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float] | List[Tensor][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
require_grad – Whether to compute gradients (not supported for API models).
- Returns:
List of log likelihood values.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]] | Generator[str, None, None][source]
Generate a response for a given input using Hugging Face model.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response, stream generator, or response with logprobs.
- class panda_guard.llms.hf.HuggingFaceLLMConfig(llm_type: str = 'HuggingFaceLLM', model_name: [<class 'str'>, typing.Any] = None, device_map: str = 'auto')[source]
Bases:
BaseLLMConfigHugging Face LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “HuggingFaceLLM”.
model_name – Name of the model or model instance.
device_map – Device mapping for model deployment.
- device_map: str = 'auto'
- llm_type: str = 'HuggingFaceLLM'
- model_name: [<class 'str'>, typing.Any] = None
panda_guard.llms.oai module
- class panda_guard.llms.oai.OpenAiChatLLM(config: OpenAiLLMConfig)[source]
Bases:
BaseLLMOpenAI Chat LLM Implementation.
- Parameters:
config – Configuration for OpenAI Chat LLM.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig)[source]
Remove EOS token in formatted prompt. Manually add generation prompt.
- Parameters:
messages – List of messages for input.
config – Configuration for LLM generation.
- Raises:
NotImplementedError – OpenAiChatLLM does not support continual generation.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[float][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
- Raises:
NotImplementedError – OpenAI Chat does not support log likelihood evaluation.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) list[dict[str, str]] | tuple[list[dict[str, str]], list[Any]] | Generator[str, None, None] | None[source]
Generate a response for a given input using OpenAI Chat API.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response or response with logprobs or stream generator.
- class panda_guard.llms.oai.OpenAiChatLLMConfig(llm_type: str = 'OpenAiChatLLM', model_name: str | None = None, base_url: str | None = None, api_key: str = 'KEY HERE')[source]
Bases:
BaseLLMConfigOpenAI Chat LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “OpenAiChatLLM”.
model_name – Name of the model.
base_url – Base URL for the OpenAI API.
api_key – API key for accessing OpenAI.
- api_key: str = 'KEY HERE'
- base_url: str = None
- llm_type: str = 'OpenAiChatLLM'
- model_name: str = None
- class panda_guard.llms.oai.OpenAiLLM(config: OpenAiLLMConfig)[source]
Bases:
BaseLLMOpenAI LLM Implementation.
- Parameters:
config – Configuration for OpenAI LLM.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig)[source]
Remove EOS token in formatted prompt. Manually add generation prompt.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response or responses with log probabilities.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
- Returns:
List of log likelihood values.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) list[dict[str, str]] | tuple[list[dict[str, str]], list[float] | None] | Generator[str, Any, None] | None[source]
Generate a response for a given input using OpenAI API.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response or response with logprobs or stream generator.
- class panda_guard.llms.oai.OpenAiLLMConfig(llm_type: str = 'OpenAiLLM', model_name: str | None = None, base_url: str | None = None, api_key: str = 'KEY HERE')[source]
Bases:
BaseLLMConfigOpenAI LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “OpenAiLLM”.
model_name – Name of the model.
base_url – Base URL for the OpenAI API.
api_key – API key for accessing OpenAI.
- api_key: str = 'KEY HERE'
- base_url: str = None
- llm_type: str = 'OpenAiLLM'
- model_name: str = None
panda_guard.llms.ollama_llm module
panda_guard.llms.sglang_llm module
panda_guard.llms.vllm_llm module
- class panda_guard.llms.vllm_llm.VLLMLLM(config: VLLMLLMConfig)[source]
Bases:
BaseLLMVLLM LLM Implementation for high-performance inference.
- Parameters:
config – Configuration for VLLM LLM.
- batch_generate(batch_messages: List[List[Dict[str, str]]], config: LLMGenerateConfig) List[List[Dict[str, str]]][source]
Generate responses for a batch of messages in one go using VLLM’s batching capabilities.
- Parameters:
batch_messages – List of batches of messages.
config – Configuration for LLM generation.
- Returns:
List of generated responses for each batch.
- continual_generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]][source]
Generate continuation for the existing conversation.
- Parameters:
messages – List of messages for input.
config – Configuration for generation.
- Returns:
Generated response or responses with log probabilities.
- evaluate_log_likelihood(messages: List[Dict[str, str]], config: LLMGenerateConfig, require_grad=False) List[float][source]
Evaluate the log likelihood of the given messages.
- Parameters:
messages – List of messages for evaluation.
config – Configuration for LLM generation.
require_grad – Whether grad information is needed (not supported in VLLM)
- Returns:
List of log likelihood values.
- generate(messages: List[Dict[str, str]], config: LLMGenerateConfig) List[Dict[str, str]] | Tuple[List[Dict[str, str]], List[float]] | Generator[str, None, None][source]
Generate a response using VLLM.
- Parameters:
messages – List of input messages.
config – Configuration for LLM generation.
- Returns:
Generated response, stream generator, or response with logprobs.
- class panda_guard.llms.vllm_llm.VLLMLLMConfig(llm_type: str = 'VLLM', model_name: str | None = None, tensor_parallel_size: int = 1, gpu_memory_utilization: float = 0.9, max_model_len: int | None = None, quantization: str | None = None, trust_remote_code: bool = True)[source]
Bases:
BaseLLMConfigVLLM LLM Configuration.
- Parameters:
llm_type – Type of LLM, default is “VLLMLLM”.
model_name – Name or path of the model.
tensor_parallel_size – Number of GPUs to use for tensor parallelism.
gpu_memory_utilization – Fraction of GPU memory to use.
max_model_len – Maximum sequence length.
quantization – Quantization method to use.
trust_remote_code – Whether to trust remote code.
- gpu_memory_utilization: float = 0.9
- llm_type: str = 'VLLM'
- max_model_len: int | None = None
- model_name: str = None
- quantization: str | None = None
- tensor_parallel_size: int = 1
- trust_remote_code: bool = True
Module contents
- panda_guard.llms.create_llm(config: BaseLLMConfig) BaseLLM[source]