Plato SDK
Project description
Plato SDK
Usage
Install the plato-sdk library
pip install plato-sdk
Set Plato api key enviornment variable
PLATO_API_KEY=
Create an enviornment and connect to it using the cdp_url
import asyncio
import os
from plato import Plato, PlatoTask
from plato.examples.doordash_tasks import all_tasks as doordash_tasks
base_prompt = """
You are a helpful assistant that can help me buy food from doordash.
start by going to {start_url}. Do not navigate to other websites.
While you can't finish the checkout process becuase you need user permission,
you can add items to cart and see the total price. Do not end the task until you have added the necessary items to cart.
Here is the task:
{prompt}
Make sure to complete the checkout process once you've added the necessary items to cart.
The task is not complete until the order is sent and paid for.
You do not need my permission to and place an order.
"""
async def run_task(client: Plato, task: PlatoTask):
env = await client.make_environment(task.env_id, open_page_on_start=False)
await env.wait_for_ready()
await env.reset(task)
cdp_url = await env.get_cdp_url()
prompt = base_prompt.format(start_url=task.start_url, prompt=task.prompt)
# live view url to watch live
live_view_url = await env.get_live_view_url()
print(f"Live view URL: {live_view_url}")
try:
# connect agent and run
await YourAgent.run(cdp_url, prompt)
result = await env.evaluate()
print(f"Evaluation result: {result}")
except Exception as e:
print(f"Error: {e}")
finally:
await env.close()
async def main():
client = Plato(api_key=os.environ.get("PLATO_API_KEY"))
for task in doordash_tasks:
await run_task(client, task)
if __name__ == "__main__":
asyncio.run(main())
State mutations
State mutations returns the diffs of all modified fields
# add item to cart
...
state_mutations: dict = env.get_state()
This returns a JSON object like this:
{
"success": true,
"state": {
"added": {},
"removed": {},
"modified": {
"detailed_carts": {
"old": [],
"new": [
{
"id": "5b227ce7-d0e9-47af-93c4-d8acfc5134d3",
"hasError": null,
"isConsumerPickup": false,
"isConvenienceCart": false,
"isPrescriptionDelivery": false,
"prescriptionStoreInfo": null,
"isMerchantShipping": false,
"offersDelivery": true,
"offersPickup": true,
"subtotal": 1499,
"urlCode": null,
"groupCart": false,
"groupCartType": null,
"groupCartPollInterval": null,
"isCatering": false,
"isSameStoreCatering": null,
"isBundle": false,
"bundleType": null,
"fulfillmentType": null,
"originalBundleOrderCartId": null,
"cartStatusType": null,
"cateringInfo": null,
"shortenedUrl": null,
"maxIndividualCost": null,
"serviceRateMessage": null,
"isOutsideDeliveryRegion": null,
"currencyCode": null,
"asapMinutesRange": null,
"orderTimeAvailability": null,
"menu": {
"id": "20016546",
"hoursToOrderInAdvance": null,
"name": null,
"minOrderSize": null,
"isCatering": false,
"typename": "Menu"
},
"creator": {
"id": "56349731",
"firstName": "Rob",
"lastName": "Farlow",
"localizedNames": {
"informalName": "Rob",
"formalName": "Rob Farlow",
"formalNameAbbreviated": "Rob F",
"typename": "LocalizedNames"
},
"typename": "OrderCartCreator"
},
"deliveries": null,
"submittedAt": null,
"restaurant": {
"id": "24770143",
"name": "Popstar shawarma",
"maxOrderSize": 0,
"coverImgUrl": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/restaurant/cover/12699cb8-d1bf-469e-8c5b-4da529838942.jpg",
"businessHeaderImgUrl": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/store/header/3eed46fc-3637-47fa-9378-e5848e125798.jpg",
"coverSquareImgUrl": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/restaurant/cover_square/f8e23996-e307-42b7-859e-3e96b954d8a7.PNG",
"squareCoverImgUrl": null,
"slug": null,
"address": {
"printableAddress": null,
"street": "91 6th Street",
"lat": 37.781284,
"lng": -122.40871,
"city": "San Francisco",
"state": "CA",
"postalCode": null,
"country": null,
"displayAddress": "91 6th St, San Francisco, CA 94103, USA",
"typename": "Address"
},
"business": {
"id": "11490330",
"name": "Popstar shawarma",
"typename": "Business"
},
"orderProtocol": null,
"idealGroupSize": null,
"highQualitySubtotalThreshold": null,
"shouldShowStoreLogo": null,
"isConsumerSubscriptionEligible": null,
"bulkSubstitutionPreference": null,
"merchantPromotions": null,
"requiresCheckIn": null,
"offersPackageReturns": false,
"snapMerchantId": null,
"typename": "Restaurant"
},
"storeDisclaimers": [],
"orders": [
{
"id": "62df4926-0c9e-4111-a60e-9cb0ccf8b69f",
"consumer": {
"id": "56349731",
"firstName": "Rob",
"lastName": "Farlow",
"localizedNames": {
"informalName": "Rob",
"formalName": "Rob Farlow",
"formalNameAbbreviated": "Rob F",
"typename": "LocalizedNames"
},
"typename": "OrderConsumer"
},
"isSubCartFinalized": false,
"orderItems": [
{
"id": "395040ed-40fc-47d7-9076-77141afd26a8",
"options": [],
"cartItemStatusType": "CART_ITEM_STATUS_TYPE_UNSPECIFIED",
"nestedOptions": "[]",
"specialInstructions": "",
"substitutionPreference": "substitute",
"quantity": 1,
"singlePrice": null,
"priceOfTotalQuantity": 1499,
"priceDisplayString": "$14.99",
"nonDiscountPriceDisplayString": null,
"continuousQuantity": null,
"unit": "ea",
"purchaseType": "PURCHASE_TYPE_UNIT",
"estimatedPricingDescription": "",
"increment": null,
"discounts": null,
"item": {
"id": "7559717819",
"imageUrl": "https://img.cdn4dd.com/cdn-cgi/image/fit=contain,width=1200,height=672,format=auto/https://doordash-static.s3.amazonaws.com/media/photosV2/895bfa37-0194-46f5-97ad-88edc728e5e8-retina-large.jpg",
"name": "1. Chicken Sarookh Wrap",
"price": 1499,
"minAgeRequirement": 0,
"restrictionInfo": null,
"category": {
"title": "",
"typename": "OrderCartItemCategory"
},
"extras": null,
"itemTagsList": [],
"typename": "OrderCartItem"
},
"bundleStore": null,
"giftInfo": null,
"badges": null,
"nudgeList": null,
"promoNudgeList": null,
"restrictionInfo": null,
"isRoutineReorderEligible": false,
"itemLevelDiscountMonetaryFields": {
"currency": null,
"displayString": null,
"decimalPlaces": null,
"unitAmount": null,
"__typename": "AmountMonetaryFields"
},
"typename": "OrderItem"
}
],
"paymentCard": null,
"paymentLineItems": null,
"isOrderRoutineReorderEligible": false,
"typename": "Order"
}
],
"selectedDeliveryOption": null,
"teamAccount": null,
"total": 1918,
"totalBeforeDiscountsAndCredits": 1499,
"footerDetails": null,
"orderQualityInfo": null,
"discountBannerDetails": [],
"shouldApplyCredits": true,
"invalidItems": null,
"domain": null,
"containsAlcohol": false,
"foodAlcoholConstraintCartLevel": null,
"commissionMessage": null,
"scheduledDeliveryAvailable": false,
"enableNewScheduleAheadUi": false,
"deliveryOptionsUiConfig": null,
"preselectedOptionUpdate": null,
"isDigitalWalletAllowed": false,
"isPreTippable": true,
"hideSalesTax": false,
"paymentProtocol": null,
"merchantShippingDayRangeString": null,
"merchantShippingDetails": null,
"totalCreditsAvailable": null,
"creditsApplicableBeforeTip": false,
"creditsApplicableBeforeTipDetails": null,
"showAccessibilityCompliance": false,
"totalSavings": null,
"taxAmount": null,
"tipAmount": null,
"merchantTipAmount": null,
"tipPercentageArgument": null,
"dasherFee": null,
"overauthTotal": null,
"legislativeFeeDetails": [],
"deliveryFee": null,
"deliveryFeeDetails": null,
"appliedServiceFee": null,
"minOrderFee": null,
"minOrderSubtotal": null,
"adsVertical": null,
"asapTimeRange": null,
"asapPickupTimeRange": null,
"asapNumMinutesUntilClose": null,
"asapPickupNumMinutesUntilClose": null,
"extraSosDeliveryFee": null,
"fulfillsOwnDeliveries": false,
"asapDeliveryOverrideTitle": null,
"asapDeliveryAvailable": true,
"asapPickupAvailable": true,
"scheduledDeliveryOptionQuoteMessage": null,
"bundleDetails": null,
"deliveryOptions": [],
"minAgeRequirement": null,
"selfDeliveryType": null,
"serviceRateDetails": null,
"providesExternalCourierTracking": false,
"routineReorderTimeSlots": [],
"routineReorderWeekIntervals": [],
"supplementalPaymentEligibleAmountsList": [],
"supplementalAuthorizedPaymentDetailsList": [],
"menuOptions": [],
"storeOrderCarts": [],
"consumerPromotion": null,
"allConsumerPromotion": null,
"discountDetails": null,
"expenseOrderOptions": null,
"companyPaymentInfo": null,
"paymentProfileType": null,
"creditsBackDetails": null,
"isDashpassApplied": false,
"pricingQuoteId": null,
"ageRestrictedIdVerificationInfo": null,
"signatureRequired": false,
"messagesAndBanners": null,
"appliedMxLoyaltyRewards": null,
"lineItemTooltipData": [],
"eligibleSubscription": null,
"recurringDeliveryDetails": null,
"loyaltyPointsSummary": null,
"differentialPricingDetails": null,
"applicableMxLoyaltyRewards": null,
"applicableExternalGiftCardDetails": null,
"asapDeliveryOverrideSubtitle": null,
"typename": "OrderCart"
}
]
}
}
}
}
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 Distributions
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 plato_sdk-1.1.7.tar.gz.
File metadata
- Download URL: plato_sdk-1.1.7.tar.gz
- Upload date:
- Size: 13.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cdda58d4f77ba2658cd49f7577910ce1c3dfc25d0949c85a614805bbf60ad3b
|
|
| MD5 |
5b5320151075cdb1c4872890338cb16c
|
|
| BLAKE2b-256 |
1f7c41cb0267fc886ca958bdf998ae1915ce478abe75e9c05db39c9ca8cbe36d
|
File details
Details for the file plato_sdk-1.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 13.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6ea495f7c0cac4e8d9e01ca17c27ca751bf628f31e86f8d23892dde4b4c25dc
|
|
| MD5 |
3be94aea5f39317df72ae2c6292f4284
|
|
| BLAKE2b-256 |
e74d75e237dddbd8c9f28b9d692f65af5096372ccdf3dfd745c48d668a5db3e0
|
File details
Details for the file plato_sdk-1.1.7-cp312-cp312-macosx_15_0_universal2.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp312-cp312-macosx_15_0_universal2.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.12, macOS 15.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21840bae286cce7e221f64c5c8b9fb0f83502e6126f8ad7f53b3be96b7f4988d
|
|
| MD5 |
5bd088c7e98a272a4a72c99ac5b689c6
|
|
| BLAKE2b-256 |
975310b9850509b11d0178cbc61d682453baf1deeff09741d39adbc35342d1ed
|
File details
Details for the file plato_sdk-1.1.7-cp312-cp312-macosx_15_0_arm64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp312-cp312-macosx_15_0_arm64.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.12, macOS 15.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56fa6d05f081f1ac0ff51a161557aea0b71a2ff884d8ef97a6bce22b42db9340
|
|
| MD5 |
704fe6ee6ba02d157ce59177438f6816
|
|
| BLAKE2b-256 |
ef6ab570d91325735da238c7db1af46272f8f78efa1a5c39de4cab828df08bd6
|
File details
Details for the file plato_sdk-1.1.7-cp312-cp312-macosx_13_0_x86_64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp312-cp312-macosx_13_0_x86_64.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.12, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fccefeafaa415fa0807d555a256169ce5c6af295ec9c3a848a43b81b9bb0ac6
|
|
| MD5 |
20b7293829365d443fd5711d0caeaf51
|
|
| BLAKE2b-256 |
42f07cfcc76e6c06d5f926ad603b6ece32c6b43458934166031a1ee7c13573c5
|
File details
Details for the file plato_sdk-1.1.7-cp312-cp312-macosx_13_0_universal2.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp312-cp312-macosx_13_0_universal2.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.12, macOS 13.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a3b4ea6e70b6b0d0dc9a7e4a376b02f77e462234200d86b93fe7265d9d6528f
|
|
| MD5 |
7410102aab4fad8301f275c36cce75fa
|
|
| BLAKE2b-256 |
4f57ec23fc0826c1806d647b83ea4f65601efbf3f2fbb7a27813f21ac3ab635a
|
File details
Details for the file plato_sdk-1.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 13.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d3ed659d27ba75f0c12d57cd60539b65143b4002acf4eca8d5b50311e66dfbd
|
|
| MD5 |
8059248db948bb0bcd26ebb961163274
|
|
| BLAKE2b-256 |
b7c761984778cfeafaaeafc3775fdfe7e064cfd7558cfa7b3245236ada21fb19
|
File details
Details for the file plato_sdk-1.1.7-cp311-cp311-macosx_15_0_universal2.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp311-cp311-macosx_15_0_universal2.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.11, macOS 15.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43e3a388d97b150c50e709d50c9fad6a4c1294998d660561ab935f13f5494f08
|
|
| MD5 |
74c37753f80cfd6803a3341b5cbec14d
|
|
| BLAKE2b-256 |
b0eecbbc8c904ff8b292bc6bef0c9a0ef119588c4bdb3a519cadf99ab86b0670
|
File details
Details for the file plato_sdk-1.1.7-cp311-cp311-macosx_13_0_universal2.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp311-cp311-macosx_13_0_universal2.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.11, macOS 13.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08d129a2198b2a05fbb17e897f9b78c0774606a534c00c4e1bb987c231dacfdb
|
|
| MD5 |
a18803e1e91efdccb47c6c6c39fa5d8a
|
|
| BLAKE2b-256 |
e800e10aa2b73cc71f2d5c9251b634cc1f7bd21dfa22c6ec513b2beee0749563
|
File details
Details for the file plato_sdk-1.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 13.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0e49497023aa31222e4dfa0ea92689069739cb88f5e27cd188332acd2221e2a9
|
|
| MD5 |
5cda1b4fbb0ba16a1362f8f78cb269f1
|
|
| BLAKE2b-256 |
3f958746a7094a6d9d932dab00ad7ded72be61a124f8e5c992f89d2d62a424d2
|
File details
Details for the file plato_sdk-1.1.7-cp310-cp310-macosx_15_0_universal2.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp310-cp310-macosx_15_0_universal2.whl
- Upload date:
- Size: 10.1 MB
- Tags: CPython 3.10, macOS 15.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
887a519e658eb0d4033f532292495f27b909e57aaf62089e501cbc636a0e9ebc
|
|
| MD5 |
ca36037255a753b07aba3ad1cda78685
|
|
| BLAKE2b-256 |
27545c981f06703879f1a30fc633acf539dee93a71e7b68f5aef1127c69a6d9f
|
File details
Details for the file plato_sdk-1.1.7-cp310-cp310-macosx_13_0_x86_64.whl.
File metadata
- Download URL: plato_sdk-1.1.7-cp310-cp310-macosx_13_0_x86_64.whl
- Upload date:
- Size: 10.7 MB
- Tags: CPython 3.10, macOS 13.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fbb5be46cdccf30478758ec85c7701776206d11d26f720acbcda5e0904ac6f6
|
|
| MD5 |
292b1d5767f9c0789bb93007d396700b
|
|
| BLAKE2b-256 |
a6a8cc0676ae0d1bd7ec10e8867a8856efdeab3fe69556c38e5f20131efbb140
|