> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Completions

> Chat and text completions using PraisonAI capabilities

## Overview

The completions capability provides access to chat and text completion APIs through LiteLLM, supporting multiple providers.

## Python Usage

### Chat Completion

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonai.capabilities import chat_completion

result = chat_completion(
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is 2 + 2?"}
    ],
    model="gpt-4o-mini",
    max_tokens=100
)

print(result.content)  # "4"
print(result.model)    # "gpt-4o-mini-2024-07-18"
print(result.usage)    # {'prompt_tokens': 30, 'completion_tokens': 2, ...}
```

### Text Completion (Legacy)

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonai.capabilities import text_completion

result = text_completion(
    prompt="The capital of France is",
    model="gpt-3.5-turbo-instruct",
    max_tokens=10
)

print(result.content)  # " Paris"
```

### Async Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
import asyncio
from praisonai.capabilities import achat_completion

async def main():
    result = await achat_completion(
        messages=[{"role": "user", "content": "Hello"}],
        model="gpt-4o-mini"
    )
    print(result.content)

asyncio.run(main())
```

## Parameters

| Parameter     | Type        | Default       | Description                |
| ------------- | ----------- | ------------- | -------------------------- |
| `messages`    | List\[Dict] | Required      | List of message objects    |
| `model`       | str         | "gpt-4o-mini" | Model to use               |
| `temperature` | float       | 1.0           | Sampling temperature       |
| `max_tokens`  | int         | None          | Maximum tokens to generate |
| `tools`       | List\[Dict] | None          | List of tools              |
| `timeout`     | float       | 600.0         | Request timeout in seconds |
| `api_key`     | str         | None          | API key override           |

## Result Object

The `CompletionResult` object contains:

* `id`: Response ID
* `content`: Generated text
* `role`: Message role ("assistant")
* `model`: Model used
* `finish_reason`: Why generation stopped
* `usage`: Token usage statistics
* `tool_calls`: Any tool calls made
