omni_bot / docs /swarms /models /anthropic.md
WAWAA's picture
Upload folder using huggingface_hub
4962437
# **Documentation for the `Anthropic` Class**
## **Overview and Introduction**
The `Anthropic` class provides an interface to interact with the Anthropic large language models. This class encapsulates the necessary functionality to request completions from the Anthropic API based on a provided prompt and other configurable parameters.
### **Key Concepts and Terminology**
- **Anthropic**: A large language model, akin to GPT-3 and its successors.
- **Prompt**: A piece of text that serves as the starting point for model completions.
- **Stop Sequences**: Specific tokens or sequences to indicate when the model should stop generating.
- **Tokens**: Discrete pieces of information in a text. For example, in English, a token can be as short as one character or as long as one word.
## **Class Definition**
### `Anthropic`
```python
class Anthropic:
"""Anthropic large language models."""
```
### Parameters:
- `model (str)`: The name of the model to use for completions. Default is "claude-2".
- `max_tokens_to_sample (int)`: Maximum number of tokens to generate in the output. Default is 256.
- `temperature (float, optional)`: Sampling temperature. A higher value will make the output more random, while a lower value will make it more deterministic.
- `top_k (int, optional)`: Sample from the top-k most probable next tokens. Setting this parameter can reduce randomness in the output.
- `top_p (float, optional)`: Sample from the smallest set of tokens such that their cumulative probability exceeds the specified value. Used in nucleus sampling to provide a balance between randomness and determinism.
- `streaming (bool)`: Whether to stream the output or not. Default is False.
- `default_request_timeout (int, optional)`: Default timeout in seconds for API requests. Default is 600.
### **Methods and their Functionality**
#### `_default_params(self) -> dict`
- Provides the default parameters for calling the Anthropic API.
- **Returns**: A dictionary containing the default parameters.
#### `generate(self, prompt: str, stop: list[str] = None) -> str`
- Calls out to Anthropic's completion endpoint to generate text based on the given prompt.
- **Parameters**:
- `prompt (str)`: The input text to provide context for the generated text.
- `stop (list[str], optional)`: Sequences to indicate when the model should stop generating.
- **Returns**: A string containing the model's generated completion based on the prompt.
#### `__call__(self, prompt: str, stop: list[str] = None) -> str`
- An alternative to the `generate` method that allows calling the class instance directly.
- **Parameters**:
- `prompt (str)`: The input text to provide context for the generated text.
- `stop (list[str], optional)`: Sequences to indicate when the model should stop generating.
- **Returns**: A string containing the model's generated completion based on the prompt.
## **Usage Examples**
```python
# Import necessary modules and classes
from swarms.models import Anthropic
import torch
# Initialize an instance of the Anthropic class
anthropic_instance = Anthropic()
# Using the generate method
completion_1 = anthropic_instance.generate("What is the capital of France?")
print(completion_1)
# Using the __call__ method
completion_2 = anthropic_instance("How far is the moon from the earth?", stop=["miles", "km"])
print(completion_2)
```
## **Mathematical Formula**
The underlying operations of the `Anthropic` class involve probabilistic sampling based on token logits from the Anthropic model. Mathematically, the process of generating a token \( t \) from the given logits \( l \) can be described by the softmax function:
\[ P(t) = \frac{e^{l_t}}{\sum_{i} e^{l_i}} \]
Where:
- \( P(t) \) is the probability of token \( t \).
- \( l_t \) is the logit corresponding to token \( t \).
- The summation runs over all possible tokens.
The temperature, top-k, and top-p parameters are further used to modulate the probabilities.
## **Additional Information and Tips**
- Ensure you have a valid `ANTHROPIC_API_KEY` set as an environment variable or passed during class instantiation.
- Always handle exceptions that may arise from API timeouts or invalid prompts.
## **References and Resources**
- [Anthropic's official documentation](https://www.anthropic.com/docs)
- [Token-based sampling in Language Models](https://arxiv.org/abs/1904.09751) for a deeper understanding of token sampling.