add documents
This commit is contained in:
126
docs/getting_started/authentication.md
Normal file
126
docs/getting_started/authentication.md
Normal file
@@ -0,0 +1,126 @@
|
||||
# Authentication
|
||||
|
||||
FastGPT API uses API keys for authentication. This guide covers how to securely manage and use your API keys with the SDK.
|
||||
|
||||
## API Key Format
|
||||
|
||||
FastGPT API keys typically start with `fastgpt-`:
|
||||
|
||||
```
|
||||
fastgpt-xxxxxxxxxxxxxxxxxxxxxx
|
||||
```
|
||||
|
||||
## Setting Your API Key
|
||||
|
||||
### Method 1: Directly in Code (Not Recommended)
|
||||
|
||||
```python
|
||||
from fastgpt_client import ChatClient
|
||||
|
||||
client = ChatClient(api_key="fastgpt-xxxxx")
|
||||
```
|
||||
|
||||
!!! warning
|
||||
Never commit API keys to version control!
|
||||
|
||||
### Method 2: Environment Variables (Recommended)
|
||||
|
||||
Create a `.env` file:
|
||||
|
||||
```bash
|
||||
API_KEY=fastgpt-xxxxx
|
||||
BASE_URL=http://localhost:3000
|
||||
```
|
||||
|
||||
Use `python-dotenv` to load it:
|
||||
|
||||
```python
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from fastgpt_client import ChatClient
|
||||
|
||||
load_dotenv()
|
||||
|
||||
client = ChatClient(
|
||||
api_key=os.getenv("API_KEY"),
|
||||
base_url=os.getenv("BASE_URL")
|
||||
)
|
||||
```
|
||||
|
||||
Add `.env` to your `.gitignore`:
|
||||
|
||||
```
|
||||
.env
|
||||
```
|
||||
|
||||
### Method 3: System Environment Variables
|
||||
|
||||
Set the environment variable in your shell:
|
||||
|
||||
```bash
|
||||
# Linux/macOS
|
||||
export FASTGPT_API_KEY="fastgpt-xxxxx"
|
||||
export FASTGPT_BASE_URL="http://localhost:3000"
|
||||
|
||||
# Windows (Command Prompt)
|
||||
set FASTGPT_API_KEY=fastgpt-xxxxx
|
||||
set FASTGPT_BASE_URL=http://localhost:3000
|
||||
|
||||
# Windows (PowerShell)
|
||||
$env:FASTGPT_API_KEY="fastgpt-xxxxx"
|
||||
$env:FASTGPT_BASE_URL="http://localhost:3000"
|
||||
```
|
||||
|
||||
Then use it in Python:
|
||||
|
||||
```python
|
||||
import os
|
||||
from fastgpt_client import ChatClient
|
||||
|
||||
client = ChatClient(
|
||||
api_key=os.getenv("FASTGPT_API_KEY"),
|
||||
base_url=os.getenv("FASTGPT_BASE_URL", "http://localhost:3000")
|
||||
)
|
||||
```
|
||||
|
||||
## Base URL Configuration
|
||||
|
||||
The default base URL is `http://localhost:3000`. If you're using a different FastGPT instance:
|
||||
|
||||
```python
|
||||
client = ChatClient(
|
||||
api_key="fastgpt-xxxxx",
|
||||
base_url="https://your-fastgpt-instance.com"
|
||||
)
|
||||
```
|
||||
|
||||
## Authentication Errors
|
||||
|
||||
If authentication fails, the SDK raises an `AuthenticationError`:
|
||||
|
||||
```python
|
||||
from fastgpt_client import ChatClient
|
||||
from fastgpt_client.exceptions import AuthenticationError
|
||||
|
||||
try:
|
||||
with ChatClient(api_key="invalid-key") as client:
|
||||
response = client.create_chat_completion(
|
||||
messages=[{"role": "user", "content": "Hello"}]
|
||||
)
|
||||
except AuthenticationError as e:
|
||||
print(f"Authentication failed: {e}")
|
||||
```
|
||||
|
||||
## Security Best Practices
|
||||
|
||||
1. **Never expose API keys** in client-side code (browsers, mobile apps)
|
||||
2. **Use environment variables** to store keys
|
||||
3. **Rotate keys regularly** for production applications
|
||||
4. **Use separate keys** for different environments (dev, staging, prod)
|
||||
5. **Monitor usage** to detect unauthorized access
|
||||
6. **Commit `.env` to `.gitignore`** to prevent accidental commits
|
||||
|
||||
## Next Steps
|
||||
|
||||
- [Quick Start](quick_start.md) - Start using the SDK
|
||||
- [Error Handling](../advanced/error_handling.md) - Learn to handle errors properly
|
||||
Reference in New Issue
Block a user