94 lines
2.5 KiB
Markdown
94 lines
2.5 KiB
Markdown
# AppClient
|
|
|
|
The `AppClient` provides methods for application analytics and logs.
|
|
|
|
## Initialization
|
|
|
|
```python
|
|
from fastgpt_client import AppClient
|
|
|
|
client = AppClient(
|
|
api_key="fastgpt-xxxxx",
|
|
base_url="http://localhost:3000"
|
|
)
|
|
```
|
|
|
|
## Methods
|
|
|
|
### get_app_logs_chart
|
|
|
|
Get application analytics chart data.
|
|
|
|
```python
|
|
client.get_app_logs_chart(
|
|
appId: str,
|
|
dateStart: str,
|
|
dateEnd: str,
|
|
offset: int = 1,
|
|
source: list[str] | None = None,
|
|
userTimespan: str = "day",
|
|
chatTimespan: str = "day",
|
|
appTimespan: str = "day"
|
|
) -> httpx.Response
|
|
```
|
|
|
|
**Parameters:**
|
|
|
|
| Parameter | Type | Required | Description |
|
|
|-----------|------|----------|-------------|
|
|
| `appId` | `str` | Yes | Application ID |
|
|
| `dateStart` | `str` | Yes | Start date (ISO 8601 format: `YYYY-MM-DD`) |
|
|
| `dateEnd` | `str` | Yes | End date (ISO 8601 format: `YYYY-MM-DD`) |
|
|
| `offset` | `int` | No | Offset value (default: `1`) |
|
|
| `source` | `list[str]` | No | List of sources (default: `["api"]`) |
|
|
| `userTimespan` | `str` | No | User data timespan: `day`, `week`, or `month` (default: `"day"`) |
|
|
| `chatTimespan` | `str` | No | Chat data timespan: `day`, `week`, or `month` (default: `"day"`) |
|
|
| `appTimespan` | `str` | No | App data timespan: `day`, `week`, or `month` (default: `"day"`) |
|
|
|
|
**Source Options:**
|
|
|
|
- `"api"` - API interactions
|
|
- `"online"` - Online usage
|
|
- `"share"` - Shared links
|
|
- `"test"` - Test interactions
|
|
|
|
**Example:**
|
|
|
|
```python
|
|
from datetime import datetime, timedelta
|
|
|
|
with AppClient(api_key="fastgpt-xxxxx") as client:
|
|
# Get analytics for the last 7 days
|
|
end_date = datetime.now()
|
|
start_date = end_date - timedelta(days=7)
|
|
|
|
response = client.get_app_logs_chart(
|
|
appId="your-app-id",
|
|
dateStart=start_date.strftime("%Y-%m-%d"),
|
|
dateEnd=end_date.strftime("%Y-%m-%d"),
|
|
source=["api", "online"],
|
|
userTimespan="day",
|
|
chatTimespan="day",
|
|
appTimespan="day"
|
|
)
|
|
|
|
data = response.json()
|
|
|
|
# Access analytics data
|
|
print(f"Users: {data['data'].get('users', {})}")
|
|
print(f"Chats: {data['data'].get('chats', {})}")
|
|
print(f"App metrics: {data['data'].get('app', {})}")
|
|
```
|
|
|
|
**Response Structure:**
|
|
|
|
The response contains analytics data with the following possible keys:
|
|
|
|
- `users` - User engagement metrics
|
|
- `chats` - Chat interaction metrics
|
|
- `app` - Application-level metrics
|
|
- `tokens` - Token usage statistics
|
|
- `prices` - Cost information
|
|
|
|
Each metric may be organized by the specified timespan (day/week/month).
|