dify-api-client - A package for interacting with the Dify Service-API
Project description
dify-api-client
This package is a fork of dify-client-python with custom modifications
It provides a convenient and powerful interface to interact with the Dify API, supporting both synchronous and asynchronous operations.
Main Features
- Synchronous and Asynchronous Support: The client offers both synchronous and asynchronous methods, allowing for flexible integration into various Python codebases and frameworks.
- Stream and Non-stream Support: Seamlessly work with both streaming and non-streaming endpoints of the Dify API for real-time and batch processing use cases.
- Comprehensive Endpoint Coverage: Support completion, chat, workflows, feedback, file uploads, etc., the client covers all available Dify API endpoints.
Quick Start
Sync
Here's a quick example of how you can use the DifyClient to send a chat message.
import uuid
from dify_client import DifyClient, models
# Initialize the client with your API key
client = DifyClient(
api_key="your-api-key",
api_base="http://localhost/v1",
)
user = str(uuid.uuid4())
# Create a blocking chat request
blocking_chat_req = models.ChatRequest(
query="Hi, dify-client-python!",
inputs={"city": "Beijing"},
user=user,
response_mode=models.ResponseMode.BLOCKING,
)
# Send the chat message
chat_response = client.chat_messages(blocking_chat_req, timeout=60.)
print(chat_response)
# Create a streaming chat request
streaming_chat_req = models.ChatRequest(
query="Hi, dify-client-python!",
inputs={"city": "Beijing"},
user=user,
response_mode=models.ResponseMode.STREAMING,
)
# Send the chat message
for chunk in client.chat_messages(streaming_chat_req, timeout=60.):
print(chunk)
Async
For asynchronous operations, use the AsyncDifyClient in a similar fashion:
import asyncio
import uuid
from dify_client import AsyncDifyClient, models
# Initialize the async client with your API key
async_client = AsyncDifyClient(
api_key="your-api-key",
api_base="http://localhost/v1",
)
# Define an asynchronous function to send a blocking chat message with BLOCKING ResponseMode
async def send_chat_message():
user = str(uuid.uuid4())
# Create a blocking chat request
blocking_chat_req = models.ChatRequest(
query="Hi, dify-client-python!",
inputs={"city": "Beijing"},
user=user,
response_mode=models.ResponseMode.BLOCKING,
)
chat_response = await async_client.achat_messages(blocking_chat_req, timeout=60.)
print(chat_response)
# Define an asynchronous function to send a chat message with STREAMING ResponseMode
async def send_chat_message_stream():
user = str(uuid.uuid4())
# Create a blocking chat request
streaming_chat_req = models.ChatRequest(
query="Hi, dify-client-python!",
inputs={"city": "Beijing"},
user=user,
response_mode=models.ResponseMode.STREAMING,
)
async for chunk in await async_client.achat_messages(streaming_chat_req, timeout=60.):
print(chunk)
# Run the asynchronous function
asyncio.gather(send_chat_message(), send_chat_message_stream())
Development
- Setup env
uv sync --extra dev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dify_api_client-0.0.9.tar.gz.
File metadata
- Download URL: dify_api_client-0.0.9.tar.gz
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ab61f754fb8d4719ae7313f528f3fe8782c57a1255299b7483645518c83302
|
|
| MD5 |
4a4287c510ee36abae4210e419c468fb
|
|
| BLAKE2b-256 |
667a00ea7099e32b6dff934c424b00b6fa5664fd12d34bc15bcecff6141bce3a
|
File details
Details for the file dify_api_client-0.0.9-py3-none-any.whl.
File metadata
- Download URL: dify_api_client-0.0.9-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e81a5dbbbfe687e710d71c1396cf52b0c0fc832f96acfd8ad461a86f4a2cae2
|
|
| MD5 |
d0eb6c4a7ce26f88a5931f3cfa905faf
|
|
| BLAKE2b-256 |
849ee38966e71d94c4ad86974b54634dcaf54a8af4c5eccfa25af43d7057b9f9
|