-
Notifications
You must be signed in to change notification settings - Fork 8
Async support #6
Copy link
Copy link
Open
Description
Hey there, thanks for the neat library.
Do you have any plan to support native async features of Python for the client?
e.g. something in the lines of:
import asyncio
import random
from recombee_api_client.api_client import AsyncRecombeeClient, Region
from recombee_api_client.exceptions import APIException
from recombee_api_client.api_requests import *
async def main():
client = AsyncRecombeeClient('--my-database-id--', '--db-private-token--', region=Region.US_WEST)
#Generate some random purchases of items by users
PROBABILITY_PURCHASED = 0.1
NUM = 100
purchase_requests = []
for user_id in ["user-%s" % i for i in range(NUM) ]:
for item_id in ["item-%s" % i for i in range(NUM) ]:
if random.random() < PROBABILITY_PURCHASED:
request = AddPurchase(user_id, item_id, cascade_create=True)
purchase_requests.append(request)
try:
# Send the data to Recombee, use Batch for faster processing of larger data
print('Send purchases')
await client.send(Batch(purchase_requests))
# Get recommendations for user 'user-25'
response = await client.send(RecommendItemsToUser('user-25', 5))
print("Recommended items: %s" % response)
# User scrolled down - get next 3 recommended items
response = await client.send(RecommendNextItems(response['recommId'], 3))
print("Next recommended items: %s" % response)
except APIException as e:
print(e)
asyncio.run(main())Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels