diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 95731b302..3269cdd1f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -9,8 +9,6 @@ body: - type: textarea id: description - validations: - required: true attributes: label: "πŸ“œ Description" description: "A clear and concise description of what the bug is." @@ -18,8 +16,6 @@ body: - type: textarea id: steps-to-reproduce - validations: - required: true attributes: label: "πŸ‘Ÿ Reproduction steps" description: "How do you trigger this bug? Please walk us through it step by step." @@ -28,67 +24,6 @@ body: 3. Scroll down to '....' 4. See error" - - type: textarea - id: expected-behavior - validations: - required: true - attributes: - label: "πŸ‘ Expected behavior" - description: "What did you think should happen?" - placeholder: "It should ..." - - - type: textarea - id: actual-behavior - validations: - required: true - attributes: - label: "πŸ‘Ž Actual Behavior with Screenshots" - description: "What did actually happen? Add screenshots, if applicable." - placeholder: "It actually ..." - - - type: dropdown - id: operating-system - attributes: - label: "πŸ’» Operating system" - description: "What OS is your app running on?" - options: - - Linux - - MacOS - - Windows - - Something else - validations: - required: true - - - type: dropdown - id: browsers - attributes: - label: What browsers are you seeing the problem on? - multiple: true - options: - - Firefox - - Chrome - - Safari - - Microsoft Edge - - Something else - - - type: textarea - id: additional-context - validations: - required: false - attributes: - label: "πŸ“ƒ Provide any additional context for the Bug." - description: "Add any other context about the problem here." - placeholder: "It actually ..." - - - type: textarea - id: logs - validations: - required: false - attributes: - label: πŸ“– Relevant log output - description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. - render: shell - - type: checkboxes id: no-duplicate-issues attributes: @@ -96,24 +31,3 @@ body: options: - label: "I checked and didn't find similar issue" required: true - - - type: dropdown - id: willing-to-submit-pr - attributes: - label: πŸ”— Are you willing to submit PR? - description: This is absolutely not required, but we are happy to guide you in the contribution process. - options: # Added options key - - "Yes, I am willing to submit a PR!" - - "No" - validations: - required: false - - - - type: checkboxes - id: terms - attributes: - label: πŸ§‘β€βš–οΈ Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/julep-ai/julep/blob/dev/.github/CODE_OF_CONDUCT.md) - options: - - label: I agree to follow this project's Code of Conduct - required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 3d1286f78..2fe63f09f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -16,24 +16,18 @@ body: placeholder: "You should add ..." - type: textarea id: pitch - validations: - required: true attributes: label: "🎀 Why is this feature needed ?" description: "Please explain why this feature should be implemented and how it would be used. Add examples, if applicable." placeholder: "In my use-case, ..." - type: textarea id: solution - validations: - required: true attributes: label: "✌️ How do you aim to achieve this?" description: "A clear and concise description of what you want to happen." placeholder: "I want this feature to, ..." - type: textarea id: alternative - validations: - required: false attributes: label: "πŸ”„οΈ Additional Information" description: "A clear and concise description of any alternative solutions or additional solutions you've considered." @@ -52,11 +46,3 @@ body: description: This is absolutely not required, but we are happy to guide you in the contribution process. options: - "Yes I am willing to submit a PR!" - - type: checkboxes - id: terms - attributes: - label: πŸ§‘β€βš–οΈ Code of Conduct - description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/julep-ai/julep/blob/dev/.github/CODE_OF_CONDUCT.md) - options: - - label: I agree to follow this project's Code of Conduct - required: true \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 80bdebaed..09e92556d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,155 @@ + +# [v1.0.0](https://github.com/julep-ai/julep/releases/tag/v1.0.0) - 13 Oct 2024 + +## What's Changed +* feat(agents-api): Add cozo migrations for tasks schema by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/349 +* feat(agents-api): updated openapi schema for tasks spec by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/350 +* Update README.md by [@ijindal1](https://github.com/ijindal1) in https://github.com/julep-ai/julep/pull/384 +* Update README.md by [@ijindal1](https://github.com/ijindal1) in https://github.com/julep-ai/julep/pull/385 +* feat(agents-api): cozo queries for tasks by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/352 +* fix(sdks/ts): Fixed bugs, updated sdk by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/390 +* feat(agents-api): Toy implementation of Tasks by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/391 +* feat(agents-api): Adaptive context (via recursive summarization) by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/306 +* chore(deps-dev): bump braces from 3.0.2 to 3.0.3 in /sdks/ts in the npm_and_yarn group across 1 directory by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/394 +* v/0.3.9 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/395 +* feat(tasks): Enable all fields of ExecutionInput by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/396 +* feat(tasks): Update execution transition relation by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/397 +* fix: Handle prompt too big error by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/401 +* feat(sdks/ts): Add adaptive context options to the SDK by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/404 +* feat(sdks/ts): Add runtime validations for TS SDK by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/425 +* refactor(agents-api): Rework routers to split routes into individual files by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/422 +* support for `Hermes-2-Theta-Llama-3-8B` as default OSS model by [@alt-glitch](https://github.com/alt-glitch) in https://github.com/julep-ai/julep/pull/424 +* fix: Add exception handler for litellm API error by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/432 +* fix(openapi): Fix mistakes in openapi.yaml file by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/434 +* fix: Apply various small fixes to task execution logic by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/436 +* Codegen for all new typespec types by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/435 +* feat(agents-api): New chat context query and model by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/437 +* feat(agents-api): Add get_transition query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/438 +* chore: Disable all the routes except of tasks and agents by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/439 +* fix(agents-api): Fix execution input query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/440 +* f/wait for input step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/441 +* feat(agents-api): Implement doc* models by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/442 +* Reimplement tests for queries and operations by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/443 +* feat(agents-api): Hybrid docs search by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/444 +* feat(agents-api): Add temporal workflow lookup relation and queries by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/446 +* feat: new routes for docs, users, search by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/445 +* feat(agents-api): Add litellm proxy to docker compose by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/448 +* fix(agents-api): Fixed tests for models and queries by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/449 +* creatorrr/f add missing tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/450 +* feat(agents-api): Add route tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/451 +* Add tests for docs routes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/452 +* feat(agents-api): Preliminary implementation of session.chat by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/453 +* feat(agents-api): Make chat route tests pass by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/454 +* feat(agents-api): Add some workflow tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/456 +* fix(agents-api): Minor fix to tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/457 +* f/task tests by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/458 +* feat(agents-api): ALL TESTS PASS!! :D by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/459 +* feat: Add test for evaluate step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/460 +* fix(agents-api): Fix typespec for foreach step and regenerate by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/461 +* fix(agents-api): Fix the typespec bug and regenerate by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/462 +* x/fix codec by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/463 +* feat(agents-api): Add YAML support by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/464 +* refactor(agents-api): Minor refactors to typespec types by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/465 +* fix(agents-api): Fix map reduce step and activity by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/466 +* fix(agents-api): Make the sample work by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/467 +* Dev tasks by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/447 +* fix: Build cozo-bin docker image directly from cozo repo by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/469 +* feat(memory-store): Add backup cronjob by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/470 +* fix: Fix deployment docker compose and move temporal into separate service by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/471 +* fix(agents-api): Fix prompt step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/472 +* fix(agents-api): Fix task execution logic by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/473 +* Fix create agent tool by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/474 +* fix(agents-api): Fix bug in task-execution workflow and uuid-int-list-to-str fn by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/476 +* fix(agents-api): Fix prompt render, codec and task execution by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/478 +* fix(agents-api): Fix more render issues, execution logic by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/479 +* x/fix task execution by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/482 +* text-embeddings-inference-cpu temp fix for Apple Silicon CPUs by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/480 +* fix(agents-api): Fix task execution logical errors by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/483 +* feat(agents-api): Transitions stream SSE endpoint by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/485 +* feat(agents-api): Set/get steps based on workflow state by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/484 +* Scrum 22 [FIX] agents api list agent tools is returning an empty list by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/487 +* fix(agents-api,typespec): Fix chat/entry typespec models to include tool_calls by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/489 +* fix: Change log-step to a jinja template rather than a simpleeval expression by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/488 +* feat(agents-api): Add parallelism option to map-reduce step by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/490 +* fix: Fix import by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/494 +* misc fixes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/495 +* build(deps): Bump the npm_and_yarn group across 2 directories with 2 updates by [@dependabot](https://github.com/dependabot) in https://github.com/julep-ai/julep/pull/493 +* hotfix: Apply a temp hotfix for sessions.chat by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/497 +* hotfix(agents-api): Fix session.situation not being rendered by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/499 +* feat: Add agent tools to completion data before sending to litellm in prompt by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/498 +* dev -> main by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/502 +* fix(agents-api): fix create_agent and create_or_update_agent query by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/503 +* fix(llm-proxy): Update docker image to main-v1.46.2 by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/504 +* Add custom api key support to chat endpoint by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/507 +* fix(agents-api): Fix doc recall using search by text by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/506 +* docs: update api.md by [@eltociear](https://github.com/eltociear) in https://github.com/julep-ai/julep/pull/508 +* fix: Get PostgreSQL settings via env vars by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/509 +* main <- dev by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/511 +* Vertex AI client by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/510 +* fix: Retry worker on runtime errors by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/512 +* dev -> main by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/514 +* dev -> main by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/515 +* fix: Fix version in bandit-security-check-python-agents-api.yml by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/539 +* feat(integrations-service): Add new integrations & refactor integrations service by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/540 +* fix(agents-api): Fix updating task execution by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/542 +* fix(agents-api): Fix JobStatus name in get job endpoint by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/544 +* feat: Added temporal codec server route & cookbooks. Updated the CONTRIBUTING.md file by [@Vedantsahai18](https://github.com/Vedantsahai18) in https://github.com/julep-ai/julep/pull/543 +* F/codec: Added Readme for cookbooks and updated the Colab links by [@Vedantsahai18](https://github.com/Vedantsahai18) in https://github.com/julep-ai/julep/pull/550 +* feat(agents-api): Add static checking for Jinja templates & Python expressions in task creation | Add validation for subworkflows by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/570 +* doc: Add code reading instructions to CONTRIBUTING.md by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/556 +* fix(agents-api): Switch to monkeypatching because everything is shit by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/573 +* feat(agents-api): Add embeddings to doc get/list response by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/578 +* Enhanced the error messages by [@VivekGuruduttK28](https://github.com/VivekGuruduttK28) in https://github.com/julep-ai/julep/pull/575 +* fix(agents-api): Remove unnecessary 'type' property from tool type definition by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/574 +* Enhanced error message in create, delete agent by [@JeevaRamanathan](https://github.com/JeevaRamanathan) in https://github.com/julep-ai/julep/pull/572 +* feat(agents-api): Naive speed improvement to cozo queries by adding limit=1 to all relevant queries by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/580 +* Improve docstrings + minor code refactor by [@lhy-hoyin](https://github.com/lhy-hoyin) in https://github.com/julep-ai/julep/pull/545 +* feat: Add API call tool type by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/571 +* feat(typespec,agents-api): Add system tool call types by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/585 +* fix(typespec,agents-api): Update metadata_filter to have object type by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/586 +* feat(agents-api): Add retry policies to temporal workflows/activities by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/551 +* docs: add Japanese README by [@eltociear](https://github.com/eltociear) in https://github.com/julep-ai/julep/pull/598 +* doc: Update README according to feedback, add TOC and collapse devfest callout by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/599 +* feat: Email provider integration tool by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/602 +* fix: Add developer_id constraints in all queries when possible by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/603 +* feat(agents-api): Add doc search system tool by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/604 +* Enhanced error messages in models/user by [@JeevaRamanathan](https://github.com/JeevaRamanathan) in https://github.com/julep-ai/julep/pull/583 +* Docs(README): Fix mistakes in README by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/613 +* feat(memory-store): Make `cozo_data` volume external by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/616 +* Modified the import to use openai and set the API key using openai.api_key by [@Shuvo31](https://github.com/Shuvo31) in https://github.com/julep-ai/julep/pull/611 +* Feat(agents-api): Replace Retry Policies with Temporal Interceptors & Add more non-retryable errors by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/612 +* doc: soft-link docs/README.md to README by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/619 +* feat(agents-api): Add some LiteLLM exceptions to the list of non-retryable errors by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/622 +* feat(agents-api): Add `wait_for_input` step to the acceptable steps inside `foreach` step by [@HamadaSalhab](https://github.com/HamadaSalhab) in https://github.com/julep-ai/julep/pull/625 +* Misc fixes by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/627 +* doc: Add cookbooks and ideas for what to build with julep by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/592 +* Fix: 404 - page not found [#631](https://github.com/julep-ai/julep/issues/631) by [@bilalmirza74](https://github.com/bilalmirza74) in https://github.com/julep-ai/julep/pull/632 +* feat: Add prometheus and grafana support by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/523 +* fix: Exclude unset fields from agent's default settings by [@whiterabbit1983](https://github.com/whiterabbit1983) in https://github.com/julep-ai/julep/pull/628 +* feat: Create a new blob-store service for handling large temporal payloads by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/642 +* Automate README translations by [@itsamziii](https://github.com/itsamziii) in https://github.com/julep-ai/julep/pull/624 +* feat: add issue template form by [@utsavdotdev](https://github.com/utsavdotdev) in https://github.com/julep-ai/julep/pull/634 +* fix(typespec): Misc fixes in typespec definitions by [@creatorrr](https://github.com/creatorrr) in https://github.com/julep-ai/julep/pull/638 +* Allow to Add a Move to Top button to enhance the ease of navigation for README readers. by [@sudhanshu-77](https://github.com/sudhanshu-77) in https://github.com/julep-ai/julep/pull/636 + +## New Contributors +* [@ijindal1](https://github.com/ijindal1) made their first contribution in https://github.com/julep-ai/julep/pull/384 +* [@eltociear](https://github.com/eltociear) made their first contribution in https://github.com/julep-ai/julep/pull/508 +* [@Vedantsahai18](https://github.com/Vedantsahai18) made their first contribution in https://github.com/julep-ai/julep/pull/543 +* [@VivekGuruduttK28](https://github.com/VivekGuruduttK28) made their first contribution in https://github.com/julep-ai/julep/pull/575 +* [@JeevaRamanathan](https://github.com/JeevaRamanathan) made their first contribution in https://github.com/julep-ai/julep/pull/572 +* [@lhy-hoyin](https://github.com/lhy-hoyin) made their first contribution in https://github.com/julep-ai/julep/pull/545 +* [@Shuvo31](https://github.com/Shuvo31) made their first contribution in https://github.com/julep-ai/julep/pull/611 +* [@bilalmirza74](https://github.com/bilalmirza74) made their first contribution in https://github.com/julep-ai/julep/pull/632 +* [@itsamziii](https://github.com/itsamziii) made their first contribution in https://github.com/julep-ai/julep/pull/624 +* [@utsavdotdev](https://github.com/utsavdotdev) made their first contribution in https://github.com/julep-ai/julep/pull/634 +* [@sudhanshu-77](https://github.com/sudhanshu-77) made their first contribution in https://github.com/julep-ai/julep/pull/636 + +**Full Changelog**: https://github.com/julep-ai/julep/compare/v0.3.4...v1.0.0 + +[Changes][v1.0.0] + + # [v1.0.0-alpha1](https://github.com/julep-ai/julep/releases/tag/v1.0.0-alpha1) - 30 Sep 2024 @@ -276,6 +428,7 @@ [Changes][v0.2.12] +[v1.0.0]: https://github.com/julep-ai/julep/compare/v1.0.0-alpha1...v1.0.0 [v1.0.0-alpha1]: https://github.com/julep-ai/julep/compare/v0.4.1...v1.0.0-alpha1 [v0.4.1]: https://github.com/julep-ai/julep/compare/v0.4.0...v0.4.1 [v0.4.0]: https://github.com/julep-ai/julep/compare/v0.3.4...v0.4.0 diff --git a/README.md b/README.md index 11896ca79..563330bc0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [English](README.md) | [δΈ­ζ–‡ηΏ»θ―‘](README-CN.md) | [ζ—₯本θͺžηΏ»θ¨³](README-JA.md) | [French](README-FR.md) -
+
julep
@@ -15,7 +15,6 @@ LinkedIn

-

NPM Version   @@ -26,11 +25,11 @@ GitHub License

-***** +--- > [!NOTE] -> πŸ‘¨β€πŸ’» Here for the devfest.ai event ? Join our [Discord](https://discord.com/invite/JTSBGRZrzj) and check out the details below. -> +> πŸ‘¨β€πŸ’» Here for the devfest.ai event? Join our [Discord](https://discord.com/invite/JTSBGRZrzj) and check out the details below. +> > Get your API key [here](https://dashboard-dev.julep.ai).
@@ -67,12 +66,8 @@ Exciting news! We're participating in DevFest.AI throughout October 2024! πŸ—“

πŸ“– Table of Contents

- [Introduction](#introduction) -- [Quick Example](#quick-example) - [Key Features](#key-features) -- [Why Julep vs. LangChain?](#why-julep-vs-langchain) - - [Different Use Cases](#different-use-cases) - - [Different Form Factor](#different-form-factor) - - [In Summary](#in-summary) +- [Quick Example](#quick-example) - [Installation](#installation) - [Python Quick Start 🐍](#python-quick-start-) - [Step 1: Create an Agent](#step-1-create-an-agent) @@ -90,17 +85,11 @@ Exciting news! We're participating in DevFest.AI throughout October 2024! πŸ—“ - [Understanding Tasks](#understanding-tasks) - [Types of Workflow Steps](#types-of-workflow-steps) - [Tool Types](#tool-types) - - [User-defined `function`s](#user-defined-functions) + - [User-defined `functions`](#user-defined-functions) - [`system` tools](#system-tools) - - [Built-in `integration`s](#built-in-integrations) - - [Direct `api_call`s](#direct-api_calls) + - [Built-in `integrations`](#built-in-integrations) + - [Direct `api_calls`](#direct-api_calls) - [Integrations](#integrations) - - [Brave Search](#brave-search) - - [BrowserBase](#browserbase) - - [Email](#email) - - [Spider](#spider) - - [Weather](#weather) - - [Wikipedia](#wikipedia) - [Other Features](#other-features) - [Adding Tools to Agents](#adding-tools-to-agents) - [Managing Sessions and Users](#managing-sessions-and-users) @@ -121,6 +110,7 @@ Julep enables the creation of multi-step tasks incorporating decision-making, lo While many AI applications are limited to simple, linear chains of prompts and API calls with minimal branching, Julep is built to handle more complex scenarios. It supports: + - Intricate, multi-step processes - Dynamic decision-making - Parallel execution @@ -128,14 +118,27 @@ It supports: > [!TIP] > Imagine you want to build an AI agent that can do more than just answer simple questionsβ€”it needs to handle complex tasks, remember past interactions, and maybe even use other tools or APIs. That's where Julep comes in. +## Key Features + +1. 🧠 **Persistent AI Agents**: Remember context and information over long-term interactions. +2. πŸ’Ύ **Stateful Sessions**: Keep track of past interactions for personalized responses. +3. πŸ”„ **Multi-Step Tasks**: Build complex, multi-step processes with loops and decision-making. +4. ⏳ **Task Management**: Handle long-running tasks that can run indefinitely. +5. πŸ› οΈ **Built-in Tools**: Use built-in tools and external APIs in your tasks. +6. πŸ”§ **Self-Healing**: Julep will automatically retry failed steps, resend messages, and generally keep your tasks running smoothly. +7. πŸ“š **RAG**: Use Julep's document store to build a system for retrieving and using your own data. + +Julep is ideal for applications that require AI use cases beyond simple prompt-response models. + ## Quick Example Imagine a Research AI agent that can do the following: - 1. Take a topic, - 2. Come up with 100 search queries for that topic, - 3. Perform those web searches in parallel, - 4. Summarize the results, - 5. Send the summary to Discord + +1. Take a topic, +2. Come up with 100 search queries for that topic, +3. Perform those web searches in parallel, +4. Summarize the results, +5. Send the summary to Discord In Julep, this would be a single task under 80 lines of code and run fully managed all on its own. All of the steps are executed on Julep's own servers and you don't need to lift a finger. Here's a working example: @@ -152,20 +155,20 @@ input_schema: # Define the tools that the agent can use tools: -- name: web_search - type: integration - integration: - provider: brave - setup: - api_key: "YOUR_BRAVE_API_KEY" - -- name: discord_webhook - type: api_call - api_call: - url: "YOUR_DISCORD_WEBHOOK_URL" - method: POST - headers: - Content-Type: application/json + - name: web_search + type: integration + integration: + provider: brave + setup: + api_key: "YOUR_BRAVE_API_KEY" + + - name: discord_webhook + type: api_call + api_call: + url: "YOUR_DISCORD_WEBHOOK_URL" + method: POST + headers: + Content-Type: application/json # Special variables: # - inputs: for accessing the input to the task @@ -174,101 +177,51 @@ tools: # Define the main workflow main: -- prompt: - - role: system - content: >- - You are a research assistant. - Generate 100 diverse search queries related to the topic: - {{inputs[0].topic}} + - prompt: + - role: system + content: >- + You are a research assistant. + Generate 100 diverse search queries related to the topic: + {{inputs[0].topic}} - Write one query per line. - unwrap: true + Write one query per line. + unwrap: true -# Evaluate the search queries using a simple python expression -- evaluate: - search_queries: "_.split('\n')" + # Evaluate the search queries using a simple python expression + - evaluate: + search_queries: "_.split('\n')" -# Run the web search in parallel for each query -- over: "_.search_queries" - map: - tool: web_search - arguments: - query: "_" - parallelism: 100 + # Run the web search in parallel for each query + - over: "_.search_queries" + map: + tool: web_search + arguments: + query: "_" + parallelism: 100 -# Collect the results from the web search -- evaluate: - results: "'\n'.join([item.result for item in _])" + # Collect the results from the web search + - evaluate: + results: "'\n'.join([item.result for item in _])" -# Summarize the results -- prompt: - - role: system - content: > - You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}. - The summary should be well-structured, informative, and highlight key findings and insights: - {{_.results}} - unwrap: true + # Summarize the results + - prompt: + - role: system + content: > + You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}. + The summary should be well-structured, informative, and highlight key findings and insights: + {{_.results}} + unwrap: true -# Send the summary to Discord -- tool: discord_webhook - arguments: - content: > - **Research Summary for {{inputs[0].topic}}** + # Send the summary to Discord + - tool: discord_webhook + arguments: + content: > + **Research Summary for {{inputs[0].topic}}** - {{_}} + {{_}} ``` -> [!TIP] -> Julep is really useful when you want to build AI agents that can maintain context and state over long-term interactions. It's great for designing complex, multi-step workflows and integrating various tools and APIs directly into your agent's processes. -> -> In this example, Julep will automatically manage parallel executions, retry failed steps, resend API requests, and keep the tasks running reliably until completion. - -## Key Features - -1. 🧠 **Persistent AI Agents**: Remember context and information over long-term interactions. -2. πŸ’Ύ **Stateful Sessions**: Keep track of past interactions for personalized responses. -3. πŸ”„ **Multi-Step Tasks**: Build complex, multi-step processes with loops and decision-making. -4. ⏳ **Task Management**: Handle long-running tasks that can run indefinitely. -5. πŸ› οΈ **Built-in Tools**: Use built-in tools and external APIs in your tasks. -6. πŸ”§ **Self-Healing**: Julep will automatically retry failed steps, resend messages, and generally keep your tasks running smoothly. -7. πŸ“š **RAG**: Use Julep's document store to build a system for retrieving and using your own data. - -Julep is ideal for applications that require AI use cases beyond simple prompt-response models. - -## Why Julep vs. LangChain? - -### Different Use Cases - -Think of LangChain and Julep as tools with different focuses within the AI development stack. - -LangChain is great for creating sequences of prompts and managing interactions with AI models. It has a large ecosystem with lots of pre-built integrations, which makes it convenient if you want to get something up and running quickly. LangChain fits well with simple use cases that involve a linear chain of prompts and API calls. - -Julep, on the other hand, is more about building persistent AI agents that can remember things over long-term interactions. It shines when you need complex tasks that involve multiple steps, decision-making, and integration with various tools or APIs directly within the agent's process. It's designed from the ground up to manage persistent sessions and complex tasks. - -Use Julep if you imagine building a complex AI assistant that needs to: - -- Keep track of user interactions over days or weeks. -- Perform scheduled tasks, like sending daily summaries or monitoring data sources. -- Make decisions based on prior interactions or stored data. -- Interact with multiple external services as part of its task. - -Then Julep provides the infrastructure to support all that without you having to build it from scratch. - -### Different Form Factor - -Julep is a **platform** that includes a language for describing tasks, a server for running those tasks, and an SDK for interacting with the platform. To build something with Julep, you write a description of the task in `YAML`, and then run the task in the cloud. - -Julep is built for heavy-lifting, multi-step, and long-running tasks and there's no limit to how complex the task can be. - -LangChain is a **library** that includes a few tools and a framework for building linear chains of prompts and tools. To build something with LangChain, you typically write Python code that configures and runs the model chains you want to use. - -LangChain might be sufficient and quicker to implement for simple use cases that involve a linear chain of prompts and API calls. - -### In Summary - -Use LangChain when you need to manage AI model interactions and prompt sequences in a stateless or short-term context. - -Choose Julep when you need a robust framework for stateful agents with advanced task capabilities, persistent sessions, and complex task management. +In this example, Julep will automatically manage parallel executions, retry failed steps, resend API requests, and keep the tasks running reliably until completion. ## Installation @@ -418,25 +371,24 @@ while (message := input("Enter a message: ")) != "quit": print(response) ``` -> [!TIP] -> You can find the full python example [here](example.py). - +You can find the full python example [here](example.py). ## Node.js Quick Start 🟩 ### Step 1: Create an Agent ```javascript -import { Julep } from '@julep/sdk'; -import yaml from 'js-yaml'; +import { Julep } from "@julep/sdk"; +import yaml from "js-yaml"; -const client = new Julep({ apiKey: 'your_julep_api_key' }); +const client = new Julep({ apiKey: "your_julep_api_key" }); async function createAgent() { const agent = await client.agents.create({ name: "Storytelling Agent", model: "gpt-4", - about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.", + about: + "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.", }); // πŸ› οΈ Add an image generation tool (DALLΒ·E) to the agent @@ -516,11 +468,13 @@ async function createTask(agent) { ```javascript async function executeTask(task) { const execution = await client.executions.create(task.id, { - input: { idea: "A cat who learns to fly" } + input: { idea: "A cat who learns to fly" }, }); // πŸŽ‰ Watch as the story and comic panels are generated - for await (const transition of client.executions.transitions.stream(execution.id)) { + for await (const transition of client.executions.transitions.stream( + execution.id + )) { console.log(transition); } @@ -539,12 +493,12 @@ async function chatWithAgent(agent) { // πŸ’¬ Send messages to the agent const rl = readline.createInterface({ input: process.stdin, - output: process.stdout + output: process.stdout, }); const chat = async () => { rl.question("Enter a message (or 'quit' to exit): ", async (message) => { - if (message.toLowerCase() === 'quit') { + if (message.toLowerCase() === "quit") { rl.close(); return; } @@ -570,8 +524,7 @@ async function runExample() { runExample().catch(console.error); ``` -> [!TIP] -> You can find the full Node.js example [here](example.js). +You can find the full Node.js example [here](example.js). ## Components @@ -590,10 +543,12 @@ Julep is made up of the following components: Think of Julep as a platform that combines both client-side and server-side components to help you build advanced AI agents. Here's how to visualize it: 1. **Your Application Code:** - - You use the Julep SDK in your application to define agents, tasks, and workflows. + + - You can use the Julep SDK in your application to define agents, tasks, and workflows. - The SDK provides functions and classes that make it easy to set up and manage these components. 2. **Julep Backend Service:** + - The SDK communicates with the Julep backend over the network. - The backend handles execution of tasks, maintains session state, stores documents, and orchestrates workflows. @@ -601,11 +556,6 @@ Think of Julep as a platform that combines both client-side and server-side comp - Within your workflows, you can integrate external tools and services. - The backend facilitates these integrations, so your agents can, for example, perform web searches, access databases, or call third-party APIs. -In simpler terms: -- Julep is a platform for building stateful AI agents. -- You use the SDK (like a toolkit) in your code to define what your agents do. -- The backend service (which you can think of as the engine) runs these definitions, manages state, and handles complexity. - ## Concepts Julep is built on several key technical components that work together to create powerful AI workflows: @@ -636,7 +586,7 @@ graph TD - **Documents**: Text or data objects associated with agents or users, vectorized and stored for semantic search and retrieval. - **Executions**: Instances of tasks that have been initiated with specific inputs, with their own lifecycle and state machine. -For a more detailed explanation of these concepts and their interactions, please refer to our [Concepts Documentation](https://github.com/julep-ai/julep/blob/dev/docs/julep-concepts.md). +For a more detailed explanation, refer to our [Concepts Documentation](https://github.com/julep-ai/julep/blob/dev/docs/julep-concepts.md). ## Understanding Tasks @@ -648,138 +598,328 @@ Tasks are the core of Julep's workflow system. They allow you to define complex, ### Types of Workflow Steps -Tasks in Julep can include various types of steps, allowing you to create complex and powerful workflows. Here's an overview of the available step types, organized by category: +Tasks in Julep can include various types of steps, allowing you to create complex and powerful workflows. Here's an overview of the available step types: #### Common Steps -1. **Prompt**: Send a message to the AI model and receive a response. - ```yaml - - prompt: "Analyze the following data: {{data}}" - ``` - -2. **Tool Call**: Execute an integrated tool or API. - ```yaml - - tool: web_search - arguments: - query: "Latest AI developments" - ``` - -3. **Evaluate**: Perform calculations or manipulate data. - ```yaml - - evaluate: - average_score: "sum(scores) / len(scores)" - ``` - -4. **Wait for Input**: Pause workflow until input is received. - ```yaml - - wait_for_input: - info: - message: "Please provide additional information." - ``` - -5. **Log**: Log a specified value or message. - ```yaml - - log: "Processing completed for item {{item_id}}" - ``` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name About Syntax
Prompt +Send a message to the AI model and receive a response + + + +```yaml +- prompt: "Analyze the following data: {{data}}" +``` + +
Tool Call +Execute an integrated tool or API + + + +```yaml +- tool: web_search + arguments: + query: "Latest AI developments" +``` + +
Evaluate +Perform calculations or manipulate data + + + +```yaml +- evaluate: + average_score: "sum(scores) / len(scores)" +``` + +
Wait for Input +Pause workflow until input is received + + + +```yaml +- wait_for_input: + info: + message: "Please provide additional information." +``` + +
Log +Log a specified value or message + + + +```yaml +- log: "Processing completed for item {{item_id}}" +``` + +
#### Key-Value Steps -6. **Get**: Retrieve a value from a key-value store. - ```yaml - - get: "user_preference" - ``` + + + + + + + + + + + + + -7. **Set**: Assign a value to a key in a key-value store. - ```yaml - - set: - user_preference: "dark_mode" - ``` + + +
Name About Syntax
Get +Retrieve a value from a key-value store + + + +```yaml +- get: "user_preference" +``` + +
Set +Assign a value to a key in a key-value store + + + +```yaml +- set: + user_preference: "dark_mode" +``` + +
#### Iteration Steps -8. **Foreach**: Iterate over a collection and perform steps for each item. - ```yaml - - foreach: - in: "data_list" - do: - - log: "Processing item {{_}}" - ``` - -9. **Map-Reduce**: Map over a collection and reduce the results. - ```yaml - - map_reduce: - over: "numbers" - map: - - evaluate: - squared: "_ ** 2" - reduce: "sum(results)" - ``` - -10. **Parallel**: Run multiple steps in parallel. - ```yaml - - parallel: - - tool: web_search - arguments: - query: "AI news" - - tool: weather_check - arguments: - location: "New York" - ``` + + + + + + + + + + + + + + + + + + + + + + +
Name About Syntax
Foreach +Iterate over a collection and perform steps for each item + + + +```yaml +- foreach: + in: "data_list" + do: + - log: "Processing item {{_}}" +``` + +
Map-Reduce +Map over a collection and reduce the results + + + +```yaml +- map_reduce: + over: "numbers" + map: + - evaluate: + squared: "_ ** 2" + reduce: "sum(results)" +``` + +
Parallel +Run multiple steps in parallel + + + +```yaml +- parallel: + - tool: web_search + arguments: + query: "AI news" + - tool: weather_check + arguments: + location: "New York" +``` + +
#### Conditional Steps -11. **If-Else**: Conditional execution of steps. - ```yaml - - if: "score > 0.8" + + + + + + + + + + + + + + + + +
Name About Syntax
If-Else +Conditional execution of steps + + + +```yaml +- if: "score > 0.8" + then: + - log: "High score achieved" + else: + - log: "Score needs improvement" +``` + +
Switch +Execute steps based on multiple conditions + + + +```yaml +- switch: + - case: "category == 'A'" + then: + - log: "Category A processing" + - case: "category == 'B'" + then: + - log: "Category B processing" + - case: "_" # Default case then: - - log: "High score achieved" - else: - - log: "Score needs improvement" - ``` - -12. **Switch**: Execute steps based on multiple conditions. - ```yaml - - switch: - - case: "category == 'A'" - then: - - log: "Category A processing" - - case: "category == 'B'" - then: - - log: "Category B processing" - - case: "_" # Default case - then: - - log: "Unknown category" - ``` + - log: "Unknown category" +``` + +
#### Other Control Flow -13. **Sleep**: Pause the workflow for a specified duration. - ```yaml - - sleep: - seconds: 30 - ``` - -14. **Return**: Return a value from the workflow. - ```yaml - - return: - result: "Task completed successfully" - ``` - -15. **Yield**: Run a subworkflow and await its completion. - ```yaml - - yield: - workflow: "data_processing_subflow" - arguments: - input_data: "{{raw_data}}" - ``` + + + + + + + -Each step type serves a specific purpose in building sophisticated AI workflows. This categorization helps in understanding the various control flows and operations available in Julep tasks. + + + + + + + + + + + + + + + + + + + + + +
Name About Syntax
Sleep +Pause the workflow for a specified duration -16. **Error**: Handle errors by specifying an error message. - ```yaml - - error: "Invalid input provided" - ``` + + +```yaml +- sleep: + seconds: 30 +``` + +
Return +Return a value from the workflow + + +```yaml +- return: + result: "Task completed successfully" +``` + +
Yield +Run a subworkflow and await its completion + + + +```yaml +- yield: + workflow: "data_processing_subflow" + arguments: + input_data: "{{raw_data}}" +``` + +
Error +Handle errors by specifying an error message + + + +```yaml +- error: "Invalid input provided" +``` + +
+ +Each step type serves a specific purpose in building sophisticated AI workflows. This categorization helps in understanding the various control flows and operations available in Julep tasks. ## Tool Types @@ -789,204 +929,253 @@ Unlike agent frameworks, julep is a _backend_ that manages agent execution. Clie Tools in julep can be one of: -### User-defined `function`s +### User-defined `functions` -These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. An example: +These are function signatures that you can give the model to choose from, similar to how [openai]'s function-calling works. An example: -```yaml - name: Example system tool task - description: List agents using system call +```yaml +name: Example system tool task +description: List agents using system call - tools: - - name: send_notification - description: Send a notification to the user - type: function - function: - parameters: - type: object - properties: - text: - type: string - description: Content of the notification +tools: + - name: send_notification + description: Send a notification to the user + type: function + function: + parameters: + type: object + properties: + text: + type: string + description: Content of the notification - main: - - tool: send_notification - arguments: - content: hi +main: + - tool: send_notification + arguments: + content: hi ``` - - Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep. + +Whenever julep encounters a _user-defined function_, it pauses, giving control back to the client and waits for the client to run the function call and give the results back to julep. > [!TIP] > **Example cookbook**: [cookbooks/13-Error_Handling_and_Recovery.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/13-Error_Handling_and_Recovery.py) ### `system` tools + Built-in tools that can be used to call the julep APIs themselves, like triggering a task execution, appending to a metadata field, etc. -`system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side. - +`system` tools are built into the backend. They get executed automatically when needed. They do _not_ require any action from the client-side. + For example, - - ```yaml - name: Example system tool task - description: List agents using system call - - tools: - - name: list_agents - description: List all agents - type: system - system: - resource: agent - operation: list - main: - - tool: list_agents - arguments: - limit: 10 - ``` + +```yaml +name: Example system tool task +description: List agents using system call + +tools: + - name: list_agents + description: List all agents + type: system + system: + resource: agent + operation: list +main: + - tool: list_agents + arguments: + limit: 10 +``` > [!TIP] > **Example cookbook**: [cookbooks/10-Document_Management_and_Search.py](https://github.com/julep-ai/julep/blob/dev/cookbooks/10-Document_Management_and_Search.py) - -### Built-in `integration`s + +### Built-in `integrations` + Julep comes with a number of built-in integrations (as described in the section below). `integration` tools are directly executed on the julep backend. Any additional parameters needed by them at runtime can be set in the agent/session/user's `metadata` fields. > [!TIP] > **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) julep backend ships with integrated third party tools from the following providers: -- [composio](https://composio.dev) \*\* -- [anon](https://anon.com) \*\* -- [langchain toolkits](https://python.langchain.com/v0.2/docs/integrations/toolkits/). Support for _Github, Gitlab, Gmail, Jira, MultiOn, Slack_ toolkits is planned. -\*\* Since _composio_ and _anon_ are third-party providers, their tools require setting up account linking. +- [composio](https://composio.dev) +- [anon](https://anon.com) +- [langchain toolkits](https://python.langchain.com/v0.2/docs/integrations/toolkits/) + +Support for _Github, Gitlab, Gmail, Jira, MultiOn, Slack_ toolkits is planned. +Since _composio_ and _anon_ are third-party providers, their tools require setting up account linking. -### Direct `api_call`s +### Direct `api_calls` julep can also directly make api calls during workflow executions as tool calls. Same as `integration`s, additional runtime parameters are loaded from `metadata` fields. - -For example, - - ```yaml - name: Example api_call task - tools: - - type: api_call - name: hello - api_call: - method: GET - url: https://httpbin.org/get - main: - - tool: hello - arguments: - params: - test: _.input - ``` + +For example, + +```yaml +name: Example api_call task +tools: + - type: api_call + name: hello + api_call: + method: GET + url: https://httpbin.org/get +main: + - tool: hello + arguments: + params: + test: _.input +``` ## Integrations Julep supports various integrations that extend the capabilities of your AI agents. Here's a list of available integrations and their supported arguments: -### Brave Search + + + + + + + + + + + + + + + + + + + + + + -### Weather + + + + + + + + + + + + + + + +
Brave Search ```yaml setup: - api_key: string # The API key for Brave Search + api_key: string # The API key for Brave Search arguments: - query: string # The search query for searching with Brave + query: string # The search query for searching with Brave output: - result: string # The result of the Brave Search + result: string # The result of the Brave Search ``` -> [!TIP] -> **Example cookbook**: [cookbooks/03-SmartResearcher_With_WebSearch.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/03-SmartResearcher_With_WebSearch.ipynb) + -### BrowserBase +**Example cookbook**: [cookbooks/03-SmartResearcher_With_WebSearch.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/03-SmartResearcher_With_WebSearch.ipynb) + +
BrowserBase ```yaml setup: - api_key: string # The API key for BrowserBase - project_id: string # The project ID for BrowserBase - session_id: string # (Optional) The session ID for BrowserBase + api_key: string # The API key for BrowserBase + project_id: string # The project ID for BrowserBase + session_id: string # (Optional) The session ID for BrowserBase arguments: - urls: list[string] # The URLs for loading with BrowserBase + urls: list[string] # The URLs for loading with BrowserBase output: - documents: list # The documents loaded from the URLs + documents: list # The documents loaded from the URLs ``` -### Email +
Email ```yaml setup: - host: string # The host of the email server - port: integer # The port of the email server - user: string # The username of the email server - password: string # The password of the email server + host: string # The host of the email server + port: integer # The port of the email server + user: string # The username of the email server + password: string # The password of the email server arguments: - to: string # The email address to send the email to - from: string # The email address to send the email from - subject: string # The subject of the email - body: string # The body of the email + to: string # The email address to send the email to + from: string # The email address to send the email from + subject: string # The subject of the email + body: string # The body of the email output: - success: boolean # Whether the email was sent successfully + success: boolean # Whether the email was sent successfully ``` -> [!TIP] -> **Example cookbook**: [cookbooks/00-Devfest-Email-Assistant.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/00-Devfest-Email-Assistant.ipynb) + -### Spider +**Example cookbook**: [cookbooks/00-Devfest-Email-Assistant.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/00-Devfest-Email-Assistant.ipynb) + +
Spider ```yaml setup: - spider_api_key: string # The API key for Spider + spider_api_key: string # The API key for Spider arguments: - url: string # The URL for which to fetch data - mode: string # The type of crawlers (default: "scrape") - params: dict # (Optional) The parameters for the Spider API + url: string # The URL for which to fetch data + mode: string # The type of crawlers (default: "scrape") + params: dict # (Optional) The parameters for the Spider API output: - documents: list # The documents returned from the spider + documents: list # The documents returned from the spider ``` -> [!TIP] -> **Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) + + +**Example cookbook**: [cookbooks/01-Website_Crawler_using_Spider.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/01-Website_Crawler_using_Spider.ipynb) + +
Weather ```yaml setup: - openweathermap_api_key: string # The API key for OpenWeatherMap + openweathermap_api_key: string # The API key for OpenWeatherMap arguments: - location: string # The location for which to fetch weather data + location: string # The location for which to fetch weather data output: - result: string # The weather data for the specified location + result: string # The weather data for the specified location ``` -> [!TIP] -> **Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb) + -### Wikipedia +**Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb) + +
Wikipedia ```yaml arguments: - query: string # The search query string - load_max_docs: integer # Maximum number of documents to load (default: 2) + query: string # The search query string + load_max_docs: integer # Maximum number of documents to load (default: 2) output: - documents: list # The documents returned from the Wikipedia search + documents: list # The documents returned from the Wikipedia search ``` -> [!TIP] -> **Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb) + -These integrations can be used within your tasks to extend the capabilities of your AI agents. For more detailed information on how to use these integrations in your workflows, please refer to our [Integrations Documentation](https://docs.julep.ai/integrations). +**Example cookbook**: [cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb](https://github.com/julep-ai/julep/blob/dev/cookbooks/04-TripPlanner_With_Weather_And_WikiInfo.ipynb) + +
+ +For more details, refer to our [Integrations Documentation](https://docs.julep.ai/integrations). ## Other Features @@ -1054,9 +1243,11 @@ results = client.agents.docs.search( ## Local Quickstart **Requirements**: + - latest docker compose installed **Steps**: + 1. `git clone https://github.com/julep-ai/julep.git` 2. `cd julep` 3. `docker volume create cozo_backup` @@ -1077,10 +1268,8 @@ Explore our comprehensive API documentation to learn more about agents, tasks, a - [Tasks API](https://api.julep.ai/api/docs#tag/tasks) - [Executions API](https://api.julep.ai/api/docs#tag/executions) - -
+
Back to Top
- diff --git a/agents-api/.gitignore b/agents-api/.gitignore index bc51c65f8..0011e41de 100644 --- a/agents-api/.gitignore +++ b/agents-api/.gitignore @@ -5,6 +5,9 @@ temporal.db *.dat *.dir +# jupyterlab stuff +.virtual_documents/ + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/agents-api/agents_api/activities/embed_docs.py b/agents-api/agents_api/activities/embed_docs.py index 924424881..bbdc66043 100644 --- a/agents-api/agents_api/activities/embed_docs.py +++ b/agents-api/agents_api/activities/embed_docs.py @@ -1,3 +1,8 @@ +import asyncio +import operator +from functools import reduce +from itertools import batched + from beartype import beartype from temporalio import activity @@ -8,18 +13,27 @@ @beartype -async def embed_docs(payload: EmbedDocsPayload, cozo_client=None) -> None: +async def embed_docs( + payload: EmbedDocsPayload, cozo_client=None, max_batch_size: int = 100 +) -> None: indices, snippets = list(zip(*enumerate(payload.content))) + batched_snippets = batched(snippets, max_batch_size) embed_instruction: str = payload.embed_instruction or "" title: str = payload.title or "" - embeddings = await litellm.aembedding( - inputs=[ - ( - embed_instruction + (title + "\n\n" + snippet) if title else snippet - ).strip() - for snippet in snippets - ] + async def embed_batch(snippets): + return await litellm.aembedding( + inputs=[ + ( + embed_instruction + (title + "\n\n" + snippet) if title else snippet + ).strip() + for snippet in snippets + ] + ) + + embeddings = reduce( + operator.add, + await asyncio.gather(*[embed_batch(snippets) for snippets in batched_snippets]), ) embed_snippets_query( @@ -31,7 +45,9 @@ async def embed_docs(payload: EmbedDocsPayload, cozo_client=None) -> None: ) -async def mock_embed_docs(payload: EmbedDocsPayload, cozo_client=None) -> None: +async def mock_embed_docs( + payload: EmbedDocsPayload, cozo_client=None, max_batch_size=100 +) -> None: # Does nothing return None diff --git a/agents-api/agents_api/activities/excecute_api_call.py b/agents-api/agents_api/activities/excecute_api_call.py index e7752aa06..956ca9370 100644 --- a/agents-api/agents_api/activities/excecute_api_call.py +++ b/agents-api/agents_api/activities/excecute_api_call.py @@ -1,15 +1,13 @@ import base64 -from typing import Annotated, Any, Optional, TypedDict, Union +from typing import Any, Optional, TypedDict, Union import httpx from beartype import beartype -from pydantic import Field from temporalio import activity from ..autogen.openapi_model import ApiCallDef # from ..clients import integrations -from ..common.protocol.tasks import StepContext from ..env import testing # from ..models.tools import get_tool_args_from_metadata @@ -31,7 +29,7 @@ async def execute_api_call( request_args: RequestArgs, ) -> Any: try: - async with httpx.AsyncClient() as client: + async with httpx.AsyncClient(timeout=60.0) as client: arg_url = request_args.pop("url", None) arg_headers = request_args.pop("headers", None) @@ -43,15 +41,21 @@ async def execute_api_call( **request_args, ) + response.raise_for_status() content_base64 = base64.b64encode(response.content).decode("ascii") response_dict = { "status_code": response.status_code, "headers": dict(response.headers), "content": content_base64, - "json": response.json(), } + try: + response_dict["json"] = response.json() + except BaseException as e: + response_dict["json"] = None + activity.logger.debug(f"Failed to parse JSON response: {e}") + return response_dict except BaseException as e: diff --git a/agents-api/agents_api/activities/execute_system.py b/agents-api/agents_api/activities/execute_system.py index 8ffb85814..9645ced16 100644 --- a/agents-api/agents_api/activities/execute_system.py +++ b/agents-api/agents_api/activities/execute_system.py @@ -2,6 +2,7 @@ from uuid import UUID from beartype import beartype +from box import Box, BoxList from fastapi.background import BackgroundTasks from temporalio import activity @@ -19,9 +20,7 @@ from ..models.agent.get_agent import get_agent as get_agent_query from ..models.agent.list_agents import list_agents as list_agents_query from ..models.agent.update_agent import update_agent as update_agent_query -from ..models.docs.create_doc import create_doc as create_doc_query from ..models.docs.delete_doc import delete_doc as delete_doc_query -from ..models.docs.get_doc import get_doc as get_doc_query from ..models.docs.list_docs import list_docs as list_docs_query from ..models.session.create_session import create_session as create_session_query from ..models.session.delete_session import delete_session as delete_session_query @@ -50,6 +49,13 @@ async def execute_system( arguments = system.arguments arguments["developer_id"] = context.execution_input.developer_id + # Unbox all the arguments + for key, value in arguments.items(): + if isinstance(value, Box): + arguments[key] = value.to_dict() + elif isinstance(value, BoxList): + arguments[key] = value.to_list() + # Convert all UUIDs to UUID objects if "agent_id" in arguments: arguments["agent_id"] = UUID(arguments["agent_id"]) @@ -121,7 +127,7 @@ async def execute_system( ) # NO SUBRESOURCE - elif system.subresource == None: + elif system.subresource is None: if system.operation == "list": return list_agents_query(**arguments) elif system.operation == "get": @@ -190,7 +196,7 @@ async def execute_system( ) # NO SUBRESOURCE - elif system.subresource == None: + elif system.subresource is None: if system.operation == "list": return list_users_query(**arguments) elif system.operation == "get": diff --git a/agents-api/agents_api/activities/task_steps/get_value_step.py b/agents-api/agents_api/activities/task_steps/get_value_step.py index cda00789e..71c6d5221 100644 --- a/agents-api/agents_api/activities/task_steps/get_value_step.py +++ b/agents-api/agents_api/activities/task_steps/get_value_step.py @@ -11,7 +11,7 @@ async def get_value_step( context: StepContext, ) -> StepOutcome: - key: str = context.current_step.get + key: str = context.current_step.get # noqa: F841 raise NotImplementedError("Not implemented yet") diff --git a/agents-api/agents_api/activities/utils.py b/agents-api/agents_api/activities/utils.py index fca62578a..1fcc6266c 100644 --- a/agents-api/agents_api/activities/utils.py +++ b/agents-api/agents_api/activities/utils.py @@ -9,20 +9,18 @@ import string import time import urllib.parse -from typing import Any, Callable, ParamSpec, Type, TypeVar, cast +from typing import Any, Callable, ParamSpec, TypeVar import re2 -import yaml import zoneinfo from beartype import beartype from simpleeval import EvalWithCompoundTypes, SimpleEval -from yaml import CSafeDumper, CSafeLoader - -T = TypeVar("T") +from ..common.utils import yaml -P = ParamSpec("P") +T = TypeVar("T") R = TypeVar("R") +P = ParamSpec("P") # TODO: We need to make sure that we dont expose any security issues @@ -51,7 +49,7 @@ "zip": zip, "search_regex": lambda pattern, string: re2.search(pattern, string), "load_json": json.loads, - "load_yaml": lambda string: yaml.load(string, Loader=CSafeLoader), + "load_yaml": yaml.load, "match_regex": lambda pattern, string: bool(re2.fullmatch(pattern, string)), } @@ -74,8 +72,8 @@ class stdlib_json: class stdlib_yaml: - load = lambda string: yaml.load(string, Loader=CSafeLoader) # noqa: E731 - dump = lambda value: yaml.dump(value, Dumper=CSafeDumper) # noqa: E731 + load = yaml.load + dump = yaml.dump class stdlib_time: diff --git a/agents-api/agents_api/common/exceptions/tasks.py b/agents-api/agents_api/common/exceptions/tasks.py index 81331234c..19bb5b5ae 100644 --- a/agents-api/agents_api/common/exceptions/tasks.py +++ b/agents-api/agents_api/common/exceptions/tasks.py @@ -19,6 +19,8 @@ import requests import temporalio.exceptions +### FIXME: This should be the opposite. We should retry on only known errors + # List of error types that should not be retried NON_RETRYABLE_ERROR_TYPES = ( # Temporal-specific errors @@ -56,8 +58,6 @@ # HTTP and API-related errors fastapi.exceptions.HTTPException, fastapi.exceptions.RequestValidationError, - httpx.RequestError, - httpx.HTTPStatusError, # # Asynchronous programming errors asyncio.CancelledError, @@ -102,6 +102,7 @@ ) +### FIXME: This should be the opposite. So `is_retryable_error` instead of `is_non_retryable_error` def is_non_retryable_error(error: BaseException) -> bool: """ Determines if the given error is non-retryable. @@ -115,4 +116,13 @@ def is_non_retryable_error(error: BaseException) -> bool: Returns: bool: True if the error is non-retryable, False otherwise. """ - return isinstance(error, NON_RETRYABLE_ERROR_TYPES) + if isinstance(error, NON_RETRYABLE_ERROR_TYPES): + return True + + # Check for specific HTTP errors (status code == 429) + if isinstance(error, httpx.HTTPStatusError): + if error.response.status_code in (408, 429, 503, 504): + return False + + # If we don't know about the error, we should not retry + return True diff --git a/agents-api/agents_api/common/protocol/tasks.py b/agents-api/agents_api/common/protocol/tasks.py index bd4aaa5a2..872d83516 100644 --- a/agents-api/agents_api/common/protocol/tasks.py +++ b/agents-api/agents_api/common/protocol/tasks.py @@ -1,4 +1,4 @@ -from typing import Annotated, Any, Type +from typing import Annotated, Any from uuid import UUID from pydantic import BaseModel, Field, computed_field diff --git a/agents-api/agents_api/common/utils/template.py b/agents-api/agents_api/common/utils/template.py index 613e0a647..2f614fb4f 100644 --- a/agents-api/agents_api/common/utils/template.py +++ b/agents-api/agents_api/common/utils/template.py @@ -4,12 +4,13 @@ import arrow import re2 -import yaml from beartype import beartype from jinja2.sandbox import ImmutableSandboxedEnvironment from jinja2schema import infer, to_json_schema from jsonschema import validate +from . import yaml + __all__: List[str] = [ "render_template", ] diff --git a/agents-api/agents_api/common/utils/yaml.py b/agents-api/agents_api/common/utils/yaml.py new file mode 100644 index 000000000..7929f616a --- /dev/null +++ b/agents-api/agents_api/common/utils/yaml.py @@ -0,0 +1,18 @@ +from io import StringIO +from typing import Any + +from ruamel.yaml import YAML + +yaml = YAML(typ="safe", pure=True) # pure is needed for yaml 1.2 support +yaml.version = (1, 2) + + +def dump(value: Any) -> str: + stream = StringIO() + yaml.dump(value, stream) + + return stream.getvalue() + + +def load(string: str) -> Any: + return yaml.load(string) diff --git a/agents-api/agents_api/models/docs/search_docs_by_embedding.py b/agents-api/agents_api/models/docs/search_docs_by_embedding.py index 83418aa21..90db8ac26 100644 --- a/agents-api/agents_api/models/docs/search_docs_by_embedding.py +++ b/agents-api/agents_api/models/docs/search_docs_by_embedding.py @@ -99,6 +99,7 @@ def search_docs_by_embedding( index1, min(dist) ] := + candidate[doc_id], *snippets {{ doc_id, index: index1, @@ -109,19 +110,24 @@ def search_docs_by_embedding( index: index2, embedding: embedding2 }}, + is_null(embedding1) == false, + is_null(embedding2) == false, index1 < index2, dist = cos_dist(embedding1, embedding2) doclength[doc_id, max(index)] := + candidate[doc_id], *snippets {{ doc_id, index, }} get_intersnippet[doc_id, index, distance] := + candidate[doc_id], intersnippet_distance[doc_id, _, distance] get_intersnippet[doc_id, index, distance] := + candidate[doc_id], not intersnippet_distance[doc_id, _, distance], distance = 0.0 @@ -151,6 +157,7 @@ def search_docs_by_embedding( distance, mmr_score, ] := + candidate[doc_id], search_result[doc_id, content, index, distance], get_intersnippet[doc_id, index, intersnippet_distance], mmr_score = {mmr_lambda} * (distance - (1.0 - {mmr_lambda}) * intersnippet_distance), @@ -165,6 +172,7 @@ def search_docs_by_embedding( mmr_score, title, ] := + candidate[doc_id], *docs {{ owner_type, owner_id, diff --git a/agents-api/agents_api/models/docs/search_docs_by_text.py b/agents-api/agents_api/models/docs/search_docs_by_text.py index bb700a494..bc7063e87 100644 --- a/agents-api/agents_api/models/docs/search_docs_by_text.py +++ b/agents-api/agents_api/models/docs/search_docs_by_text.py @@ -154,6 +154,7 @@ def search_docs_by_text( distance, title, ] := + candidate[id], input[owner_type, owner_id], m[ id, diff --git a/agents-api/agents_api/models/execution/create_execution_transition.py b/agents-api/agents_api/models/execution/create_execution_transition.py index 2b1c09ae8..d2323d365 100644 --- a/agents-api/agents_api/models/execution/create_execution_transition.py +++ b/agents-api/agents_api/models/execution/create_execution_transition.py @@ -29,9 +29,13 @@ def validate_transition_targets(data: CreateTransitionRequest) -> None: case "finish_branch": pass # TODO: Implement case "finish" | "error" | "cancelled": - assert ( - data.next is None - ), "Next target must be None for finish/finish_branch/error/cancelled" + pass + + ### FIXME: HACK: Fix this and uncomment + + ### assert ( + ### data.next is None + ### ), "Next target must be None for finish/finish_branch/error/cancelled" case "init_branch" | "init": assert ( diff --git a/agents-api/agents_api/routers/internal/__init__.py b/agents-api/agents_api/routers/internal/__init__.py index 237804332..df76d5dc3 100644 --- a/agents-api/agents_api/routers/internal/__init__.py +++ b/agents-api/agents_api/routers/internal/__init__.py @@ -1 +1 @@ -from .router import router +from .router import router as router diff --git a/agents-api/agents_api/routers/internal/router.py b/agents-api/agents_api/routers/internal/router.py index 3293f2463..d8f378352 100644 --- a/agents-api/agents_api/routers/internal/router.py +++ b/agents-api/agents_api/routers/internal/router.py @@ -1,4 +1,4 @@ -from fastapi import APIRouter, Request, Response +from fastapi import APIRouter, Request from google.protobuf import json_format from temporalio.api.common.v1 import Payloads diff --git a/agents-api/agents_api/routers/tasks/router.py b/agents-api/agents_api/routers/tasks/router.py index 9a702c15a..ea25228bd 100644 --- a/agents-api/agents_api/routers/tasks/router.py +++ b/agents-api/agents_api/routers/tasks/router.py @@ -1,9 +1,10 @@ from typing import Callable -import yaml from fastapi import APIRouter, Request, Response from fastapi.routing import APIRoute +from ...common.utils import yaml + class YamlRequest(Request): async def body(self) -> bytes: diff --git a/agents-api/agents_api/routers/tasks/update_execution.py b/agents-api/agents_api/routers/tasks/update_execution.py index d887c455d..e88c36ed9 100644 --- a/agents-api/agents_api/routers/tasks/update_execution.py +++ b/agents-api/agents_api/routers/tasks/update_execution.py @@ -34,7 +34,7 @@ async def update_execution( *get_temporal_workflow_data(execution_id=execution_id) ) await wf_handle.cancel() - except Exception as e: + except Exception: raise HTTPException(status_code=500, detail="Failed to stop execution") case ResumeExecutionRequest(): @@ -59,7 +59,7 @@ async def update_execution( ) try: await act_handle.complete(data.input) - except Exception as e: + except Exception: raise HTTPException( status_code=500, detail="Failed to resume execution" ) diff --git a/agents-api/notebooks/main-3-Copy1.ipynb b/agents-api/notebooks/main-3-Copy1.ipynb new file mode 100644 index 000000000..3eb2e92a2 --- /dev/null +++ b/agents-api/notebooks/main-3-Copy1.ipynb @@ -0,0 +1,4345 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "6c15055f-a62e-49d4-87e3-18a759c1b8c0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Collecting yamlmagic\n", + " Downloading yamlmagic-0.2.0-py2.py3-none-any.whl.metadata (3.8 kB)\n", + "Downloading yamlmagic-0.2.0-py2.py3-none-any.whl (5.5 kB)\n", + "Installing collected packages: yamlmagic\n", + "Successfully installed yamlmagic-0.2.0\n", + "\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m24.2\u001b[0m\n", + "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install yamlmagic" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "17243984-ad4b-4f0f-98ee-bcccbdab43b1", + "metadata": {}, + "outputs": [], + "source": [ + "%reload_ext yamlmagic" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "e2ace0ea-679d-4ec6-b810-d71aee64bc31", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "UsageError: Cell magic `%%yaml` not found.\n" + ] + } + ], + "source": [ + "%%yaml\n", + "name: recommend news articles\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_ppid:\n", + " type: string\n", + " \n", + "tools:\n", + " - name: get_user_from_ppid\n", + " description: Get a user from the user ppid\n", + " system:\n", + " resource: user\n", + " operation: list\n", + "\n", + " - name: get_user_docs\n", + " description: Get user docs\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: list\n", + " \n", + " - name : search_agent_docs\n", + " description: Get agent docs\n", + " system: \n", + " resource: agent\n", + " subresource: doc\n", + " operation: search \n", + " \n", + "main:\n", + " # Get the user from the ppid using metadata_filter (returns a list)\n", + " - tool: get_user_from_ppid\n", + " arguments:\n", + " limit: \"1\"\n", + " metadata_filter:\n", + " ppid: inputs[0]['user_ppid']\n", + "\n", + " # Unwrap the list to get the user\n", + " - evaluate:\n", + " user: _[0]\n", + "\n", + " - tool: get_user_docs\n", + " arguments:\n", + " user_id: _.user.id\n", + " limit: \"1\"\n", + " sort_by: \"'created_at'\"\n", + " direction: \"'desc'\"\n", + "\n", + " #user persona will always be available here\n", + " - evaluate:\n", + " user_embedding: _[0].embeddings\n", + " persona: _[0].content\n", + "\n", + " #Embedding similarity it will rank the docs\n", + " - tool: search_agent_docs\n", + " arguments:\n", + " vector: _.user_embedding\n", + " agent_id: \"'847b03b1-856a-4ae1-a1f5-ad994ba5c87d'\"\n", + "\n", + " #not sure how to evaluate news_titles\n", + " - evaluate:\n", + " top_titles: \"{{ [doc['title'] for doc in _['docs'][:50]] }}\"\n", + "\n", + " - prompt: \n", + " - role: user\n", + " content: Which of these {{_.top_titles}} do you think the user will like. Rank them according to the users' \n", + " persona {{inputs[2].biodata}} and give me the top 5 as valid yaml\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " titles: load_yaml(_)\n", + " \n", + " - prompt: \n", + " - role: user\n", + " content: based on these 5 news {{_.titles}} and users' persona {{inputs[2].biodata}}, draft a catchy newsletter title.\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " newsletter_title: _\n", + " titles: output[7].titles\n" + ] + }, + { + "cell_type": "markdown", + "id": "36cdb647", + "metadata": {}, + "source": [ + "### Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "469351b4", + "metadata": {}, + "outputs": [], + "source": [ + "from julep import Julep\n", + "import yaml\n", + "import pandas as pd\n", + "import uuid\n", + "from tqdm import tqdm" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "e226d8a8", + "metadata": {}, + "outputs": [], + "source": [ + "#Keys\n", + "api_key = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3MzM2OTkxOTEsImlhdCI6MTcyODUxNTE5MSwic3ViIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIn0.OOiS_MkP1QEOMQ2Gs13JeZsFCPkR-ldbNtedK9iS3qIxSN_fSPGzajcdbLtedZZYD9OwMsBg4sKvmkeyrBti9w'\n", + "environment = 'local_multi_tenant'" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "d3ae8ee1", + "metadata": {}, + "outputs": [], + "source": [ + "client = Julep(api_key = api_key, environment = environment)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a9be17de", + "metadata": {}, + "outputs": [], + "source": [ + "# df = pd.read_csv('power_users.csv')\n", + "# df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fde31169", + "metadata": {}, + "outputs": [], + "source": [ + "# df1 = pd.read_csv('titles_10k.csv')\n", + "# df1.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c914cc2d", + "metadata": {}, + "outputs": [], + "source": [ + "# df1.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b602a821", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# articles = df1['titles'].unique().tolist()\n", + "# len(articles)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "345f9840-2d43-4231-a063-09e7f390bb31", + "metadata": {}, + "outputs": [], + "source": [ + "import datetime\n", + "\n", + "UserData = lambda about, metadata, name, **kwargs: {\n", + " \"about\": about,\n", + " \"metadata\": metadata,\n", + " \"name\": name,\n", + "}\n", + "\n", + "user_data = [\n", + " UserData(\n", + " id=\"f2e900fd-c7b4-424b-b71d-d75d4a6d7692\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 371884, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 371885, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 73,\n", + " \"city\": \"Springfield\",\n", + " \"entity_likes\": \"{Others=51, Sean Payton=2, LeBron James=2, Kyle Busch=12, Matt Eberflus=1, Tony Stewart=19, Dale Earnhardt Jr=6, Usain Bolt=1, Ronda Rousey=1, Khabib=1, Jim Harbaugh=1, Denny Hamlin=8, Bubba Wallace=6, Dana White=1, Michael Jordan=9, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"nnqkt17143103131230f7ff7d9f6ca\",\n", + " \"sports_likes\": \"{ufc=3, nba active=3, uss=1, nascar=98, nfl active=15, college football=3}\",\n", + " \"state\": \"IL\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12976\",\n", + " ),\n", + " UserData(\n", + " id=\"4950ec58-2a5c-45da-887a-27799672a3d8\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 362493, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 362494, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 28,\n", + " \"city\": \"Pensacola\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=2, Dan Quinn=2, Elaine Thompson=1, Shaquille ONeal=5, Bronny James=2, Caitlin Clark=6, Chennedy Carter=2, Sydney McLaughlin=1, ShaCarri Richardson=14, Dawn Staley=2, Gabby Thomas=3, Deion Sanders=62, Noah Lyles=10, Simone Biles=13, Others=118, Serena Williams=2, LeBron James=2, Quincy Wilson=1, Rebeca Andrade=1, Angel Reese=2, Usain Bolt=4, Michael Jordan=4, Floyd Mayweather=2, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"7tvpm1710440006185f5ec40de54bf\",\n", + " \"sports_likes\": \"{wnba=11, ufc=1, nba active=10, uss=58, boxing=2, nba legends=8, nfl active=9, nba=1, college football=163, tennis=3}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12975\",\n", + " ),\n", + " UserData(\n", + " id=\"c844b69d-72bc-4bc1-8beb-edbb26ba0619\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 353159, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 353159, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 44,\n", + " \"city\": \"Canton\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Dan Quinn=2, Elaine Thompson=1, Shaquille ONeal=10, Sean Payton=1, Tom Brady=1, Caitlin Clark=10, Sydney McLaughlin=9, ShaCarri Richardson=27, Gabby Thomas=5, Deion Sanders=16, Noah Lyles=7, Simone Biles=2, Breanna Stewart=1, Others=65, Serena Williams=6, LeBron James=14, Quincy Wilson=2, Sabrina Ionescu=2, Angel Reese=5, Erriyon Knighton=1, Shericka Jackson=2, Usain Bolt=3, Hezley Rivera=1, Dana White=1, Michael Jordan=7, Candace Parker=2, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"c66581710732168012f4dec26d05e8\",\n", + " \"sports_likes\": \"{wnba=14, ufc=1, nba active=21, uss=70, boxing=6, nba legends=27, nfl active=15, nfl legends=1, college football=42, tennis=9}\",\n", + " \"state\": \"OH\",\n", + " \"top_entity\": \"ShaCarri Richardson\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12974\",\n", + " ),\n", + " UserData(\n", + " id=\"4795faad-93ee-4f50-94f7-bafe62d47bc1\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 343759, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 343759, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 58,\n", + " \"city\": \"Tulsa\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=9, Others=54, Jordan Chiles=1, Denny Hamlin=8, Kyle Busch=13, Tony Stewart=27, Michael Jordan=7, Michael Phelps=1, Simone Biles=1}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"l5t7w1709681830793f7f665e6157a\",\n", + " \"sports_likes\": \"{nba legends=1, uss=3, nascar=116, others=1}\",\n", + " \"state\": \"OK\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12973\",\n", + " ),\n", + " UserData(\n", + " id=\"9e11ac42-5c54-4e75-a363-aabd91358c28\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 334396, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 334397, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 44,\n", + " \"city\": \"Wilton Manors\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=8, Others=58, Kyle Busch=9, Denny Hamlin=9, Tony Stewart=20, Bubba Wallace=5, Michael Jordan=3, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"fnpdj17097029293234deb46e2583a\",\n", + " \"sports_likes\": \"{nfl active=2, uss=1, nascar=111}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12972\",\n", + " ),\n", + " UserData(\n", + " id=\"9be35edc-467f-41bd-acb3-320aa5ecffcf\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 324930, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 324931, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 72,\n", + " \"city\": \"Maryville\",\n", + " \"entity_likes\": \"{Others=54, Bill Belichick=1, Kyle Busch=15, Tony Stewart=23, Caitlin Clark=2, Dale Earnhardt Jr=15, Olivia Dunne=2, Denny Hamlin=8, Bubba Wallace=2, Michael Jordan=7, Simone Biles=3, Patrick Mahomes=10}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"5r6np1711468788752e89901959a1c\",\n", + " \"sports_likes\": \"{wnba=3, nfl active=11, uss=5, nascar=122, others=1}\",\n", + " \"state\": \"TN\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12971\",\n", + " ),\n", + " UserData(\n", + " id=\"6b9a9c0b-a1c6-45eb-9085-41e83e3d12e2\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 315598, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 315599, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 45,\n", + " \"city\": \"Captain Cook\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=10, Others=42, Kyle Busch=8, Denny Hamlin=6, Tony Stewart=23, Bubba Wallace=4, Michael Jordan=10}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"tlwvs17162229474718d60903eaf36\",\n", + " \"sports_likes\": \"{nascar=103}\",\n", + " \"state\": \"HI\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12970\",\n", + " ),\n", + " UserData(\n", + " id=\"60df090e-cb0d-4d56-a5cd-bcf7162dbbd4\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 306010, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 306011, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 50,\n", + " \"city\": \"Wagram\",\n", + " \"entity_likes\": \"{Others=50, Shaquille ONeal=2, LeBron James=3, Kyle Busch=9, Tony Stewart=5, Caitlin Clark=2, Dale Earnhardt Jr=6, Deion Sanders=17, Jim Harbaugh=4, Denny Hamlin=4, Bubba Wallace=4, Michael Jordan=17}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"8wgxh17023089742317e2410af281a\",\n", + " \"sports_likes\": \"{wnba=3, nba active=8, wwe=3, nascar=52, nba legends=12, nfl active=3, nfl legends=1, college football=40, others=1}\",\n", + " \"state\": \"NC\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12969\",\n", + " ),\n", + " UserData(\n", + " id=\"b3a5d5d5-01f1-499f-af3e-0e0047bb4d58\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 296415, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 296415, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Marion\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=7, Others=63, Kyle Busch=38, Denny Hamlin=14, Tony Stewart=21, Bubba Wallace=11, Michael Jordan=5}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"5mhq817108288806914ea2e8046bff\",\n", + " \"sports_likes\": \"{nfl active=1, nascar=157, others=1}\",\n", + " \"state\": \"NC\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"facebook\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12968\",\n", + " ),\n", + " UserData(\n", + " id=\"639c741c-6f6a-4c87-be70-e980b412f332\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 286775, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 286775, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 45,\n", + " \"city\": \"Arcanum\",\n", + " \"entity_likes\": \"{Others=115, Dan Quinn=1, Shaquille ONeal=1, LeBron James=1, Kyle Busch=16, Tony Stewart=27, Angel Reese=1, Tiger Woods=3, Dale Earnhardt Jr=32, ShaCarri Richardson=1, Jim Harbaugh=5, Denny Hamlin=17, Bubba Wallace=7, Michael Jordan=10, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"6b9rp1699808086600c15fdce82da2\",\n", + " \"sports_likes\": \"{wnba=1, golf=31, nba active=2, uss=1, nascar=192, nba legends=2, nfl active=9, college football=4}\",\n", + " \"state\": \"OH\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12967\",\n", + " ),\n", + " UserData(\n", + " id=\"83a88deb-b918-4b16-88cc-c8cc37883f12\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 277434, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 277435, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 64,\n", + " \"city\": \"Taneytown\",\n", + " \"entity_likes\": \"{Dan Quinn=2, Shaquille ONeal=4, Sean Payton=1, Joe Rogan=4, Caitlin Clark=5, Chennedy Carter=2, ShaCarri Richardson=4, Alex Rodriguez=2, Ronda Rousey=1, Khabib=3, Olivia Dunne=2, Deion Sanders=5, Jon Jones=2, Noah Lyles=2, Simone Biles=2, Breanna Stewart=1, Others=47, LeBron James=9, Quincy Wilson=1, Angel Reese=1, Dana White=8, Michael Jordan=2, Conor McGregor=3, Floyd Mayweather=3, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"z9tqg17112049792834fe04b240edd\",\n", + " \"sports_likes\": \"{soccer=4, wnba=7, tennis=2, ufc=31, nba active=19, uss=13, nascar=1, boxing=8, nba legends=8, nfl active=13, nfl legends=1, college football=14}\",\n", + " \"state\": \"MD\",\n", + " \"top_entity\": \"LeBron James\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"ufc\",\n", + " },\n", + " name=\"user_12966\",\n", + " ),\n", + " UserData(\n", + " id=\"35b1ac51-bbfd-43c1-b5f8-fde4ea5f8c87\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 268211, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 268211, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 34,\n", + " \"city\": \"Evansville\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=18, Others=153, Kyle Busch=37, Denny Hamlin=33, Tony Stewart=24, Bubba Wallace=18, Michael Jordan=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"wtvl917073296482602fc388e778ba\",\n", + " \"sports_likes\": \"{nascar=288, others=1}\",\n", + " \"state\": \"IN\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"facebook\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12965\",\n", + " ),\n", + " UserData(\n", + " id=\"fc2a7acd-614b-48f1-9de9-6ee0a611f4bf\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 258879, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 258880, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 46,\n", + " \"city\": \"Garland\",\n", + " \"entity_likes\": \"{Shaquille ONeal=18, Sean Payton=2, Joe Rogan=5, Tom Brady=1, Tony Stewart=1, Bronny James=2, Caitlin Clark=7, Sydney McLaughlin=3, ShaCarri Richardson=14, Dawn Staley=1, Kishane Thompson=1, Gabby Thomas=2, Ronda Rousey=2, Khabib=4, Jordan Chiles=1, Deion Sanders=33, Noah Lyles=9, Simone Biles=6, Others=127, Serena Williams=1, Fred Kerley=1, LeBron James=12, Kevin OConnell=1, Angel Reese=1, Usain Bolt=4, Dana White=11, Michael Jordan=8, Conor McGregor=5, Floyd Mayweather=4, Patrick Mahomes=16}\",\n", + " \"latest_sport_read\": \"boxing\",\n", + " \"ppid\": \"28grs1699220981051d89e8c41a621\",\n", + " \"sports_likes\": \"{wnba=4, f1=1, tennis=10, ufc=37, nba active=36, uss=48, nascar=2, boxing=17, nba legends=37, nfl active=29, nfl legends=3, college football=79}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12964\",\n", + " ),\n", + " UserData(\n", + " id=\"80536931-dec8-409c-95e2-f42aa85b8a93\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 249553, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 249554, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 78,\n", + " \"city\": \"Beech Mountain\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Others=65, Kyle Busch=10, Tony Stewart=13, Tiger Woods=6, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=8, ShaCarri Richardson=6, Gabby Thomas=2, Denny Hamlin=18, Bubba Wallace=4, Michael Jordan=6, Noah Lyles=3, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"gg7pm170775327216887544300d278\",\n", + " \"sports_likes\": \"{golf=11, ufc=1, uss=15, nascar=111, nfl active=11, others=1}\",\n", + " \"state\": \"NC\",\n", + " \"top_entity\": \"Denny Hamlin\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12963\",\n", + " ),\n", + " UserData(\n", + " id=\"2e1e66e9-58e3-45ad-822d-2047a1d7cda2\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 240300, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 240300, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 59,\n", + " \"city\": \"Broken Arrow\",\n", + " \"entity_likes\": \"{Others=62, Tara Davis Woodhall=1, Brittney Griner=3, Elaine Thompson=1, Shaquille ONeal=14, LeBron James=23, Bill Belichick=1, Rebeca Andrade=1, Sabrina Ionescu=1, Angel Reese=2, Bronny James=2, Tiger Woods=1, Caitlin Clark=13, Sydney McLaughlin=1, Shericka Jackson=2, ShaCarri Richardson=13, Gabby Thomas=4, Usain Bolt=1, Deion Sanders=20, Dana White=1, Michael Jordan=8, Simone Biles=5, Breanna Stewart=1}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"rxw2d17026980489166612e3c7c181\",\n", + " \"sports_likes\": \"{wnba=11, ufc=1, nba active=49, uss=32, nba legends=31, nfl active=7, nfl legends=1, college football=49}\",\n", + " \"state\": \"OK\",\n", + " \"top_entity\": \"LeBron James\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12962\",\n", + " ),\n", + " UserData(\n", + " id=\"43324534-5315-4294-bc01-5b46fc7451d0\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 231011, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 231012, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 40,\n", + " \"city\": \"Sterling Heights\",\n", + " \"entity_likes\": \"{Dan Quinn=1, Shaquille ONeal=8, Caitlin Clark=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Gabby Thomas=3, Ronda Rousey=2, Jordan Chiles=2, Deion Sanders=3, Dwayne Johnson=1, Noah Lyles=5, Simone Biles=8, Breanna Stewart=1, Others=66, Serena Williams=3, LeBron James=6, Quincy Wilson=1, Kevin OConnell=1, Sabrina Ionescu=1, Michael Phelps=1, Steph Curry=2, Dana White=1, Michael Jordan=5, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"ksn7717011377574492c162c9149f3\",\n", + " \"sports_likes\": \"{wnba=2, ufc=3, nba active=26, wwe=19, uss=34, boxing=1, nba legends=19, nfl active=13, nba=1, college football=10, tennis=3}\",\n", + " \"state\": \"MI\",\n", + " \"top_entity\": \"Shaquille ONeal\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12961\",\n", + " ),\n", + " UserData(\n", + " id=\"1b5dd433-86f3-442c-93c9-d82df544ce67\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 221753, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 221754, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 65,\n", + " \"city\": \"Orchard\",\n", + " \"entity_likes\": \"{Others=44, Serena Williams=4, Kyle Busch=9, Tony Stewart=10, Caitlin Clark=1, Dale Earnhardt Jr=17, Jordan Chiles=1, Olivia Dunne=1, Denny Hamlin=2, Bubba Wallace=2, Michael Jordan=2, Simone Biles=5, Patrick Mahomes=15}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"qp9p81709466623669d2ec93790c26\",\n", + " \"sports_likes\": \"{wnba=1, nfl active=20, uss=9, nascar=79, tennis=4}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12960\",\n", + " ),\n", + " UserData(\n", + " id=\"5ce46de8-7248-4fa3-b98d-a615f54dafc4\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 212413, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 212414, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 71,\n", + " \"city\": \"Grants Pass\",\n", + " \"entity_likes\": \"{Others=34, Shaquille ONeal=2, Joe Rogan=9, LeBron James=4, Bronny James=1, Mike Tyson=1, Arnold Schwarzenegger=1, Ronda Rousey=1, Khabib=6, Jim Harbaugh=2, Deion Sanders=2, Jon Jones=1, Dana White=37, Michael Jordan=2, Conor McGregor=12, Floyd Mayweather=2, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"ufc\",\n", + " \"ppid\": \"lzmpd1706046808597fbf1cea42bce\",\n", + " \"sports_likes\": \"{wnba=1, ufc=86, nba active=5, boxing=8, nba legends=4, nfl active=2, bodybuilding=1, college football=11}\",\n", + " \"state\": \"OR\",\n", + " \"top_entity\": \"Dana White\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"ufc\",\n", + " },\n", + " name=\"user_12959\",\n", + " ),\n", + " UserData(\n", + " id=\"01e1c492-2615-42aa-ac27-4c05283060ff\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 202841, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 202842, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 60,\n", + " \"city\": \"Midland\",\n", + " \"entity_likes\": \"{Others=37, Dan Quinn=1, Shaquille ONeal=2, Serena Williams=3, LeBron James=2, Kyle Busch=5, Tony Stewart=17, Lexi Thompson=1, Tiger Woods=3, Caitlin Clark=2, Michael Phelps=1, Chennedy Carter=1, Sydney McLaughlin=1, Dale Earnhardt Jr=20, ShaCarri Richardson=4, Gabby Thomas=1, Jordan Chiles=2, Jim Harbaugh=1, Deion Sanders=1, Denny Hamlin=7, Michael Jordan=9, Simone Biles=2, Patrick Mahomes=10}\",\n", + " \"latest_sport_read\": \"golf\",\n", + " \"ppid\": \"hk4tw1710606285871e4955e273294\",\n", + " \"sports_likes\": \"{soccer=2, wnba=3, golf=7, nba active=2, uss=13, nascar=83, nba legends=1, nfl active=14, college football=7, tennis=1}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12958\",\n", + " ),\n", + " UserData(\n", + " id=\"197fa4e7-bd83-4b9a-94de-56bc8671eb15\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 193313, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 193313, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Lebanon\",\n", + " \"entity_likes\": \"{Others=79, LeBron James=1, Kyle Busch=9, Tony Stewart=9, Jade Carey=1, Dale Earnhardt Jr=15, ShaCarri Richardson=1, Khabib=1, Deion Sanders=3, Olivia Dunne=1, Jim Harbaugh=3, Denny Hamlin=6, Bubba Wallace=3, Michael Jordan=5, Noah Lyles=1, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"k2t691705769722614461d1bccd308\",\n", + " \"sports_likes\": \"{golf=1, ufc=2, nba active=2, uss=32, nascar=84, boxing=1, nba legends=3, nfl active=4, college football=9, others=1}\",\n", + " \"state\": \"PA\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12957\",\n", + " ),\n", + " UserData(\n", + " id=\"dc110ccc-5b5b-43fd-b506-d55c487c5e30\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 183993, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 183993, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 31,\n", + " \"city\": \"Loris\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Others=77, Serena Williams=14, Rebeca Andrade=1, Tiger Woods=2, Sydney McLaughlin=1, ShaCarri Richardson=1, Gabby Thomas=1, Lewis Hamilton=2, Jordan Chiles=2, Leon Marchand=1, Simone Biles=4, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"rtlkp1705632980441b02af4f29aec\",\n", + " \"sports_likes\": \"{golf=2, uss=13, nfl active=2, f1=3, college football=1, tennis=87}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Serena Williams\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"tennis\",\n", + " },\n", + " name=\"user_12956\",\n", + " ),\n", + " UserData(\n", + " id=\"bf4f30a9-5439-4279-8db2-56c355b69568\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 174405, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 174406, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 60,\n", + " \"city\": \"Tucson\",\n", + " \"entity_likes\": \"{Others=69, Tara Davis Woodhall=1, Brittney Griner=1, Dan Quinn=1, Elaine Thompson=1, Shaquille ONeal=7, Serena Williams=6, LeBron James=3, Rebeca Andrade=1, Angel Reese=1, Caitlin Clark=1, Michael Phelps=1, Sydney McLaughlin=3, Shericka Jackson=1, ShaCarri Richardson=11, Gabby Thomas=2, Christian Coleman=1, Usain Bolt=2, Steph Curry=1, Dana White=1, Michael Jordan=4, Noah Lyles=15, Simone Biles=8}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"fnbc4171129201398499b884d5a399\",\n", + " \"sports_likes\": \"{wnba=3, ufc=1, nba active=22, uss=54, boxing=2, nba legends=16, nfl active=2, nba=1, college football=1, tennis=40}\",\n", + " \"state\": \"AZ\",\n", + " \"top_entity\": \"Noah Lyles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12955\",\n", + " ),\n", + " UserData(\n", + " id=\"c958a814-31be-4d69-89a3-45a193993e20\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 164856, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 164857, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 29,\n", + " \"city\": \"Aztec\",\n", + " \"entity_likes\": \"{Others=67, LeBron James=1, Kyle Busch=7, Tony Stewart=7, Bronny James=1, Tiger Woods=3, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=4, Lydia Ko=1, ShaCarri Richardson=4, Gabby Thomas=2, Jordan Chiles=3, Olivia Dunne=7, Jim Harbaugh=2, Denny Hamlin=7, Bubba Wallace=9, Michael Jordan=4, Noah Lyles=1, Simone Biles=4}\",\n", + " \"latest_sport_read\": \"golf\",\n", + " \"ppid\": \"vpf4n17006823497914a4b73faba09\",\n", + " \"sports_likes\": \"{wnba=2, golf=36, nba active=2, uss=26, nascar=67, college football=3}\",\n", + " \"state\": \"NM\",\n", + " \"top_entity\": \"Bubba Wallace\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12954\",\n", + " ),\n", + " UserData(\n", + " id=\"3ad66b6a-6b30-4ef6-9979-29b710cb4705\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 155415, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 155416, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 89,\n", + " \"city\": \"Alexandria\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=28, Others=62, Sean Payton=1, Denny Hamlin=10, Kyle Busch=12, Tony Stewart=24, Bubba Wallace=3, Lexi Thompson=1, Michael Jordan=7, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"zk58c1710646401339eaeb93b350a1\",\n", + " \"sports_likes\": \"{golf=1, nascar=135, nba legends=2, nfl active=8, nfl legends=1, college football=5, others=2}\",\n", + " \"state\": \"VA\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12953\",\n", + " ),\n", + " UserData(\n", + " id=\"56df0fc7-dbeb-4bcc-adc2-4657d8b473b2\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 145903, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 145903, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 70,\n", + " \"city\": \"Huntsville\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Shaquille ONeal=9, Sean Payton=1, Tom Brady=1, Jade Carey=1, Katie Ledecky=1, Caitlin Clark=5, Sydney McLaughlin=2, ShaCarri Richardson=31, Dawn Staley=2, Gabby Thomas=3, Olivia Dunne=1, Jordan Chiles=3, Lewis Hamilton=1, Deion Sanders=43, Shilese Jones=1, Noah Lyles=16, Simone Biles=49, Others=120, Serena Williams=21, Fred Kerley=1, Quincy Wilson=1, LeBron James=7, Angel Reese=3, Tiger Woods=1, Michael Phelps=3, Shericka Jackson=4, Usain Bolt=2, Antonio Pierce=1, Jim Harbaugh=1, Michael Jordan=10, Candace Parker=1, Patrick Mahomes=13}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"q2srb17022834173864e2c1b5cabfb\",\n", + " \"sports_likes\": \"{soccer=1, wnba=6, golf=1, nba active=19, uss=144, boxing=1, nba legends=31, nfl active=21, nfl legends=2, college football=93, tennis=41}\",\n", + " \"state\": \"AL\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12952\",\n", + " ),\n", + " UserData(\n", + " id=\"fd541286-9087-45bf-b156-ac65ce2dbe08\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 136564, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 136565, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 64,\n", + " \"city\": \"Tucson\",\n", + " \"entity_likes\": \"{Others=58, Shaquille ONeal=1, LeBron James=2, Kyle Busch=11, Tony Stewart=24, Lexi Thompson=1, Tiger Woods=5, Dale Earnhardt Jr=14, Lydia Ko=1, Jim Harbaugh=1, Denny Hamlin=5, Bubba Wallace=2, Michael Jordan=4}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"wd89z16999199428129837d3520f39\",\n", + " \"sports_likes\": \"{soccer=1, golf=15, nba active=3, nascar=105, nba legends=2, college football=2, others=1}\",\n", + " \"state\": \"AZ\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12951\",\n", + " ),\n", + " UserData(\n", + " id=\"a196ee5c-91c3-4249-813f-586bd39659a0\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 127019, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 127020, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 61,\n", + " \"city\": \"San Diego\",\n", + " \"entity_likes\": \"{Dan Quinn=1, Shaquille ONeal=11, Kelsey Plum=1, Bronny James=1, Caitlin Clark=14, Chennedy Carter=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Jordan Chiles=2, Olivia Dunne=1, Deion Sanders=3, Noah Lyles=5, Simone Biles=45, Others=69, Serena Williams=11, LeBron James=3, Quincy Wilson=1, Rebeca Andrade=1, Sabrina Ionescu=1, Angel Reese=2, Tiger Woods=6, Jim Harbaugh=1, Hezley Rivera=1, Dana White=1, Michael Jordan=2, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"4tlz6170275143411112d32dedbabd\",\n", + " \"sports_likes\": \"{wnba=17, golf=7, ufc=1, nba active=11, uss=60, boxing=2, nba legends=18, nfl active=13, college football=11, tennis=55}\",\n", + " \"state\": \"CA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12950\",\n", + " ),\n", + " UserData(\n", + " id=\"76c88549-3198-4574-85f3-e9e23e9ec2a7\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 117660, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 117660, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 65,\n", + " \"city\": \"Auburn\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=4, Dan Quinn=1, Sean Payton=2, Kyle Busch=33, Tony Stewart=35, Bronny James=1, Caitlin Clark=4, ShaCarri Richardson=2, Olivia Dunne=2, Deion Sanders=3, Bubba Wallace=12, Simone Biles=4, Others=146, Serena Williams=1, LeBron James=3, Angel Reese=1, Tiger Woods=6, Michael Phelps=1, Dale Earnhardt Jr=60, Jim Harbaugh=4, Denny Hamlin=31, Michael Jordan=26, Floyd Mayweather=1, Patrick Mahomes=12}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"h6cwh16809712658455a7db4d69d20\",\n", + " \"sports_likes\": \"{wnba=4, mlb=2, nba=1, tennis=3, golf=13, nba active=8, uss=15, nfl=3, nascar=305, boxing=1, nba legends=4, nfl active=21, college football=15}\",\n", + " \"state\": \"AL\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12949\",\n", + " ),\n", + " UserData(\n", + " id=\"d84aa464-0204-4c6f-a050-75a820965ecf\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 108306, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 108306, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 67,\n", + " \"city\": \"The Villages\",\n", + " \"entity_likes\": \"{Others=28, Tara Davis Woodhall=1, Shaquille ONeal=4, Serena Williams=3, Sean Payton=2, LeBron James=13, Rebeca Andrade=2, Caitlin Clark=2, Femke Bol=1, Sydney McLaughlin=1, ShaCarri Richardson=11, Gabby Thomas=3, Jordan Chiles=1, Deion Sanders=13, Hezley Rivera=1, Michael Jordan=3, Noah Lyles=4, Simone Biles=11, Patrick Mahomes=4, Breanna Stewart=1}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"tmlll171185520556398321f79f598\",\n", + " \"sports_likes\": \"{wnba=3, nba active=23, uss=41, boxing=1, nba legends=10, nfl active=6, college football=19, tennis=6}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"LeBron James\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12948\",\n", + " ),\n", + " UserData(\n", + " id=\"8670f776-34c9-4866-ab54-a6274d18371b\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 98702, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 98703, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 58,\n", + " \"city\": \"Lees Summit\",\n", + " \"entity_likes\": \"{Others=72, Tara Davis Woodhall=2, Elaine Thompson=1, Serena Williams=5, Rebeca Andrade=4, Jade Carey=1, Sydney McLaughlin=2, ShaCarri Richardson=17, Dawn Staley=1, Usain Bolt=1, Leanne Wong=1, Jordan Chiles=1, Olivia Dunne=4, Dwayne Johnson=1, Michael Jordan=1, Fred Richards=1, Noah Lyles=6, Simone Biles=18}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"pc74h17112247885896d95092a0b9a\",\n", + " \"sports_likes\": \"{soccer=2, golf=1, nba active=1, uss=90, boxing=2, nba legends=1, college football=1, tennis=41}\",\n", + " \"state\": \"MO\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"google news\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12947\",\n", + " ),\n", + " UserData(\n", + " id=\"4f4ece6c-f152-44f0-9670-a891b5a631a4\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 88948, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 88949, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 68,\n", + " \"city\": \"Columbia\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=10, Others=68, Olivia Dunne=1, Jim Harbaugh=1, Denny Hamlin=4, Kyle Busch=7, Tony Stewart=17, Bubba Wallace=2, Michael Jordan=4, Michael Phelps=1, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"bqmmm17001688390332454dcc4263c\",\n", + " \"sports_likes\": \"{soccer=1, nba active=1, uss=2, nascar=105, nfl active=4, college football=3, others=1}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12946\",\n", + " ),\n", + " UserData(\n", + " id=\"11897eab-1207-49e4-b837-4349430af046\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 79545, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 79546, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 28,\n", + " \"city\": \"Cheyenne\",\n", + " \"entity_likes\": \"{Others=107, Dan Quinn=2, Shaquille ONeal=1, Kyle Busch=14, Tony Stewart=30, Dale Earnhardt Jr=18, Ronda Rousey=1, Jim Harbaugh=1, Denny Hamlin=9, Bubba Wallace=3, Dwayne Johnson=1, Michael Jordan=7, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"dpq7z1699711677856913ec1ef1bc0\",\n", + " \"sports_likes\": \"{mlb=1, ufc=1, wwe=6, nascar=183, nba legends=1, nfl active=2, college football=1}\",\n", + " \"state\": \"WY\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12945\",\n", + " ),\n", + " UserData(\n", + " id=\"4bb62e7a-91c3-4dcf-b2b7-d37570bf0b26\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 70255, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 70256, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 81,\n", + " \"city\": \"Saint Paul\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=17, Others=48, LeBron James=1, Kyle Busch=13, Denny Hamlin=6, Tony Stewart=30, Bubba Wallace=1, Michael Jordan=5}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"hls4x17001518893566a2d13263b82\",\n", + " \"sports_likes\": \"{boxing=1, nba legends=2, nba active=2, nascar=115, others=1}\",\n", + " \"state\": \"MN\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12944\",\n", + " ),\n", + " UserData(\n", + " id=\"59deb2a1-69aa-44b2-9803-a0f54c5e06da\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 60675, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 60675, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 75,\n", + " \"city\": \"Trenton\",\n", + " \"entity_likes\": \"{Others=72, Sean Payton=1, Bill Belichick=1, Kyle Busch=8, Tom Brady=1, Tony Stewart=24, Tiger Woods=1, Caitlin Clark=2, Dale Earnhardt Jr=31, Olivia Dunne=1, Jim Harbaugh=2, Denny Hamlin=9, Michael Jordan=4, Patrick Mahomes=11}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"ptdl61700009055720849e01a69071\",\n", + " \"sports_likes\": \"{wnba=1, golf=7, nba active=2, uss=2, nascar=132, nba legends=2, nfl active=15, nfl legends=4, college football=3}\",\n", + " \"state\": \"NJ\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12943\",\n", + " ),\n", + " UserData(\n", + " id=\"f125df03-84d3-4535-b65a-c8d87b16ddb9\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 51231, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 51231, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 78,\n", + " \"city\": \"Charleston\",\n", + " \"entity_likes\": \"{Others=94, Tara Davis Woodhall=1, Shaquille ONeal=3, Serena Williams=4, LeBron James=2, Kyle Busch=18, Tom Brady=1, Tony Stewart=15, Bronny James=1, Tiger Woods=2, Michael Phelps=1, Dale Earnhardt Jr=22, Olivia Dunne=1, Deion Sanders=32, Denny Hamlin=14, Bubba Wallace=5, Michael Jordan=5, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"scmkg1708381346790bcc19c11a58a\",\n", + " \"sports_likes\": \"{golf=3, nba active=2, uss=3, nascar=132, nba legends=2, nfl active=5, college football=73, tennis=5}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12942\",\n", + " ),\n", + " UserData(\n", + " id=\"c1d7d255-89f4-4321-a867-0e178cf4058b\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 41801, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 41802, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 28,\n", + " \"city\": \"Brockport\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=28, Others=96, Kyle Busch=46, Denny Hamlin=16, Tony Stewart=33, Bubba Wallace=5, Michael Jordan=8}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"nwtts16996494221681db0ba32c9db\",\n", + " \"sports_likes\": \"{nascar=232}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12941\",\n", + " ),\n", + " UserData(\n", + " id=\"9b039398-cf6f-472d-936b-c73d07803135\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 32370, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 32371, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 28,\n", + " \"city\": \"New York\",\n", + " \"entity_likes\": \"{Others=18, Tara Davis Woodhall=1, Shaquille ONeal=10, Serena Williams=7, LeBron James=1, Rebeca Andrade=1, Angel Reese=2, Bronny James=3, Caitlin Clark=7, Sydney McLaughlin=1, Shericka Jackson=3, ShaCarri Richardson=28, Gabby Thomas=9, Usain Bolt=6, Lewis Hamilton=1, Deion Sanders=1, Shilese Jones=1, Noah Lyles=3, Simone Biles=19, Patrick Mahomes=3}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"8c5pg1711777331660f0b68c3d64b1\",\n", + " \"sports_likes\": \"{soccer=1, wnba=4, golf=1, nba active=14, uss=80, nba legends=11, nfl active=4, college football=4, tennis=6}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"ShaCarri Richardson\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12940\",\n", + " ),\n", + " UserData(\n", + " id=\"b0fe1361-fdd7-4f67-96f7-798451fe4484\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 23002, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 23003, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 79,\n", + " \"city\": \"Kansas City\",\n", + " \"entity_likes\": \"{Others=79, LeBron James=2, Kyle Busch=20, Tony Stewart=26, Bronny James=1, Dale Earnhardt Jr=23, Deion Sanders=5, Denny Hamlin=14, Bubba Wallace=5, Michael Jordan=13, Simone Biles=1, Patrick Mahomes=8}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"rd4h217089830770857e8f0b192c88\",\n", + " \"sports_likes\": \"{nba active=1, uss=1, nascar=171, nba legends=5, nfl active=10, college football=8, others=1}\",\n", + " \"state\": \"KS\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12939\",\n", + " ),\n", + " UserData(\n", + " id=\"b67a6449-5b9c-4b87-8346-27d116ae27a7\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 13629, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 13630, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 70,\n", + " \"city\": \"Opelika\",\n", + " \"entity_likes\": \"{Others=53, Shaquille ONeal=9, Serena Williams=10, LeBron James=2, Tiger Woods=1, Caitlin Clark=1, Shericka Jackson=1, ShaCarri Richardson=22, Gabby Thomas=1, Lewis Hamilton=1, Jordan Chiles=1, Deion Sanders=11, Michael Jordan=3, Noah Lyles=7, Simone Biles=54}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"dbnvb169583353812390a22fad27f5\",\n", + " \"sports_likes\": \"{golf=1, nba active=10, uss=87, nba legends=13, nfl active=2, bodybuilding=1, college football=27, tennis=36}\",\n", + " \"state\": \"AL\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12938\",\n", + " ),\n", + " UserData(\n", + " id=\"a9e8b541-d4f3-46fa-92b0-6eb637346291\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 4194, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 23, 4194, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 62,\n", + " \"city\": \"Center Valley\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=9, Others=44, Olivia Dunne=1, Denny Hamlin=9, Kyle Busch=4, Tom Brady=2, Tony Stewart=20, Bubba Wallace=1, Dana White=1, Michael Jordan=8, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"ddl8f17154224447419186086c3ab8\",\n", + " \"sports_likes\": \"{uss=1, nascar=90, nfl active=11, nfl legends=1, college football=1, others=1}\",\n", + " \"state\": \"PA\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12937\",\n", + " ),\n", + " UserData(\n", + " id=\"7a12b572-5b05-4e13-bbf8-766625039d37\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 994714, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 994714, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 75,\n", + " \"city\": \"Eustis\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=40, Others=95, Kyle Busch=24, Denny Hamlin=21, Tony Stewart=36, Bubba Wallace=7, Michael Jordan=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"r5fh816999245271800a0ef1600c34\",\n", + " \"sports_likes\": \"{nba legends=1, golf=1, f1=1, uss=2, nascar=224}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12936\",\n", + " ),\n", + " UserData(\n", + " id=\"68ac029e-4e9d-4448-9f6b-c6b9d7d3e624\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 985394, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 985394, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 65,\n", + " \"city\": \"Tacoma\",\n", + " \"entity_likes\": \"{Others=61, Shaquille ONeal=6, Sean Payton=2, Joe Rogan=6, LeBron James=9, Tom Brady=1, Caitlin Clark=1, Usain Bolt=1, Khabib=11, Deion Sanders=1, Jon Jones=3, Dana White=17, Michael Jordan=12, Conor McGregor=5, Derek Jeter=1, Floyd Mayweather=3, Simone Biles=1}\",\n", + " \"latest_sport_read\": \"ufc\",\n", + " \"ppid\": \"jwpbk1710851952483930fbca3faa1\",\n", + " \"sports_likes\": \"{mlb=1, ufc=67, nba active=34, uss=2, boxing=14, nba legends=18, nfl active=2, college football=3}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"Dana White\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"ufc\",\n", + " },\n", + " name=\"user_12935\",\n", + " ),\n", + " UserData(\n", + " id=\"4791ddfe-36ba-44ea-8768-8ec1cc741721\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 976068, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 976069, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 79,\n", + " \"city\": \"Palm Bay\",\n", + " \"entity_likes\": \"{Others=35, Tara Davis Woodhall=2, Shaquille ONeal=2, Serena Williams=23, Sean Payton=2, Joe Rogan=2, LeBron James=1, Tiger Woods=1, Caitlin Clark=1, Sydney McLaughlin=7, ShaCarri Richardson=2, Gabby Thomas=3, Jordan Chiles=1, Jim Harbaugh=1, Deion Sanders=1, Michael Jordan=1, Noah Lyles=1, Simone Biles=16, Patrick Mahomes=10}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"g24pt17036688576702ad1c9fe8002\",\n", + " \"sports_likes\": \"{soccer=2, golf=1, ufc=2, nba active=4, uss=37, boxing=1, nba legends=6, nfl active=19, college football=6, tennis=34}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Serena Williams\",\n", + " \"top_sources\": \"unknown\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12934\",\n", + " ),\n", + " UserData(\n", + " id=\"f6968f2b-d288-4029-b578-2a785bd993aa\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 966687, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 966687, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 82,\n", + " \"city\": \"Silsbee\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=2, Others=43, Serena Williams=3, Rebeca Andrade=1, Caitlin Clark=1, Femke Bol=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Gabby Thomas=6, Jordan Chiles=3, Deion Sanders=27, Noah Lyles=2, Simone Biles=19, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"wxn521702308063818c5d9042f6d7f\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, nba active=5, uss=44, nba legends=1, nfl active=6, nfl legends=1, college football=52, tennis=7}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12933\",\n", + " ),\n", + " UserData(\n", + " id=\"a4052869-fd0b-4122-bae2-55344dd8219d\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 957274, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 957275, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 48,\n", + " \"city\": \"Ogden\",\n", + " \"entity_likes\": \"{Others=35, Tara Davis Woodhall=2, Elaine Thompson=1, Serena Williams=1, Quincy Wilson=1, Rebeca Andrade=2, Jade Carey=1, Katie Ledecky=1, Femke Bol=1, Sydney McLaughlin=7, Dale Earnhardt Jr=1, ShaCarri Richardson=14, Gabby Thomas=1, Usain Bolt=2, Jordan Chiles=11, Olivia Dunne=5, Dwayne Johnson=1, Noah Lyles=9, Simone Biles=37}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"c65tr17133843247896d0a3238447f\",\n", + " \"sports_likes\": \"{wnba=2, uss=119, nascar=2, boxing=2, nba legends=3, nfl active=2, tennis=3}\",\n", + " \"state\": \"UT\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"google news\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12932\",\n", + " ),\n", + " UserData(\n", + " id=\"2710a042-25b4-42b0-b554-78a4be49fd4d\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 947834, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 947834, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 69,\n", + " \"city\": \"Aiken\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=2, Shaquille ONeal=4, Joe Rogan=1, Bronny James=2, Katie Ledecky=1, Caitlin Clark=6, Chennedy Carter=2, Femke Bol=2, Sydney McLaughlin=10, ShaCarri Richardson=15, Gabby Thomas=5, Jordan Chiles=1, Deion Sanders=4, Noah Lyles=16, Simone Biles=6, Others=41, LeBron James=8, Quincy Wilson=1, Angel Reese=4, Michael Phelps=1, Usain Bolt=2, Antonio Pierce=1, Jim Harbaugh=1, Dana White=1, Michael Jordan=4, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"d2wtt1704718909169e69fa8b21e5a\",\n", + " \"sports_likes\": \"{soccer=1, wnba=10, ufc=2, nba active=16, uss=73, nba legends=16, nfl active=6, nfl legends=1, nba=2, college football=16}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Noah Lyles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12931\",\n", + " ),\n", + " UserData(\n", + " id=\"57879127-ebcb-4b69-9180-8480f16335dd\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 938443, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 938444, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 31,\n", + " \"city\": \"Clovis\",\n", + " \"entity_likes\": \"{Others=28, Tara Davis Woodhall=1, Dan Quinn=1, Shaquille ONeal=5, Fred Kerley=1, LeBron James=17, Tom Brady=3, Bronny James=1, Tiger Woods=4, Caitlin Clark=3, Michael Phelps=1, ShaCarri Richardson=4, Dawn Staley=4, Usain Bolt=2, Antonio Pierce=1, Deion Sanders=10, Michael Jordan=5, Noah Lyles=5, Floyd Mayweather=1, Simone Biles=4, Patrick Mahomes=3, Breanna Stewart=1}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"858wj1702596449016153885ddccb1\",\n", + " \"sports_likes\": \"{wnba=6, golf=6, nba active=21, uss=23, boxing=1, nba legends=11, nfl active=14, nfl legends=2, nba=1, college football=20}\",\n", + " \"state\": \"CA\",\n", + " \"top_entity\": \"LeBron James\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12930\",\n", + " ),\n", + " UserData(\n", + " id=\"5829bcf0-e10a-4aab-96ee-c2eba241f7fb\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 929031, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 929032, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 46,\n", + " \"city\": \"Columbia\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=2, Brittney Griner=1, Shaquille ONeal=1, Bill Belichick=1, Caitlin Clark=4, Sydney McLaughlin=6, ShaCarri Richardson=6, Dawn Staley=2, Gabby Thomas=6, Deion Sanders=9, Noah Lyles=7, Simone Biles=23, Others=44, Serena Williams=3, Fred Kerley=1, LeBron James=2, Quincy Wilson=1, Rebeca Andrade=2, Angel Reese=1, Tiger Woods=1, Michael Phelps=1, Steph Curry=1, Michael Jordan=4, Conor McGregor=1, Floyd Mayweather=1, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"zs5kz1717759865786985be4901418\",\n", + " \"sports_likes\": \"{wnba=4, golf=1, ufc=2, nba active=28, uss=62, nascar=1, boxing=1, nba legends=7, nfl active=6, college football=14, tennis=9}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12929\",\n", + " ),\n", + " UserData(\n", + " id=\"69cac2d0-74c0-4f43-b77b-4bdb555a0bf7\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 919603, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 919603, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 61,\n", + " \"city\": \"Fredericksburg\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=2, Elaine Thompson=1, Shaquille ONeal=6, Joe Rogan=1, Tom Brady=1, Kyle Busch=7, Tony Stewart=13, Jade Carey=1, Lexi Thompson=2, Caitlin Clark=2, Femke Bol=1, Sydney McLaughlin=3, ShaCarri Richardson=29, Alex Rodriguez=1, Gabby Thomas=4, Christian Coleman=1, Ronda Rousey=1, Khabib=1, Olivia Dunne=3, Jordan Chiles=1, Deion Sanders=12, Shilese Jones=2, Noah Lyles=10, Simone Biles=39, Others=152, Serena Williams=12, LeBron James=2, Sabrina Ionescu=1, Angel Reese=3, Tiger Woods=1, Michael Phelps=3, Dale Earnhardt Jr=9, Shericka Jackson=1, Usain Bolt=4, Jim Harbaugh=1, Denny Hamlin=2, Michael Jordan=6, Derek Jeter=1, Patrick Mahomes=8}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"xpsbb17105028536951c3433f9aa2c\",\n", + " \"sports_likes\": \"{soccer=10, wnba=6, mlb=2, tennis=66, golf=19, ufc=4, nba active=7, uss=122, nascar=65, boxing=1, nba legends=12, nfl active=15, college football=21}\",\n", + " \"state\": \"VA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12928\",\n", + " ),\n", + " UserData(\n", + " id=\"adea3aa6-4a01-44b8-98c2-0e43407ea432\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 910254, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 910254, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 67,\n", + " \"city\": \"Camano Island\",\n", + " \"entity_likes\": \"{Cooper Flagg=1, Others=45, Shaquille ONeal=12, Sean Payton=2, Joe Rogan=1, LeBron James=15, Tom Brady=1, Bronny James=1, Mike Tyson=2, Caitlin Clark=1, Michael Phelps=1, Ronda Rousey=1, Khabib=1, Deion Sanders=3, Andy Reid=1, Dana White=3, Michael Jordan=8, Conor McGregor=1, Floyd Mayweather=2, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"lmrkx1708497751116de19a2606296\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, nba=2, tennis=1, ufc=9, nba active=39, uss=1, nascar=1, boxing=6, nba legends=23, nfl active=15, nfl legends=1, college football=8}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"LeBron James\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nba active\",\n", + " },\n", + " name=\"user_12927\",\n", + " ),\n", + " UserData(\n", + " id=\"1dac7c84-41d4-4bb5-8b53-31599b7356b5\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 901034, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 901034, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 77,\n", + " \"city\": \"Debary\",\n", + " \"entity_likes\": \"{Jake Paul=1, Others=33, Shaquille ONeal=2, Joe Rogan=11, Kyle Busch=2, Tom Brady=1, Tony Stewart=5, Mike Tyson=1, Dale Earnhardt Jr=9, Khabib=11, Denny Hamlin=1, Bubba Wallace=1, Dana White=14, Conor McGregor=3, Michael Jordan=4, Floyd Mayweather=3}\",\n", + " \"latest_sport_read\": \"ufc\",\n", + " \"ppid\": \"f6vz21709779959706885e73ccc16f\",\n", + " \"sports_likes\": \"{boxing=7, nba legends=3, ufc=53, nascar=38, college football=1}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Dana White\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"ufc\",\n", + " },\n", + " name=\"user_12926\",\n", + " ),\n", + " UserData(\n", + " id=\"03d0a0bc-4161-4e86-a3e1-de6912445767\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 891431, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 891432, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Ridgewood\",\n", + " \"entity_likes\": \"{Others=57, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=6, Serena Williams=13, LeBron James=5, Bronny James=2, Caitlin Clark=2, Sydney McLaughlin=2, ShaCarri Richardson=14, Dawn Staley=2, Gabby Thomas=6, Usain Bolt=1, Ronda Rousey=1, Deion Sanders=27, Michael Jordan=9, Noah Lyles=1, Floyd Mayweather=1, Simone Biles=9, Patrick Mahomes=22}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"dcfht17150950410146cff2e35d84a\",\n", + " \"sports_likes\": \"{soccer=2, wnba=1, ufc=2, nba active=20, uss=40, boxing=2, nba legends=15, nfl active=25, bodybuilding=1, college football=57, tennis=17}\",\n", + " \"state\": \"NJ\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12925\",\n", + " ),\n", + " UserData(\n", + " id=\"8a2f901f-c708-4e1a-bd9f-1ea38a2bcbc8\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 882463, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 882463, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 76,\n", + " \"city\": \"Olympia\",\n", + " \"entity_likes\": \"{Others=63, Shaquille ONeal=1, LeBron James=1, Kelsey Plum=1, Kyle Busch=14, Tony Stewart=26, Sabrina Ionescu=1, Angel Reese=2, Caitlin Clark=13, Femke Bol=1, Sydney McLaughlin=3, Dale Earnhardt Jr=17, ShaCarri Richardson=7, Gabby Thomas=2, Usain Bolt=1, Olivia Dunne=2, Jim Harbaugh=1, Bubba Wallace=3, Michael Jordan=5, Noah Lyles=1, Simone Biles=1, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"2tdkc170002411440605036a5e505c\",\n", + " \"sports_likes\": \"{wnba=14, golf=1, nba active=1, uss=21, nascar=122, nfl active=3, college football=6}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12924\",\n", + " ),\n", + " UserData(\n", + " id=\"09b6790c-fa83-4d65-b4e8-99f0afda4469\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 873453, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 873455, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Sarasota\",\n", + " \"entity_likes\": \"{Others=31, Tara Davis Woodhall=1, Serena Williams=2, Kyle Busch=7, Tony Stewart=7, Rebeca Andrade=1, Bronny James=1, Sydney McLaughlin=4, Arnold Schwarzenegger=1, ShaCarri Richardson=4, Gabby Thomas=2, Usain Bolt=1, Jordan Chiles=4, Olivia Dunne=4, Hezley Rivera=1, Denny Hamlin=1, Dwayne Johnson=1, Noah Lyles=4, Simone Biles=23, Patrick Mahomes=3}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"v8gs41709754154716e47e1ba34022\",\n", + " \"sports_likes\": \"{golf=6, uss=65, nascar=20, nba legends=1, nfl active=7, bodybuilding=1, tennis=3}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"google news\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12923\",\n", + " ),\n", + " UserData(\n", + " id=\"bc35fd5c-36f5-4605-80e7-debc3bfe913c\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 864410, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 864410, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 48,\n", + " \"city\": \"Clay City\",\n", + " \"entity_likes\": \"{Others=25, Tara Davis Woodhall=4, Shaquille ONeal=1, Serena Williams=5, Quincy Wilson=1, LeBron James=4, Rebeca Andrade=2, Angel Reese=1, Caitlin Clark=6, Michael Phelps=1, Sydney McLaughlin=2, ShaCarri Richardson=8, Gabby Thomas=3, Usain Bolt=1, Jordan Chiles=4, Olivia Dunne=3, Deion Sanders=2, Simone Biles=41, Patrick Mahomes=19}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"m2nlr1707497158876bf1fa29af4ce\",\n", + " \"sports_likes\": \"{wnba=4, nba active=6, uss=81, nba legends=3, nfl active=22, college football=8, tennis=9}\",\n", + " \"state\": \"KY\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12922\",\n", + " ),\n", + " UserData(\n", + " id=\"0f1ad82e-d7ad-4a7b-bd6c-fd11737bda2c\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 855484, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 855484, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 40,\n", + " \"city\": \"Lake Saint Louis\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=12, Others=59, Jim Harbaugh=1, Denny Hamlin=4, Kyle Busch=14, Tony Stewart=23, Bubba Wallace=4, Angel Reese=2, Michael Jordan=7, Caitlin Clark=4}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"26vvk170010658652551227fba4940\",\n", + " \"sports_likes\": \"{wnba=2, nfl active=1, nascar=121, college football=5, others=1}\",\n", + " \"state\": \"MO\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12921\",\n", + " ),\n", + " UserData(\n", + " id=\"a26c312e-214a-4161-a7cb-23fd63bf0c0f\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 846581, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 846581, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 70,\n", + " \"city\": \"Albuquerque\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=9, Others=53, Kyle Busch=15, Denny Hamlin=11, Tony Stewart=17, Bubba Wallace=3, Michael Jordan=7}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"wb9ct1714389173569740deb788336\",\n", + " \"sports_likes\": \"{nascar=115}\",\n", + " \"state\": \"NM\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12920\",\n", + " ),\n", + " UserData(\n", + " id=\"d598001a-4138-4580-8a43-a72f22c1af31\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 837235, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 837235, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 49,\n", + " \"city\": \"Alameda\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=9, Others=39, Ronda Rousey=1, Denny Hamlin=5, Kyle Busch=18, Tony Stewart=22, Bubba Wallace=1, Michael Jordan=9, Tiger Woods=2, Floyd Mayweather=1}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"bnsqp170048143696497809eefe5c8\",\n", + " \"sports_likes\": \"{nba legends=1, golf=3, ufc=2, nascar=100, others=1}\",\n", + " \"state\": \"CA\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12919\",\n", + " ),\n", + " UserData(\n", + " id=\"2348102e-5976-4387-966d-b441ae749af2\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 828289, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 828290, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 63,\n", + " \"city\": \"Dayton\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=9, Others=54, Kyle Busch=43, Denny Hamlin=15, Tony Stewart=18, Bubba Wallace=6, Michael Jordan=5}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"525d217001485532440dc6fbf599fa\",\n", + " \"sports_likes\": \"{nascar=149, nba active=1}\",\n", + " \"state\": \"OH\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"facebook\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12918\",\n", + " ),\n", + " UserData(\n", + " id=\"fc21a7f7-f729-4979-bd8a-775df9d832a5\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 819266, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 819266, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 54,\n", + " \"city\": \"Piedmont\",\n", + " \"entity_likes\": \"{Others=111, Sean Payton=1, LeBron James=1, Kyle Busch=16, Tom Brady=1, Tony Stewart=28, Dale Earnhardt Jr=28, Deion Sanders=3, Jim Harbaugh=2, Denny Hamlin=8, Bubba Wallace=6, Michael Jordan=13, Simone Biles=2, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"q989617041923638193d65e90facdf\",\n", + " \"sports_likes\": \"{uss=4, nascar=201, nfl active=6, nfl legends=1, f1=1, college football=10, tennis=1}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12917\",\n", + " ),\n", + " UserData(\n", + " id=\"df86ac35-4267-4d4a-bc6d-a1d5e9d3f536\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 810258, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 810259, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 44,\n", + " \"city\": \"Pewee Valley\",\n", + " \"entity_likes\": \"{Others=53, Kyle Busch=14, Tony Stewart=32, Rebeca Andrade=1, Dale Earnhardt Jr=10, ShaCarri Richardson=1, Jordan Chiles=2, Denny Hamlin=1, Bubba Wallace=1, Michael Jordan=5, Noah Lyles=1, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"svgvl17097394611976e93f397fa74\",\n", + " \"sports_likes\": \"{golf=1, ufc=1, nba active=1, uss=5, nascar=107, boxing=1, nfl active=6, others=1}\",\n", + " \"state\": \"KY\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12916\",\n", + " ),\n", + " UserData(\n", + " id=\"7d561865-34a2-4d1f-a630-47de9d5fdc1b\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 801246, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 801247, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 68,\n", + " \"city\": \"Savannah\",\n", + " \"entity_likes\": \"{Others=88, Kyle Busch=9, Tony Stewart=21, Caitlin Clark=3, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=22, Olivia Dunne=1, Denny Hamlin=20, Bubba Wallace=5, Michael Jordan=6, Simone Biles=4, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"tg8gs171063360181733df79386827\",\n", + " \"sports_likes\": \"{soccer=1, wnba=3, nfl active=1, uss=7, nascar=171}\",\n", + " \"state\": \"GA\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12915\",\n", + " ),\n", + " UserData(\n", + " id=\"7c58a3e2-8873-46a9-a0c3-4b20318b081f\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 792043, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 792043, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 76,\n", + " \"city\": \"Riverside\",\n", + " \"entity_likes\": \"{Others=69, Dan Quinn=1, Shaquille ONeal=4, Sean Payton=1, LeBron James=13, Shohei Ohtani=1, Angel Reese=1, Caitlin Clark=2, ShaCarri Richardson=3, Dawn Staley=2, Alex Rodriguez=3, Gabby Thomas=1, Usain Bolt=1, Jim Harbaugh=3, Deion Sanders=15, Michael Jordan=8, Noah Lyles=5, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"mlb\",\n", + " \"ppid\": \"dhvgg170372249486048a6d1b10d9e\",\n", + " \"sports_likes\": \"{wnba=1, mlb=1, nba active=44, uss=12, nba legends=20, nfl active=4, bodybuilding=1, nfl legends=1, college football=50}\",\n", + " \"state\": \"CA\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12914\",\n", + " ),\n", + " UserData(\n", + " id=\"b1e7823d-8d9d-4f5b-a069-5d70d76231f5\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 782912, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 782913, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 47,\n", + " \"city\": \"Santa Anna\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=14, Others=68, Joe Rogan=1, Denny Hamlin=11, Kyle Busch=11, Tony Stewart=11, Bubba Wallace=3, Michael Jordan=1, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"mlb\",\n", + " \"ppid\": \"dk48l1709765986765906644fc5308\",\n", + " \"sports_likes\": \"{mlb=1, golf=7, nascar=106, boxing=1, nfl active=6, college football=2, others=1}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12913\",\n", + " ),\n", + " UserData(\n", + " id=\"3c288b82-d4f0-455a-ab15-9fd35c56c3cc\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 773914, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 773915, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 34,\n", + " \"city\": \"Miami\",\n", + " \"entity_likes\": \"{Others=51, Tara Davis Woodhall=5, Shaquille ONeal=8, Serena Williams=4, LeBron James=7, Quincy Wilson=1, Angel Reese=1, Bronny James=1, Caitlin Clark=3, Sydney McLaughlin=1, Shericka Jackson=1, ShaCarri Richardson=9, Gabby Thomas=1, Usain Bolt=1, Deion Sanders=14, Michael Jordan=6, Noah Lyles=5, Simone Biles=14, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"xvjmr1713850614603af32d6f57d0d\",\n", + " \"sports_likes\": \"{wnba=2, nba active=13, uss=47, boxing=2, nba legends=20, nfl active=10, college football=36, tennis=8}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12912\",\n", + " ),\n", + " UserData(\n", + " id=\"80278151-092a-4fdf-87a3-3e101532932b\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 764992, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 764992, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 39,\n", + " \"city\": \"Detroit\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=13, Others=44, Ronda Rousey=1, Denny Hamlin=10, Kyle Busch=11, Tony Stewart=18, Bubba Wallace=5, Dwayne Johnson=1, Michael Jordan=8, Patrick Mahomes=3}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"7mlrt17134201906879e33470ff91f\",\n", + " \"sports_likes\": \"{nfl active=4, ufc=2, nba active=1, wwe=5, nascar=102}\",\n", + " \"state\": \"MI\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12911\",\n", + " ),\n", + " UserData(\n", + " id=\"52f7b4a3-5561-496a-ad78-199dabc72ab9\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 756084, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 756085, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 77,\n", + " \"city\": \"Pittsburgh\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=34, Others=127, Shaquille ONeal=1, Denny Hamlin=22, Kyle Busch=49, Tony Stewart=38, Bubba Wallace=5, Michael Jordan=7, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"cx94h16997512974183054eddd5397\",\n", + " \"sports_likes\": \"{mlb=1, uss=1, nascar=278, nba legends=1, nfl active=3, others=1}\",\n", + " \"state\": \"PA\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12910\",\n", + " ),\n", + " UserData(\n", + " id=\"2ee43932-1db9-4d20-ac28-aa05ff237d02\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 746903, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 746904, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 66,\n", + " \"city\": \"Pico Rivera\",\n", + " \"entity_likes\": \"{Others=61, Tara Davis Woodhall=1, Shaquille ONeal=8, Serena Williams=1, LeBron James=15, Angel Reese=1, Bronny James=2, Caitlin Clark=2, ShaCarri Richardson=4, Gabby Thomas=3, Usain Bolt=1, Jordan Chiles=2, Jim Harbaugh=1, Deion Sanders=14, Shilese Jones=1, Michael Jordan=11, Noah Lyles=1, Floyd Mayweather=3, Simone Biles=43, Patrick Mahomes=7}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"wgwgv1702602796267c4e2c1444ec2\",\n", + " \"sports_likes\": \"{wnba=6, ufc=1, nba active=41, uss=63, boxing=3, nba legends=27, nfl active=11, college football=28, tennis=2}\",\n", + " \"state\": \"CA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12909\",\n", + " ),\n", + " UserData(\n", + " id=\"c62af20f-44a1-4a0e-ba0f-a287154e66b5\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 737773, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 737774, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 42,\n", + " \"city\": \"Washington\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Others=26, Serena Williams=15, Jade Carey=1, Tiger Woods=6, Katie Ledecky=1, Sydney McLaughlin=1, ShaCarri Richardson=1, Gabby Thomas=2, Jordan Chiles=3, Noah Lyles=2, Simone Biles=43, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"pswmm1702597843946788871509a92\",\n", + " \"sports_likes\": \"{nba legends=1, golf=7, nfl active=8, uss=70, tennis=20}\",\n", + " \"state\": \"DC\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12908\",\n", + " ),\n", + " UserData(\n", + " id=\"356e1913-cc5a-4115-90cc-b8bd1cbb1198\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 728629, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 728629, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 65,\n", + " \"city\": \"Arlington\",\n", + " \"entity_likes\": \"{Others=45, Tara Davis Woodhall=2, Shaquille ONeal=8, Serena Williams=5, LeBron James=2, Rebeca Andrade=2, Jade Carey=1, Caitlin Clark=2, Sydney McLaughlin=1, Shericka Jackson=1, ShaCarri Richardson=9, Dawn Staley=1, Khabib=1, Jordan Chiles=1, Deion Sanders=5, Shilese Jones=1, Michael Jordan=4, Noah Lyles=3, Simone Biles=26, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"xr8nz1704585558664718420ef2699\",\n", + " \"sports_likes\": \"{wnba=1, ufc=1, nba active=11, uss=59, nascar=1, boxing=1, nba legends=16, nfl active=10, college football=9, tennis=17}\",\n", + " \"state\": \"VA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12907\",\n", + " ),\n", + " UserData(\n", + " id=\"7c13f49d-39e8-4855-9123-f2b1f8c8eaf0\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 719314, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 719315, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 25,\n", + " \"city\": \"Orlando\",\n", + " \"entity_likes\": \"{Cooper Flagg=1, Others=34, Tara Davis Woodhall=1, Shaquille ONeal=1, Serena Williams=4, Fred Kerley=2, LeBron James=6, Quincy Wilson=2, Rebeca Andrade=1, Bronny James=1, Tiger Woods=2, Sydney McLaughlin=2, ShaCarri Richardson=10, Dawn Staley=1, Gabby Thomas=6, Christian Coleman=1, Usain Bolt=1, Jordan Chiles=2, Deion Sanders=1, Michael Jordan=1, Noah Lyles=7, Simone Biles=13, Patrick Mahomes=6}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"6xjtk1719823166150a8c72c3631c2\",\n", + " \"sports_likes\": \"{wnba=1, golf=2, nba active=18, uss=52, nba legends=11, nfl active=8, college football=4, tennis=10}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12906\",\n", + " ),\n", + " UserData(\n", + " id=\"bf0228f7-2377-40f7-b96e-dd01b0999716\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 708604, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 708604, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 52,\n", + " \"city\": \"Belvidere\",\n", + " \"entity_likes\": \"{Others=68, Shaquille ONeal=4, Serena Williams=9, LeBron James=15, Mike Tyson=1, Caitlin Clark=1, Arnold Schwarzenegger=1, ShaCarri Richardson=6, Usain Bolt=1, Deion Sanders=39, Steph Curry=1, Dana White=1, Michael Jordan=8, Noah Lyles=1, Floyd Mayweather=1, Simone Biles=6}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"bdp5v17109341544614a950515bccc\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, ufc=1, nba active=31, uss=14, boxing=1, nba legends=15, nfl active=1, bodybuilding=1, college football=87, tennis=10}\",\n", + " \"state\": \"IL\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12905\",\n", + " ),\n", + " UserData(\n", + " id=\"33011adb-51a9-4e40-a191-71f4c46bc6f0\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 699019, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 699020, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 44,\n", + " \"city\": \"Covington\",\n", + " \"entity_likes\": \"{Others=64, Tara Davis Woodhall=5, Shaquille ONeal=5, Serena Williams=4, LeBron James=2, Quincy Wilson=1, Angel Reese=1, Bronny James=2, Caitlin Clark=1, Sydney McLaughlin=1, ShaCarri Richardson=14, Dawn Staley=2, Jordan Chiles=2, Deion Sanders=19, Noah Lyles=5, Simone Biles=34, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"lrg4k1711052054352e6732d52fafd\",\n", + " \"sports_likes\": \"{wnba=1, nba active=5, uss=77, nba legends=7, nfl active=6, college football=52, others=1, tennis=14}\",\n", + " \"state\": \"GA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12904\",\n", + " ),\n", + " UserData(\n", + " id=\"5d92dc5f-e732-4c47-a51c-36e14b24b40d\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 689862, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 689862, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 77,\n", + " \"city\": \"Onancock\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Dan Quinn=1, Shaquille ONeal=11, Sean Payton=1, Shohei Ohtani=1, Bronny James=2, Caitlin Clark=6, ShaCarri Richardson=41, Gabby Thomas=5, Christian Coleman=1, Olivia Dunne=1, Lewis Hamilton=1, Shilese Jones=1, Noah Lyles=3, Simone Biles=49, Others=54, Serena Williams=14, LeBron James=21, Rebeca Andrade=1, Shericka Jackson=1, Usain Bolt=5, Hezley Rivera=1, Michael Jordan=4, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"xgqjv1709163414272cbd5d8fc795a\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, mlb=1, nba active=38, uss=132, nascar=1, nba legends=16, nfl active=13, college football=5, tennis=20}\",\n", + " \"state\": \"VA\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12903\",\n", + " ),\n", + " UserData(\n", + " id=\"0dd55872-aade-4a30-8f3e-667c7c7cedfc\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 680446, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 680447, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 49,\n", + " \"city\": \"Smyrna\",\n", + " \"entity_likes\": \"{Others=42, Shaquille ONeal=3, Serena Williams=6, LeBron James=2, Rebeca Andrade=1, Sabrina Ionescu=1, Caitlin Clark=6, Chennedy Carter=1, ShaCarri Richardson=5, Gabby Thomas=1, Usain Bolt=1, Olivia Dunne=5, Noah Lyles=1, Simone Biles=18, Patrick Mahomes=17}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"cjqr717058832849099d2595c01238\",\n", + " \"sports_likes\": \"{soccer=27, wnba=5, nba active=7, uss=40, nba legends=4, nfl active=19, college football=1, tennis=7}\",\n", + " \"state\": \"TN\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12902\",\n", + " ),\n", + " UserData(\n", + " id=\"7087f3c9-7fab-4f4f-a246-430987cf1619\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 670957, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 670957, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 61,\n", + " \"city\": \"Gaffney\",\n", + " \"entity_likes\": \"{Others=35, Tara Davis Woodhall=2, Serena Williams=6, LeBron James=1, Rebeca Andrade=1, Angel Reese=1, Tiger Woods=1, Caitlin Clark=1, Femke Bol=1, Sydney McLaughlin=6, Shericka Jackson=1, ShaCarri Richardson=10, Gabby Thomas=5, Usain Bolt=1, Jordan Chiles=2, Deion Sanders=3, Hezley Rivera=1, Noah Lyles=5, Simone Biles=14, Patrick Mahomes=11}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"mcfqw1710931584427753ab1215cef\",\n", + " \"sports_likes\": \"{wnba=2, golf=1, nba active=10, uss=61, boxing=1, nba legends=2, nfl active=17, college football=7, tennis=7}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12901\",\n", + " ),\n", + " UserData(\n", + " id=\"50280a66-500c-4f26-b908-298cae1cb856\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 661360, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 661360, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 57,\n", + " \"city\": \"Las Vegas\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=5, Others=40, Kyle Busch=8, Denny Hamlin=8, Tony Stewart=21, Bubba Wallace=2, Michael Jordan=7, Patrick Mahomes=17}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"vz58p1711915383606186164440658\",\n", + " \"sports_likes\": \"{golf=1, nba active=1, nascar=85, nba legends=2, nfl active=18, f1=1}\",\n", + " \"state\": \"NV\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12900\",\n", + " ),\n", + " UserData(\n", + " id=\"bf972c3e-b56e-4db0-92a3-de6ed2f1693e\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 652032, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 652032, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 49,\n", + " \"city\": \"Bethesda\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=25, Others=84, Usain Bolt=1, Denny Hamlin=24, Kyle Busch=26, Tony Stewart=29, Bubba Wallace=8, Dana White=1, Michael Jordan=12}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"wxhns17000026850039e36acaeab86\",\n", + " \"sports_likes\": \"{nfl active=1, ufc=1, uss=2, nascar=205, others=1}\",\n", + " \"state\": \"MD\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12899\",\n", + " ),\n", + " UserData(\n", + " id=\"296fdba9-8d3e-4fb6-80aa-37056913bb96\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 642496, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 642497, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 22,\n", + " \"city\": \"Federal Way\",\n", + " \"entity_likes\": \"{Others=72, Kyle Busch=25, Tony Stewart=19, Lexi Thompson=1, Tiger Woods=1, Dale Earnhardt Jr=11, Gabby Thomas=1, Jim Harbaugh=2, Denny Hamlin=9, Bubba Wallace=6, Michael Jordan=6, Simone Biles=3}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"kx7lm169965557346857c432163c0e\",\n", + " \"sports_likes\": \"{golf=6, uss=5, nascar=139, nba legends=1, nfl active=2, college football=2, others=1}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12898\",\n", + " ),\n", + " UserData(\n", + " id=\"c17e4a40-c9bd-462b-8186-5e25a7dfbd77\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 632774, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 632775, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 47,\n", + " \"city\": \"Fortson\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Others=60, Kyle Busch=16, Tony Stewart=35, Caitlin Clark=2, Dale Earnhardt Jr=18, Deion Sanders=7, Jim Harbaugh=1, Denny Hamlin=8, Bubba Wallace=4, Michael Jordan=10, Simone Biles=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"fx4kq1705641369609e6b80baca182\",\n", + " \"sports_likes\": \"{wnba=3, nba active=1, uss=3, nascar=134, nba legends=4, college football=18, others=1}\",\n", + " \"state\": \"GA\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"unknown\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12897\",\n", + " ),\n", + " UserData(\n", + " id=\"ff540ea2-98d5-431c-b11e-6ddd9b84fcec\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 622666, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 622666, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 53,\n", + " \"city\": \"Minneapolis\",\n", + " \"entity_likes\": \"{Tara Davis Woodhall=1, Others=63, Shaquille ONeal=2, Serena Williams=8, Bronny James=1, Tiger Woods=6, Caitlin Clark=1, Sydney McLaughlin=3, ShaCarri Richardson=4, Jordan Chiles=1, Deion Sanders=11, Jim Harbaugh=1, Dana White=1, Michael Jordan=1, Noah Lyles=1, Simone Biles=1}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"6g7m71700563060403f985afeb9662\",\n", + " \"sports_likes\": \"{soccer=1, golf=10, ufc=7, nba active=1, uss=13, boxing=2, nba legends=4, nfl active=1, college football=18, tennis=49}\",\n", + " \"state\": \"MN\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"tennis\",\n", + " },\n", + " name=\"user_12896\",\n", + " ),\n", + " UserData(\n", + " id=\"85bbe0ac-2a58-4a24-8e6a-9734d84222a4\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 613337, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 613338, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 51,\n", + " \"city\": \"Newark\",\n", + " \"entity_likes\": \"{Elaine Thompson=1, Shaquille ONeal=13, Kelsey Plum=1, Bronny James=1, Caitlin Clark=9, Chennedy Carter=1, Sydney McLaughlin=1, ShaCarri Richardson=22, Dawn Staley=1, Kishane Thompson=1, Gabby Thomas=3, Christian Coleman=1, Ronda Rousey=1, Olivia Dunne=1, Lewis Hamilton=1, Deion Sanders=42, Noah Lyles=6, Simone Biles=11, Others=92, Serena Williams=11, LeBron James=11, Angel Reese=9, Erriyon Knighton=1, Shericka Jackson=2, Usain Bolt=6, Dana White=3, Michael Jordan=9, Conor McGregor=1, Floyd Mayweather=4, Patrick Mahomes=3}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"djpf61715120261546d1ccbd7ed8c1\",\n", + " \"sports_likes\": \"{soccer=1, wnba=13, wwe=1, tennis=11, ufc=6, nba active=37, uss=71, boxing=8, nba legends=29, nfl active=12, nfl legends=1, college football=77, others=2}\",\n", + " \"state\": \"DE\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"college football\",\n", + " },\n", + " name=\"user_12895\",\n", + " ),\n", + " UserData(\n", + " id=\"8d194f69-3bca-41a8-a050-37194b7ddc8c\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 604267, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 604268, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 69,\n", + " \"city\": \"Greenville\",\n", + " \"entity_likes\": \"{Others=79, Dan Quinn=1, Sean Payton=1, LeBron James=3, Kelsey Plum=1, Kyle Busch=15, Tony Stewart=12, Tiger Woods=2, Michael Phelps=1, Dale Earnhardt Jr=14, ShaCarri Richardson=2, Gabby Thomas=1, Jim Harbaugh=2, Deion Sanders=1, Denny Hamlin=7, Bubba Wallace=4, Michael Jordan=9}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"xb96z1703264290857ca12bb3353d3\",\n", + " \"sports_likes\": \"{wnba=2, golf=8, nba active=9, uss=4, nascar=114, nba legends=1, nfl active=8, college football=9}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12894\",\n", + " ),\n", + " UserData(\n", + " id=\"415d81aa-3cb0-423f-b311-b107835d742e\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 594949, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 594949, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 59,\n", + " \"city\": \"Chattanooga\",\n", + " \"entity_likes\": \"{Others=43, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=12, Serena Williams=14, LeBron James=6, Rebeca Andrade=1, Angel Reese=1, Bronny James=1, Caitlin Clark=1, Sydney McLaughlin=3, Shericka Jackson=2, ShaCarri Richardson=37, Gabby Thomas=2, Steph Curry=1, Michael Jordan=3, Noah Lyles=5, Simone Biles=19, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"rm86f17130090035802efab297fd58\",\n", + " \"sports_likes\": \"{wnba=2, nba active=17, uss=76, nba legends=24, nfl active=13, nba=2, college football=2, tennis=21}\",\n", + " \"state\": \"TN\",\n", + " \"top_entity\": \"ShaCarri Richardson\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12893\",\n", + " ),\n", + " UserData(\n", + " id=\"887645d9-016e-44f0-b6da-366f96e9ac44\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 585637, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 585637, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 72,\n", + " \"city\": \"Greenville\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=16, Others=69, Kyle Busch=8, Denny Hamlin=8, Tony Stewart=15, Bubba Wallace=1, Michael Jordan=6}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"29q4g169967093544713c35215f36e\",\n", + " \"sports_likes\": \"{nascar=123}\",\n", + " \"state\": \"SC\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"internal link\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12892\",\n", + " ),\n", + " UserData(\n", + " id=\"b98a3e74-2e4f-409f-acce-9762b14aad64\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 576229, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 576230, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 57,\n", + " \"city\": \"Pine Bush\",\n", + " \"entity_likes\": \"{Others=57, Shaquille ONeal=7, Jakob Ingerbrigtsen=1, Serena Williams=9, LeBron James=7, Rebeca Andrade=1, Tiger Woods=2, Caitlin Clark=2, Michael Phelps=1, ShaCarri Richardson=5, Dawn Staley=1, Gabby Thomas=2, Christian Coleman=1, Deion Sanders=9, Michael Jordan=4, Noah Lyles=4, Simone Biles=4, Patrick Mahomes=1, Breanna Stewart=1}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"5qj79171104912391278a511b5bf51\",\n", + " \"sports_likes\": \"{wnba=1, golf=4, nba active=23, uss=25, nascar=1, boxing=2, nba legends=13, nfl active=2, college football=23, tennis=25}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"tennis\",\n", + " },\n", + " name=\"user_12891\",\n", + " ),\n", + " UserData(\n", + " id=\"25361cf3-8fd6-4fe9-b185-499a39c32283\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 566985, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 566986, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Ellenville\",\n", + " \"entity_likes\": \"{Jake Paul=1, Others=69, Shaquille ONeal=2, Serena Williams=1, Joe Rogan=11, LeBron James=3, Tiger Woods=5, Mike Tyson=7, Caitlin Clark=2, Dale Earnhardt Jr=1, ShaCarri Richardson=9, Ronda Rousey=2, Khabib=5, Olivia Dunne=3, Lewis Hamilton=1, Deion Sanders=11, Dana White=22, Michael Jordan=3, Conor McGregor=11, Floyd Mayweather=1, Simone Biles=4, Patrick Mahomes=14}\",\n", + " \"latest_sport_read\": \"ufc\",\n", + " \"ppid\": \"5zxzj170290682376491751d4720a4\",\n", + " \"sports_likes\": \"{wnba=1, golf=9, ufc=81, nba active=5, uss=19, nascar=1, boxing=10, nba legends=4, nfl active=19, college football=37, tennis=2}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"Dana White\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"ufc\",\n", + " },\n", + " name=\"user_12890\",\n", + " ),\n", + " UserData(\n", + " id=\"55d34803-538f-4af5-b871-10ea948a42e7\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 557641, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 557641, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 36,\n", + " \"city\": \"Pearland\",\n", + " \"entity_likes\": \"{Others=75, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=3, Serena Williams=7, Sean Payton=6, LeBron James=8, Quincy Wilson=1, Rebeca Andrade=1, Angel Reese=6, Bronny James=1, Caitlin Clark=10, Chennedy Carter=1, Sydney McLaughlin=4, ShaCarri Richardson=35, Dawn Staley=2, Gabby Thomas=6, Jordan Chiles=4, Olivia Dunne=1, Deion Sanders=36, Derek Jeter=1, Noah Lyles=4, Simone Biles=17}\",\n", + " \"latest_sport_read\": \"nba\",\n", + " \"ppid\": \"5l9kj1711045407182bd7c7cd074a1\",\n", + " \"sports_likes\": \"{wnba=10, mlb=1, nba active=17, uss=84, boxing=2, nba legends=12, nfl active=10, nfl legends=1, nba=1, college football=79, tennis=14}\",\n", + " \"state\": \"TX\",\n", + " \"top_entity\": \"Deion Sanders\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12889\",\n", + " ),\n", + " UserData(\n", + " id=\"fad0bc2d-c3b6-4f2a-acc8-f6774e354cdc\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 548274, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 548274, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 55,\n", + " \"city\": \"Bridgewater\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=12, Others=55, Denny Hamlin=8, Kyle Busch=10, Tony Stewart=13, Bubba Wallace=3, Michael Jordan=4, Caitlin Clark=1, Simone Biles=2, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"dgxst1711018117632c449a2aa5282\",\n", + " \"sports_likes\": \"{wnba=1, uss=2, nascar=102, nfl active=2, college football=1, others=1}\",\n", + " \"state\": \"NJ\",\n", + " \"top_entity\": \"Tony Stewart\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12888\",\n", + " ),\n", + " UserData(\n", + " id=\"1c26226e-3c4a-4765-aa71-597102368958\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 539118, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 539118, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 69,\n", + " \"city\": \"Brooklyn\",\n", + " \"entity_likes\": \"{Others=110, ShaCarri Richardson=1, Serena Williams=9, Lewis Hamilton=1, Jordan Chiles=1, Rebeca Andrade=1, Simone Biles=8}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"wqjjb171124441117050f49b85cf1d\",\n", + " \"sports_likes\": \"{boxing=1, uss=21, tennis=109}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"Serena Williams\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"tennis\",\n", + " },\n", + " name=\"user_12887\",\n", + " ),\n", + " UserData(\n", + " id=\"39fe3818-7ce2-4b5c-8192-ac2439d614f9\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 530030, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 530030, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 35,\n", + " \"city\": \"Silverdale\",\n", + " \"entity_likes\": \"{Others=16, Tara Davis Woodhall=1, Serena Williams=1, Joe Rogan=8, Fred Kerley=1, LeBron James=1, Sabrina Ionescu=1, Angel Reese=1, Caitlin Clark=3, Sydney McLaughlin=5, Shericka Jackson=4, ShaCarri Richardson=31, Gabby Thomas=3, Usain Bolt=1, Khabib=10, Jon Jones=3, Dana White=18, Conor McGregor=5, Noah Lyles=3, Floyd Mayweather=3, Simone Biles=4}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"7vzkw17108581777680209740ccccd\",\n", + " \"sports_likes\": \"{wnba=2, ufc=53, nba active=2, uss=58, boxing=6, college football=2}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"ShaCarri Richardson\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12886\",\n", + " ),\n", + " UserData(\n", + " id=\"578eb71c-3bfc-4ab5-bd3c-ee81bd08c9a1\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 520885, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 520885, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 47,\n", + " \"city\": \"Thornton\",\n", + " \"entity_likes\": \"{Others=58, Brittney Griner=1, Shaquille ONeal=2, LeBron James=1, Kyle Busch=17, Tony Stewart=16, Dale Earnhardt Jr=9, Khabib=1, Deion Sanders=5, Jim Harbaugh=1, Denny Hamlin=10, Bubba Wallace=6, Dana White=1, Michael Jordan=9, Noah Lyles=1, Patrick Mahomes=4}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"bv8jw17032121894964bac073b7d43\",\n", + " \"sports_likes\": \"{wnba=1, golf=3, ufc=2, nba active=3, wwe=2, nascar=113, nba legends=3, nfl active=7, college football=8}\",\n", + " \"state\": \"CO\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12885\",\n", + " ),\n", + " UserData(\n", + " id=\"2c534b8f-2958-4284-8d30-35d2f0fc043f\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 511805, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 511806, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 63,\n", + " \"city\": \"Chipley\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=20, Others=90, Kyle Busch=26, Denny Hamlin=16, Tony Stewart=24, Bubba Wallace=9, Michael Jordan=4}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"dcmnc17096841606166c29ab366683\",\n", + " \"sports_likes\": \"{nascar=187, others=2}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12884\",\n", + " ),\n", + " UserData(\n", + " id=\"f807c9ab-96a7-4c54-ba78-054ba479e33d\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 502403, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 502403, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 30,\n", + " \"city\": \"New Bedford\",\n", + " \"entity_likes\": \"{Others=52, Shaquille ONeal=1, Serena Williams=3, Kyle Busch=12, Tom Brady=1, Tony Stewart=16, Tiger Woods=1, Dale Earnhardt Jr=24, Denny Hamlin=8, Bubba Wallace=1, Michael Jordan=2, Derek Jeter=1, Patrick Mahomes=2}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"8bvjm170811436163550cef50a1f66\",\n", + " \"sports_likes\": \"{wnba=1, mlb=1, golf=3, ufc=1, nascar=109, nba legends=1, nfl active=3, nfl legends=1, tennis=4}\",\n", + " \"state\": \"MA\",\n", + " \"top_entity\": \"Dale Earnhardt Jr\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12883\",\n", + " ),\n", + " UserData(\n", + " id=\"71e8aa48-3634-423f-909c-0bc2dc6d1e66\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 493226, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 493226, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 40,\n", + " \"city\": \"Bridgeport\",\n", + " \"entity_likes\": \"{Others=18, Tara Davis Woodhall=1, Elaine Thompson=2, Shaquille ONeal=5, Serena Williams=10, Fred Kerley=1, Rebeca Andrade=2, Jade Carey=2, Caitlin Clark=2, Michael Phelps=1, Sydney McLaughlin=1, Arnold Schwarzenegger=1, Shericka Jackson=1, ShaCarri Richardson=13, Gabby Thomas=3, Usain Bolt=10, Jordan Chiles=1, Deion Sanders=1, Michael Jordan=2, Noah Lyles=7, Simone Biles=28, Patrick Mahomes=1}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"tq8dw1703205107273a4e3da9719be\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, uss=83, nba legends=7, nfl active=2, bodybuilding=1, college football=2, tennis=16}\",\n", + " \"state\": \"CT\",\n", + " \"top_entity\": \"Simone Biles\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12882\",\n", + " ),\n", + " UserData(\n", + " id=\"5134e56d-074b-492b-ba64-e5fd7c7fb6de\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 484121, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 484122, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 23,\n", + " \"city\": \"Lauderhill\",\n", + " \"entity_likes\": \"{Shaquille ONeal=2, Sean Payton=3, Joe Rogan=7, Shelly Ann Frazer Pryce=1, Kyle Busch=3, Tom Brady=1, Tony Stewart=3, Mike Tyson=6, Caitlin Clark=3, Femke Bol=2, Sydney McLaughlin=5, ShaCarri Richardson=4, Kishane Thompson=1, Gabby Thomas=1, Khabib=2, Jordan Chiles=2, Olivia Dunne=2, Deion Sanders=1, Noah Lyles=5, Simone Biles=3, Jake Paul=1, Others=42, Serena Williams=1, Tiger Woods=1, Dale Earnhardt Jr=4, Denny Hamlin=2, Dana White=2, Michael Jordan=1, Floyd Mayweather=3}\",\n", + " \"latest_sport_read\": \"uss\",\n", + " \"ppid\": \"s8d29171287710911410e9f713f6af\",\n", + " \"sports_likes\": \"{golf=3, ufc=13, nba active=4, uss=29, nascar=26, boxing=11, nba legends=4, nfl active=14, nfl legends=3, college football=3, tennis=4}\",\n", + " \"state\": \"FL\",\n", + " \"top_entity\": \"Joe Rogan\",\n", + " \"top_sources\": \"google news\",\n", + " \"top_sport\": \"uss\",\n", + " },\n", + " name=\"user_12881\",\n", + " ),\n", + " UserData(\n", + " id=\"b9139854-c314-4e81-bf89-306ea3ca7d28\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 474914, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 474914, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 39,\n", + " \"city\": \"Spokane Valley\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=3, Others=33, Kyle Busch=23, Denny Hamlin=8, Tony Stewart=1, Bubba Wallace=4, Michael Jordan=1, Patrick Mahomes=64}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"c9brb16993043699712fe8cbefcf65\",\n", + " \"sports_likes\": \"{nfl active=64, nfl=1, nascar=71, tennis=1}\",\n", + " \"state\": \"WA\",\n", + " \"top_entity\": \"Patrick Mahomes\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12880\",\n", + " ),\n", + " UserData(\n", + " id=\"7612f7db-d1aa-4365-8728-a0e1d9ca0d77\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 465879, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 465880, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 78,\n", + " \"city\": \"Mahopac\",\n", + " \"entity_likes\": \"{Others=70, Shaquille ONeal=6, Serena Williams=20, LeBron James=8, Quincy Wilson=1, Rebeca Andrade=1, Bronny James=1, Sydney McLaughlin=2, ShaCarri Richardson=14, Gabby Thomas=5, Usain Bolt=2, Steph Curry=2, Michael Jordan=10, Noah Lyles=7}\",\n", + " \"latest_sport_read\": \"tennis\",\n", + " \"ppid\": \"xlsvl1709741308093663153187dbe\",\n", + " \"sports_likes\": \"{soccer=1, wnba=1, mlb=1, nba active=19, uss=37, nba legends=23, college football=2, others=1, tennis=64}\",\n", + " \"state\": \"NY\",\n", + " \"top_entity\": \"Serena Williams\",\n", + " \"top_sources\": \"google search\",\n", + " \"top_sport\": \"tennis\",\n", + " },\n", + " name=\"user_12879\",\n", + " ),\n", + " UserData(\n", + " id=\"2c1af3fd-2fcb-42e6-b349-3321cd8c8915\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 456797, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 456798, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 56,\n", + " \"city\": \"Richmond\",\n", + " \"entity_likes\": \"{Dale Earnhardt Jr=27, Others=71, Deion Sanders=1, Jim Harbaugh=5, Denny Hamlin=11, Kyle Busch=39, Tony Stewart=23, Bubba Wallace=6, Michael Jordan=15, Patrick Mahomes=5}\",\n", + " \"latest_sport_read\": \"nascar\",\n", + " \"ppid\": \"8hxdp169971023268921acc266a987\",\n", + " \"sports_likes\": \"{uss=1, nascar=186, nba legends=1, nfl active=6, college football=7, others=2}\",\n", + " \"state\": \"VA\",\n", + " \"top_entity\": \"Kyle Busch\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nascar\",\n", + " },\n", + " name=\"user_12878\",\n", + " ),\n", + " UserData(\n", + " id=\"ab6ca560-aa18-4a77-a5dc-cf16df426b44\",\n", + " created_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 447731, tzinfo=datetime.timezone.utc\n", + " ),\n", + " updated_at=datetime.datetime(\n", + " 2024, 10, 9, 10, 44, 22, 447732, tzinfo=datetime.timezone.utc\n", + " ),\n", + " about=\"\",\n", + " metadata={\n", + " \"age\": 81,\n", + " \"city\": \"Fishers\",\n", + " \"entity_likes\": \"{Others=35, Shaquille ONeal=10, Serena Williams=6, LeBron James=4, Tiger Woods=3, Caitlin Clark=6, Michael Phelps=1, Dawn Staley=1, Deion Sanders=1, Olivia Dunne=3, Michael Jordan=4, Simone Biles=17, Patrick Mahomes=30}\",\n", + " \"latest_sport_read\": \"nfl\",\n", + " \"ppid\": \"j6k481706464547054c3940b7e352e\",\n", + " \"sports_likes\": \"{soccer=4, wnba=6, golf=3, nba active=15, uss=24, nascar=1, nba legends=15, nfl active=37, nba=1, college football=8, tennis=7}\",\n", + " \"state\": \"IN\",\n", + " \"top_entity\": \"Patrick Mahomes\",\n", + " \"top_sources\": \"discover\",\n", + " \"top_sport\": \"nfl active\",\n", + " },\n", + " name=\"user_12877\",\n", + " ),\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "2ffd5dcd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Agent](items=[Agent(id='03d65862-9f40-41a6-990f-afec6354a1f4', created_at=datetime.datetime(2024, 10, 7, 3, 4, 47, 170392, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 7, 3, 4, 47, 170392, tzinfo=datetime.timezone.utc), about='You are an agent that sends emails with poems to users.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=1.2, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Poem Email'), Agent(id='7ccae40c-633e-4032-a9a9-550872ad1dbc', created_at=datetime.datetime(2024, 10, 7, 2, 14, 48, 452564, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 7, 2, 14, 48, 452564, tzinfo=datetime.timezone.utc), about='Dude who sends dope poems', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=1.1, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Poem Emailer'), Agent(id='512de8a6-c5db-4434-914a-937976c326a9', created_at=datetime.datetime(2024, 10, 4, 23, 41, 13, 339146, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 4, 23, 41, 13, 339146, tzinfo=datetime.timezone.utc), about='hello', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={'a': 1}, model='o1-mini', name='hello'), Agent(id='9752eff3-eb17-4814-9f96-c52fb7955255', created_at=datetime.datetime(2024, 10, 1, 17, 56, 57, 112682, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 1, 17, 56, 57, 112684, tzinfo=datetime.timezone.utc), about='An agent that helps users of the Reclaim app verify their ownership of their data and reclaim their data from third-party providers.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Reclaimer Agent'), Agent(id='3bb7bf64-70e3-40aa-be42-fc76299a4729', created_at=datetime.datetime(2024, 10, 1, 17, 56, 28, 525591, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 1, 17, 56, 28, 525592, tzinfo=datetime.timezone.utc), about='An agent that helps users of the Reclaim app verify their ownership of their data and reclaim their data from third-party providers.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Reclaimer Agent'), Agent(id='0274f724-3465-4436-86ff-950b73e47267', created_at=datetime.datetime(2024, 10, 1, 17, 55, 37, 429487, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 1, 17, 55, 37, 429487, tzinfo=datetime.timezone.utc), about='An agent that helps users of the Reclaim app verify their ownership of their data and reclaim their data from third-party providers.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Reclaimer Agent'), Agent(id='68c0ac2b-b355-466e-9db6-fe0689dc1453', created_at=datetime.datetime(2024, 10, 1, 17, 49, 44, 347786, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 1, 17, 49, 44, 347786, tzinfo=datetime.timezone.utc), about='An agent that helps users of the Reclaim app verify their ownership of their data and reclaim their data from third-party providers.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Reclaimer Agent'), Agent(id='65e0dac5-5ef5-427a-aa43-512d0bd21f4d', created_at=datetime.datetime(2024, 10, 1, 17, 48, 13, 731758, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 1, 17, 48, 13, 731759, tzinfo=datetime.timezone.utc), about='An agent that helps users of the Reclaim app verify their ownership of their data and reclaim their data from third-party providers.', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='Reclaimer Agent')])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.list()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "29d282de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[User](items=[User(id='221e8088-e17e-40f4-982e-6883bdb711e9', created_at=datetime.datetime(2024, 10, 5, 18, 23, 28, 109991, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 5, 18, 23, 28, 109992, tzinfo=datetime.timezone.utc), about='', metadata={'user_ppid': 'xyz'}, name='Diwank'), User(id='2b4e4f91-36d8-4f5c-a3e2-4190b4482df8', created_at=datetime.datetime(2024, 10, 5, 18, 9, 10, 732144, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 5, 18, 9, 10, 732145, tzinfo=datetime.timezone.utc), about='', metadata={'ppid': 'xyz'}, name='Diwank')])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.users.list()" + ] + }, + { + "cell_type": "markdown", + "id": "c96f5022", + "metadata": {}, + "source": [ + "## Agent with title lib" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "5de0f61b", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"NewsLibraryAgent\"\n", + "about = \"It is used to manage a library of news article titles and their related data\"\n", + "default_settings = {\n", + " \"temperature\": 0.6,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0\n", + "}\n", + "\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0392d3c6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ResourceCreated(id='602641f5-29cb-4895-886f-d4db4ba47d8e', created_at=datetime.datetime(2024, 10, 9, 10, 45, 39, 700109, tzinfo=datetime.timezone.utc), jobs=['78251ce4-9199-49e6-a5de-f52e3cc1b537'])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.create(\n", + " agent_id = '847d03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " title = \"NewsTitles\",\n", + " content = articles[:25000] \n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "fa817293", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DocSearchResponse(docs=[], time=1.0753483772277832)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.search(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " text = \"nascar-news-kyle-busch-denny-hamlin-brad-keselowski-fans-beef-over-their-superstars-filling-the-void-in-nascar-left-by-legendary-cup-champ\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "4fb0e0be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Doc](items=[])" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.list(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "c9c08542", + "metadata": {}, + "source": [ + "## User Creation" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "e0e70ef0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 100/100 [00:00<00:00, 394.98it/s]\n" + ] + } + ], + "source": [ + "for i in tqdm(range(len(user_data))):\n", + " \n", + " client.users.create(\n", + " name = f\"user_{i}\",\n", + " metadata={\n", + " \"ppid\": str(user_data[i][\"metadata\"][\"ppid\"]), # Ensure it's a native int\n", + " \"age\": int(user_data[i][\"metadata\"][\"age\"]), # Ensure it's a native int\n", + " \"state\": str(user_data[i][\"metadata\"][\"state\"]), # Convert to string if not already\n", + " \"city\": str(user_data[i][\"metadata\"][\"city\"]), # Convert to string if not already\n", + " \"sports_likes\": str(user_data[i][\"metadata\"][\"sports_likes\"]), # Convert to string or json serializable format\n", + " \"entity_likes\": str(user_data[i][\"metadata\"][\"entity_likes\"]), # Same as above\n", + " \"top_sport\": str(user_data[i][\"metadata\"][\"top_sport\"]),\n", + " \"top_entity\": str(user_data[i][\"metadata\"][\"top_entity\"]),\n", + " \"latest_sport_read\": str(user_data[i][\"metadata\"][\"latest_sport_read\"]),\n", + " \"top_sources\": str(user_data[i][\"metadata\"][\"top_sources\"])\n", + " }\n", + " )" + ] + }, + { + "cell_type": "markdown", + "id": "15531cc5", + "metadata": {}, + "source": [ + "## Profiler " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "48589b59", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"ProfilerAgent\"\n", + "about = \"It is used to create/update the profile of the user\"\n", + "default_settings = {\n", + " \"temperature\": 0.9,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0,\n", + " \"max_tokens\": 250,\n", + "}\n", + "\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '844e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "23649eeb", + "metadata": {}, + "outputs": [], + "source": [ + "# The profiler workflow\n", + "task_def = yaml.safe_load(\"\"\"\n", + "name: generate_update_persona\n", + "\n", + "# Define the input schema for the workflow\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_ppid:\n", + " type: string\n", + " articles_read:\n", + " type: array\n", + " items:\n", + " type: string\n", + " required:\n", + " - user_ppid\n", + " - articles_read\n", + "\n", + "# Define the tools that are going to be used in the workflow\n", + "tools:\n", + " - name: get_user_from_ppid\n", + " description: Get a user from the user ppid\n", + " system:\n", + " resource: user\n", + " operation: list\n", + " \n", + " - name: list_user_docs\n", + " description: List the user docs\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: list\n", + "\n", + " - name: create_user_doc\n", + " description: Create a user doc\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: create\n", + "\n", + "main:\n", + " # Get the user from the ppid using metadata_filter (returns a list)\n", + " - tool: get_user_from_ppid\n", + " arguments:\n", + " limit: \"1\"\n", + " metadata_filter:\n", + " ppid: inputs[0]['user_ppid']\n", + "\n", + " # Unwrap the list to get the user\n", + " - evaluate:\n", + " user: _[0]\n", + "\n", + "\n", + " # Get the user persona document using metadata_filter (returns a list)\n", + " - tool: list_user_docs\n", + " arguments:\n", + " user_id: _['user']['id']\n", + " limit: \"1\"\n", + " sort_by: \"'created_at'\"\n", + " direction: \"'desc'\"\n", + "\n", + " # Get the doc if it exists\n", + " - evaluate:\n", + " doc: _[0] if len(_) > 0 else {}\n", + "\n", + "\n", + " # Get the user persona from the doc if the doc exists\n", + " - evaluate:\n", + " user_persona: _['doc'].get('content', \"\")\n", + "\n", + "\n", + " # Create the user persona using the prompt step\n", + " - prompt:\n", + " - role: user\n", + " content: You are an expert at creating user profile based on data. Write the user persona based on {{_['user_persona']}} + {{inputs[2]['user']['metadata']}} + {{inputs[0]['articles_read']}}\n", + " unwrap: true\n", + " \n", + " # Create a new persona document\n", + " - tool: create_user_doc\n", + " arguments:\n", + " user_id: inputs[2]['user']['id']\n", + " data:\n", + " title: \"'User Persona Document'\"\n", + " # metadata:\n", + " # user_persona: true\n", + " content: _\n", + "\"\"\"\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "9b211a93", + "metadata": {}, + "outputs": [], + "source": [ + "# Creating/Updating a task\n", + "task = client.tasks.create_or_update(\n", + " task_id= '813a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " agent_id= '844e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " **task_def\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "beb8fca8", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 10/10 [00:00<00:00, 16.50it/s]\n" + ] + } + ], + "source": [ + "for i in tqdm(range(10)): # range(len(user_data))):\n", + " ppid = str(user_data[i][\"metadata\"]['ppid']) \n", + " # filtered_df1 = df1[df1['ppid'] == ppid ] \n", + " \n", + " # if not filtered_df1.empty: \n", + " # Creating an Execution\n", + " execution = client.executions.create(\n", + " task_id= '813a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " input = {\n", + " 'user_ppid': ppid,\n", + " 'articles_read' : [\n", + " 'nascar-news-they-didnt-wait-for-tony-stewart',\n", + " 'nfl-ncaa-news-privilege-to-love-travis-hunters',\n", + " 'nascar-news-stuck-in-a-thirty-million-hole-dal',\n", + " 'nascar-news-that-shouldnt-take-away-my-playoff',\n", + " 'nascar-news-kyle-busch-denny-hamlin-brad-kesel',\n", + " ]\n", + " }\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "31b8fc47", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ResourceCreated(id='8e69fbc6-7f10-4067-9b81-4b2015508628', created_at=datetime.datetime(2024, 10, 9, 12, 5, 56, 176543, tzinfo=datetime.timezone.utc), jobs=['6b78a7ea-4703-47a0-9b0c-13111f018586'])" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "execution" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "316b33ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Transition](items=[])" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.executions.transitions.list(\n", + " execution_id = '8e69fbc6-7f10-4067-9b81-4b2015508628'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "07b9042e", + "metadata": {}, + "source": [ + "## Recommendation" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "0dc2b395", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"TitleRecommender\"\n", + "about = \"It is used to recommend the title recommendation for the user\"\n", + "default_settings = {\n", + " \"temperature\": 0.9,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0,\n", + " \"max_tokens\": 250,\n", + "}\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '865e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\",\n", + ") " + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "c102054e", + "metadata": {}, + "outputs": [], + "source": [ + "for docs in client.agents.docs.list(agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d'):\n", + " client.agents.docs.delete(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " doc_id = docs.id\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "ead8d197", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(168, 1)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 = pd.read_csv('new_titles.csv')\n", + "df2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "b9b839c7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 168/168 [00:47<00:00, 3.52it/s]\n" + ] + } + ], + "source": [ + "for i in tqdm(range(len(df2))):\n", + " title = df2.iloc[i]['post_name']\n", + " \n", + " client.agents.docs.create(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " title = title,\n", + " content = title \n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "b9d230e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Doc](items=[])" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.list(agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d')" + ] + }, + { + "cell_type": "markdown", + "id": "06a417bd", + "metadata": {}, + "source": [ + "1. Delete all the docs of libraryAgents \n", + "\n", + "2. Create new docs for each article with title=headline and content=headline with new batch of article which you are going to recommend\n", + "\n", + "\n", + "3. Get the user_persona\n", + "\n", + "\n", + "4. Ranking based on cosine similarity \n", + "5. Pick 5 articles for this users out of 50 \n", + "6. Recommend the newsletter title based on this articles " + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "ca518cbb", + "metadata": {}, + "outputs": [], + "source": [ + "# The profiler workflow\n", + "task_def1 = yaml.safe_load(\"\"\"\n", + "\n", + "name: recommend news articles\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_ppid:\n", + " type: string\n", + " \n", + "tools:\n", + " - name: get_user_from_ppid\n", + " description: Get a user from the user ppid\n", + " system:\n", + " resource: user\n", + " operation: list\n", + "\n", + " - name: get_user_docs\n", + " description: Get user docs\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: list\n", + " \n", + " - name : search_agent_docs\n", + " description: Get agent docs\n", + " system: \n", + " resource: agent\n", + " subresource: doc\n", + " operation: search \n", + " \n", + "main:\n", + " # Get the user from the ppid using metadata_filter (returns a list)\n", + " - tool: get_user_from_ppid\n", + " arguments:\n", + " limit: \"1\"\n", + " metadata_filter:\n", + " ppid: inputs[0]['user_ppid']\n", + "\n", + " # Unwrap the list to get the user\n", + " - evaluate:\n", + " user: _[0]\n", + "\n", + " - tool: get_user_docs\n", + " arguments:\n", + " user_id: _.user.id\n", + " limit: \"1\"\n", + " sort_by: \"'created_at'\"\n", + " direction: \"'desc'\"\n", + "\n", + " #user persona will always be available here\n", + " - evaluate:\n", + " user_embedding: _[0].embeddings\n", + " persona: _[0].content\n", + "\n", + " #Embedding similarity it will rank the docs\n", + " - tool: search_agent_docs\n", + " arguments:\n", + " vector: _.user_embedding\n", + " agent_id: \"'847b03b1-856a-4ae1-a1f5-ad994ba5c87d'\"\n", + "\n", + " #not sure how to evaluate news_titles\n", + " - evaluate:\n", + " top_titles: \"{{ [doc['title'] for doc in _['docs'][:50]] }}\"\n", + "\n", + " - prompt: \n", + " - role: user\n", + " content: Which of these {{_.top_titles}} do you think the user will like. Rank them according to the users' \n", + " persona {{inputs[2].biodata}} and give me the top 5 as valid yaml\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " titles: load_yaml(_)\n", + " \n", + " - prompt: \n", + " - role: user\n", + " content: based on these 5 news {{_.titles}} and users' persona {{inputs[2].biodata}}, draft a catchy newsletter title.\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " newsletter_title: _\n", + " titles: output[7].titles\n", + " \n", + "\"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "12f688c6", + "metadata": {}, + "outputs": [], + "source": [ + "# Creating/Updating a task\n", + "task1 = client.tasks.create_or_update(\n", + " task_id = '825a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " agent_id = '865e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " **task_def1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "374f1b74", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–Œ | 2715/12977 [33:48<2:07:48, 1.34it/s]\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/sm/rll592s91t375q5hbck24ptc0000gn/T/ipykernel_46728/1288718815.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# Creating an Execution\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m execution = client.executions.create(\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mtask_id\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34m'825a03b1-856a-4ae1-a1f5-ad994ba5c87d'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m input = {\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/resources/executions/executions.py\u001b[0m in \u001b[0;36mcreate\u001b[0;34m(self, task_id, input, error, metadata, output, extra_headers, extra_query, extra_body, timeout)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtask_id\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Expected a non-empty value for `task_id` but received {task_id!r}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m return self._post(\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;34mf\"/tasks/{task_id}/executions\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m body=maybe_transform(\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36mpost\u001b[0;34m(self, path, cast_to, body, options, files, stream, stream_cls)\u001b[0m\n\u001b[1;32m 1252\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"post\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfiles\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mto_httpx_files\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfiles\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1253\u001b[0m )\n\u001b[0;32m-> 1254\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mResponseT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcast_to\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstream\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstream_cls\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream_cls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1255\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1256\u001b[0m def patch(\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0mretries_taken\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 945\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 946\u001b[0;31m return self._request(\n\u001b[0m\u001b[1;32m 947\u001b[0m \u001b[0mcast_to\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcast_to\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36m_request\u001b[0;34m(self, cast_to, options, retries_taken, stream, stream_cls)\u001b[0m\n\u001b[1;32m 980\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 982\u001b[0;31m response = self._client.send(\n\u001b[0m\u001b[1;32m 983\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 984\u001b[0m \u001b[0mstream\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_should_stream_response_body\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, auth, follow_redirects)\u001b[0m\n\u001b[1;32m 899\u001b[0m \u001b[0mauth\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_build_request_auth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mauth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 900\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 901\u001b[0;31m response = self._send_handling_auth(\n\u001b[0m\u001b[1;32m 902\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 903\u001b[0m \u001b[0mauth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mauth\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_handling_auth\u001b[0;34m(self, request, auth, follow_redirects, history)\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 928\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 929\u001b[0;31m response = self._send_handling_redirects(\n\u001b[0m\u001b[1;32m 930\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 931\u001b[0m \u001b[0mfollow_redirects\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfollow_redirects\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_handling_redirects\u001b[0;34m(self, request, follow_redirects, history)\u001b[0m\n\u001b[1;32m 964\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 965\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 966\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_single_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 967\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 968\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_event_hooks\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"response\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_single_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 1000\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1001\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mrequest_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1002\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1003\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1004\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSyncByteStream\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_transports/default.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 216\u001b[0m )\n\u001b[1;32m 217\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mmap_httpcore_exceptions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 218\u001b[0;31m \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pool\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtyping\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mShieldCancellation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresponse_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 262\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionNotAvailable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;31m# The ConnectionNotAvailable exception is a special case, that\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mConnectionNotAvailable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_connection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_connect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mRequest\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mNetworkStream\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mTrace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"response_closed\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlogger\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_response_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 121\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0;31m# Sending the request...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0mreason_phrase\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m ) = self._receive_response_headers(**kwargs)\n\u001b[0m\u001b[1;32m 100\u001b[0m trace.return_value = (\n\u001b[1;32m 101\u001b[0m \u001b[0mhttp_version\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36m_receive_response_headers\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 164\u001b[0;31m \u001b[0mevent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_receive_event\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mevent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh11\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mResponse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36m_receive_event\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mevent\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mh11\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNEED_DATA\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 200\u001b[0;31m data = self._network_stream.read(\n\u001b[0m\u001b[1;32m 201\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mREAD_NUM_BYTES\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 202\u001b[0m )\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_backends/sync.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, max_bytes, timeout)\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mmap_exceptions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc_map\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msettimeout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 28\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmax_bytes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 29\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbytes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtyping\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOptional\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/ssl.py\u001b[0m in \u001b[0;36mrecv\u001b[0;34m(self, buflen, flags)\u001b[0m\n\u001b[1;32m 1225\u001b[0m \u001b[0;34m\"non-zero flags not allowed in calls to recv() on %s\"\u001b[0m \u001b[0;34m%\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1226\u001b[0m self.__class__)\n\u001b[0;32m-> 1227\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuflen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1228\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1229\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuflen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/ssl.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, len, buffer)\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1102\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1103\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mSSLError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mSSL_ERROR_EOF\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msuppress_ragged_eofs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "execution_array = []\n", + "for i in tqdm(range(len(df))):\n", + " ppid = str(df.iloc[i]['ppid']) \n", + " \n", + " # Creating an Execution\n", + " execution = client.executions.create(\n", + " task_id= '825a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " input = {\n", + " 'user_ppid': ppid,\n", + " }\n", + " )\n", + " execution_array.append(execution.id)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "e9873437", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['caed8408-235c-4a36-91fe-0559b91ece8d',\n", + " '909b976a-b5d4-40cb-8dd6-8a59d7e246d8',\n", + " '3519ee27-4e83-4ea4-9a25-e4f539eff630',\n", + " '5181be66-ca9d-4fba-a285-39345cb880ec',\n", + " 'b51178a4-b295-48dd-a482-55bdae34124c',\n", + " '6b78d6fb-335e-4fa0-bf1f-e8346bf938c1',\n", + " 'a01f11f8-8d97-4e83-b6cf-64f696247ef2',\n", + " 'b504190d-8be9-4f5e-be1a-8b5cf120e6a1',\n", + " '1f11e027-3456-4bc3-9e10-343bad92757a',\n", + " '485818f2-cdd8-48c4-a87e-da53ff878628',\n", + " 'c403e7fa-f15a-4986-a120-7a2e7631453a',\n", + " 'f0afea34-aa6c-4c6b-882e-8cbfe4de19a4',\n", + " '068ea766-ab13-47ad-ae1d-97b8b7b5db73',\n", + " 'b66e1348-3383-4e33-8c18-8f1e1f3cfe75',\n", + " 'dd65f882-f781-4f7e-86fb-25dec8af00fd',\n", + " '1c0754ce-f8d2-42b8-a034-2a7ef6491f82',\n", + " 'cc4dc765-3290-4d03-9325-71e6dfa8e3a2',\n", + " '621cc14b-e6da-4797-b90f-77c51fd1f6e6',\n", + " '4505b141-2bca-4a8a-8132-9914932faa02',\n", + " 'a89f8ce7-fa0b-4c76-9f86-c376a1624aae',\n", + " '84b78f75-6a7e-403a-a148-c193a00468b8',\n", + " '347e8671-c8c0-4aa0-b44f-2c6eee3b1f99',\n", + " '6bdb06d5-2587-4c07-98c1-aaebfc8ebc3d',\n", + " '2cd48f41-0ede-4eab-8305-5e2617cc4ff9',\n", + " '7d10bb3e-e2e1-4915-a37d-39c60d562920',\n", + " '45212feb-7050-48f0-847a-dd7fe8f0e354',\n", + " '25bedaba-57c1-4eb7-b7e2-9d8901a69d91',\n", + " '46aaf48c-56a9-453e-b5c5-60aad03ae4df',\n", + " 'e5f360d7-674a-4285-b4fb-f32e594bcdf2',\n", + " 'b3908ba3-0299-4429-834d-998532b25bcd',\n", + " 'b237558b-5d70-420f-8e1c-949ffeb58573',\n", + " '4fccf58f-6b5f-45a8-8e48-d11fad28313c',\n", + " '0d61569d-ad91-401b-a32f-17f5872a56e6',\n", + " 'f1e45d9a-e851-4217-8b2e-411de05bffa3',\n", + " 'e042d219-ef43-4eea-86f4-4d961656d3b2',\n", + " 'f9eef302-ea78-4a18-863a-281c61a16a32',\n", + " '3bcd516f-374a-4136-94a7-4a8b86913fbb',\n", + " 'c31b10f4-0ee6-4410-8524-d03664c1c4c1',\n", + " '81e48f27-ff88-4a03-89ea-1052ac920738',\n", + " 'cfddfd03-e794-4783-ad37-9a94b715e3bf',\n", + " 'ef881511-258b-435e-8dc4-edd74167c0a5',\n", + " '3ae38aa7-72ad-4609-a780-5d5860b7237a',\n", + " '86c06d20-ac0a-4972-850d-21c6d425455c',\n", + " '9769a872-a955-4e41-9277-31f893705d1c',\n", + " '5ec6e658-e79f-47b8-a9ef-bcd0ad731f0d',\n", + " '3ddfe2f3-8a2f-451d-9698-6db04c2dda84',\n", + " 'e73d0969-3f4a-453b-98ec-8b1a03fcfb25',\n", + " 'aefc75d5-db0e-4675-a196-d2b92d93808d',\n", + " '6a9ecfaa-4d39-4687-8fc8-b1945e87cfa0',\n", + " '2c1a21ab-12a3-44e9-8d29-a8e0974812af',\n", + " 'e0646040-b53f-40e3-91a9-c14d9d9018c9',\n", + " '7887b8bc-fcc4-4899-84e3-255ae9e06a2d',\n", + " '82f889ef-d67a-4626-b76d-213f9ef18c12',\n", + " 'c506ac13-6cb7-490a-ba55-ade2b0e291e1',\n", + " '87a95f07-c218-4cc2-bdd3-437974bb7fe5',\n", + " 'b5550d67-e2cd-4add-b122-7f98e826472e',\n", + " 'b3807fce-652f-4a64-b0b2-dbe079d637eb',\n", + " 'ac352464-dcb1-4b9a-bbed-dc6d5aa2ca08',\n", + " '32b67a8f-673a-46ae-8083-dd6ac4b02152',\n", + " 'f7159130-a9b6-4cd0-ace3-f298c02104a8',\n", + " '170674a2-483e-42f1-841f-db257f9c9cb2',\n", + " 'af6718bc-68d0-40ee-86a7-4ecef9dfe052',\n", + " '3ba46633-cea6-4f26-b685-b6df62636feb',\n", + " '04114396-4234-4848-aae6-0eaa08a06a2d',\n", + " '36cb354b-d2be-478f-b1b8-3a6af58a64fa',\n", + " '87725f89-15ba-47d5-b96c-1356fad8940d',\n", + " '47bc3a25-2d96-493f-a429-dc6a6f43fb45',\n", + " 'bf39de88-cbf8-42bd-aca9-7a205f9d8760',\n", + " '1adddd79-98a2-499e-b2bf-0b3f7b40b817',\n", + " '1c0dd52c-acb0-44e3-a3e7-f0fcc06ca782',\n", + " 'b9e7727c-6487-4a7c-beb9-83788b49f692',\n", + " 'e82667f8-7ac3-45dd-8b3c-e4fc1ee285cf',\n", + " 'ee0864a2-7687-46d5-a202-8bb50dfed322',\n", + " '7cf8561b-ccb3-44ed-a3f0-69d49375547e',\n", + " '0b608ba8-29f5-43ac-8eea-a60e9d43b2c0',\n", + " '0841a5f6-ebc1-402a-a946-7d1858e6e073',\n", + " 'c9009420-a8ec-4163-857c-7b23bf878ed6',\n", + " '0751c3c8-4732-47df-b854-fe3d63d89086',\n", + " '5867cec0-c901-464e-9cbe-4ca4961719f9',\n", + " 'a82670f3-3fdb-46ea-8c5f-3178fdc24a63',\n", + " 'd00e731a-274e-4703-8145-37270d0a3d89',\n", + " '96b94bc5-64a9-41e6-8da2-368f3fc00392',\n", + " '24c170f5-8d51-4c43-95c2-bf51f60e9977',\n", + " '2d9b564a-5526-4ead-83e3-aa939b3c2026',\n", + " 'dc462989-a108-4c2e-929f-3b37845dd01b',\n", + " 'f8b7171f-0361-403a-90ec-454b10593a1d',\n", + " '2dd77210-e38f-4557-986b-45052506e1cd',\n", + " 'db40e2ef-9a2b-4bea-aade-5de6b46c4093',\n", + " '890b314d-f29e-4ab0-aa5c-229918364d3f',\n", + " '8783d397-eed4-44e4-add4-283f8b51b963',\n", + " '12461756-2804-45f3-8b77-b8ff8c545cbc',\n", + " 'a989bfd7-a543-4a8a-90be-e00fd91bab01',\n", + " 'a61988d4-6d8d-41f9-9e5e-fc3b6317d7ae',\n", + " 'c193ea74-6ab2-4969-8b4c-847f5ec9c7d3',\n", + " 'a58e07d4-3de7-4474-baea-2d0f55013392',\n", + " 'c18be0ed-aae0-4b48-bccd-99ccd5210dbc',\n", + " 'e5f3de7d-8f5c-475e-9263-793acf0ffa2e',\n", + " '75308caf-39d1-4307-80f9-a5ee748fb569',\n", + " 'c5e4479f-1fb4-46d7-8d71-9adb448a8384',\n", + " '10025704-ca48-4040-a0c3-167e133fcac8',\n", + " '0d6b59f1-d41f-48a2-b983-d82638ab02b1',\n", + " '8198210a-2f9a-4a9d-9119-4f19ad53265e',\n", + " '7e5c183e-1b9e-4915-80ae-fbde445ead41',\n", + " '4adfd560-6333-4748-b036-d39e34df5ee9',\n", + " 'cbfe31b1-aad1-4a6c-ab53-30a82eff067a',\n", + " '6bb5e1a2-3ee0-43a6-81e3-99967b2779e4',\n", + " '908b021e-6da6-4e39-a43b-d6bbcd48eb97',\n", + " '4842b7c4-199b-4d17-a12b-583c691cd339',\n", + " 'a7de1f75-a9ba-43f1-b402-0d158f6bf3de',\n", + " 'f88bca26-4c93-41c5-b775-055e2280b845',\n", + " '3e50eaf1-850c-4ffb-82d6-0fb034193227',\n", + " 'b4fe6f6b-fc78-4d1e-b285-546db27e694d',\n", + " 'cf5f956f-5237-407e-8adf-1addd62dcfca',\n", + " '2996fd0a-859c-46a6-94b9-afd3f6b69144',\n", + " 'cb9ef2f5-3a21-4273-bf93-b97113673f91',\n", + " '675537be-40a7-495f-8793-6bb652ce4c78',\n", + " '2017aaca-4dc7-4285-b1ad-e96cb26b65df',\n", + " '3ea95c69-f130-4770-bb25-da3c0e2c06a7',\n", + " 'e53f7bcf-014d-4539-a4bf-bef1ffed5372',\n", + " '39624f97-e216-40cc-aba1-21a85c1cfafe',\n", + " '6255c7bf-44c3-494d-a29b-e791d9313e11',\n", + " '4c538bb2-6d91-4050-aa2e-67b91f35d12e',\n", + " 'bddaf90d-7249-48f0-ac3f-363020ab36d4',\n", + " '52f61410-829c-477e-9942-fe7602490ad7',\n", + " 'ef3bbcb3-3840-452b-ba9e-de40e6fc7813',\n", + " 'eb4afa0f-ba24-493a-b592-b042cc294c15',\n", + " 'e9b0b430-925e-42a7-b332-980594983d13',\n", + " 'be5b20a8-d5c0-48b4-9320-cf34deed743e',\n", + " 'bfcf0b1e-a823-43cf-9cdc-17b41719a51d',\n", + " 'a49170f2-d3ca-484a-9e27-476df2c80657',\n", + " 'cc74867a-a1d6-4ae1-a196-a1cd1c324714',\n", + " '745140f2-efda-46d8-a88c-ae52493fc938',\n", + " '0e596be2-594d-437c-9524-6ba54d453f3a',\n", + " 'a35fcdf1-e9c9-459d-8a61-4ff7fe006755',\n", + " '0748f69b-2447-4763-8e16-9049cabb447a',\n", + " 'b3fa93e1-caa6-404f-b7c8-25bfd822e003',\n", + " '571c2427-dadb-4848-a945-441703449a15',\n", + " '10aa0440-46b1-4fef-a7e0-4bacbd516905',\n", + " '5fb31262-afeb-46b5-b6e5-628678587aed',\n", + " 'ca0f7546-e91a-4413-b3ce-a9de5124a3bb',\n", + " '945a9770-0158-4d5b-9dd6-6500f2beee5c',\n", + " 'db3cdda8-b782-41db-ab90-dd694316d8cd',\n", + " '02b17513-9130-4296-a68e-a9c7583c6da8',\n", + " 'ad590088-9f2c-4445-88c3-8558c7e57bf8',\n", + " 'ad61f155-84ce-4119-a56d-871a6d7adff6',\n", + " '617a8d60-6e3e-4689-b485-2cd0b8e1473e',\n", + " 'c8c16975-a7f9-401f-85b4-8f44bbdcf9c4',\n", + " 'dae0ce61-5a11-4010-b500-2695eb860edc',\n", + " 'a2b4cf4d-4b64-4b10-b93f-3aab339fe458',\n", + " 'bf3a9397-4bc0-45c0-a273-b15f8831b959',\n", + " 'aa3c5e9d-a176-4fe1-844a-e8decb865a3c',\n", + " '0c42de86-bd02-47ed-ae15-3699e5b87c47',\n", + " 'b7838b39-0ae4-4783-982b-13b285d5e449',\n", + " '32d69d26-afc7-4ed3-b4fa-704201a54b2e',\n", + " '110ef9ee-ccc3-44ed-bef1-cf563365b34b',\n", + " '4aa2ac95-2ea8-4ec0-9897-480be56c5383',\n", + " '6cb025bf-9174-4c03-8043-4a837cb4efbc',\n", + " '0aa4f3b0-6fc3-44d1-9a6e-bbc5e91b3ce8',\n", + " '3b641815-1b65-4d26-bab8-a6ef17a5237f',\n", + " '4d87e3c3-0f91-4281-9410-cb3b64efc1a0',\n", + " 'f6b50cac-236a-415b-bad3-b387c6f53c84',\n", + " '3b50fb38-e17b-42ce-b9a3-12b39868e9e7',\n", + " '84b5578f-4829-47a3-80b9-a02f28172816',\n", + " '763114e6-d80a-4f92-88b4-0c6579c6a8bc',\n", + " '7e47e2c5-36f9-468e-9d34-ebfe47c1de94',\n", + " '1f0090dd-00f3-4a7c-98df-b14a6e173653',\n", + " '25f4131f-4d6f-486b-bb67-aeeb60ceb32b',\n", + " '9cdf2228-3bef-43d3-bd03-4414a6881e4d',\n", + " 'a2a44dd2-4b79-4ad7-a6b2-bf8a6f09ad8f',\n", + " '7d60147e-31ce-4031-82b6-b7f2d63ada56',\n", + " '8ec4e1f2-7ca7-464e-a1d5-37c0f2824c2a',\n", + " 'a4216589-941a-4c37-8c03-1eddf0fb245b',\n", + " 'fbf5d1dd-ee86-4dca-a375-8718f199a25b',\n", + " 'b7a15de1-4a7d-4958-9ac0-95738f50e554',\n", + " '40180791-d19c-40ee-b0c0-f883355e95e3',\n", + " '6df7b086-30d8-40d5-a0bd-f03e20ada1d3',\n", + " '2c39afe9-d532-4830-a176-d5c52625fb0d',\n", + " 'cba7972f-889b-4bb4-89ce-d18e9a3edab5',\n", + " '687cd660-41fa-48cf-84ee-14b83e762464',\n", + " '13bfc578-60a9-448a-99b3-dbae85794cd5',\n", + " '4108e526-0fed-42f2-a997-c0a2d082a9ab',\n", + " 'ff6751d3-a45e-4edc-9209-caba9341c479',\n", + " '37834269-e8e0-4845-b1bf-4226e96ba320',\n", + " 'dfa155b1-9036-42c6-b288-a6340d299e79',\n", + " 'dd642f69-31ae-4148-ab00-8b01a9398c0f',\n", + " '441841ce-5472-4bf6-8477-7c6ad66ee4be',\n", + " '200e3ecf-22ed-478c-8c08-149e0e1d7d0b',\n", + " 'd36179ab-c417-45b6-912e-977301d7fe1a',\n", + " '77003a25-47c5-4f73-9789-157c13b6e37c',\n", + " 'e741b6db-cb30-470a-98fb-6992c9bf9f03',\n", + " 'c1b2598b-4152-429c-a6ba-f955e6aec90e',\n", + " '88d96d45-3698-48e6-88d6-3a50a006ba37',\n", + " '6947f941-dabb-42a9-a298-ba76527d0704',\n", + " 'd2cd733c-3c87-4b0e-9e8e-2d2d776829bf',\n", + " '10178b8e-92a0-44bd-94bd-63f234a54180',\n", + " '9b4a2ce7-f972-4af9-a77c-509d8f2683c7',\n", + " '2f232553-3c40-47e0-bf8d-fd18c6bb9435',\n", + " 'f8acf19e-f63b-465d-bf5e-7065682826e4',\n", + " 'f4ea6b0d-63da-42c6-b0c4-37d8c2a67143',\n", + " '4cf9abe5-a2c4-490d-8df5-046425490d40',\n", + " '4ca633c1-fe9f-469e-b478-eb0e38328fb3',\n", + " '7cee67d6-799e-46d4-a90f-e79e375049db',\n", + " '7d6148f5-241d-4a24-b813-012cded3e464',\n", + " 'e71e8234-ce43-4630-a878-f39ae9045feb',\n", + " '58083022-e95f-45be-999d-40b19ee133b9',\n", + " '9a95c45c-2ce2-4fe6-bccc-adaff6b645fd',\n", + " 'de606c6f-c23d-425d-8e1c-fcef96c08622',\n", + " '30ebf49b-3095-4bed-aec7-bbc59cad852d',\n", + " '4e8d60fc-05c9-4f83-9b70-094692b8c9a5',\n", + " 'c471923f-d927-4693-8bd5-4a81eadf7ef6',\n", + " '8ea3b93e-80a3-4b06-96d8-8a0b700607e7',\n", + " '5fd568dd-eaaa-48be-b5ff-b88ba12a11c8',\n", + " 'b2b622a8-7818-42cd-bb65-faf4a2e8b912',\n", + " '809952c0-fd76-40c1-8eeb-13c8ad3fddda',\n", + " 'f6ef1835-7012-41a7-814f-f67d1de7840d',\n", + " '1c05514d-1dad-4862-b220-aac991a4ae96',\n", + " '48e008e6-7f1b-464e-8cb4-e1523649b87d',\n", + " '265653a3-3709-4320-9ba1-1465cfd3996b',\n", + " '45a895fa-691a-4571-9c12-5d95b874b620',\n", + " 'bbbe17f8-4dd9-478f-917e-ac39e9cbf957',\n", + " '2fac6c98-3ac2-4b01-9081-6cf246b85b85',\n", + " '1aca7f6d-99b0-4934-a833-2289c9704b4d',\n", + " 'ff1a5cc5-b890-47a5-8fa5-7e94d87222c8',\n", + " '4e04ae91-6a0d-469b-9874-0cbc496f4a25',\n", + " 'd62946bf-4649-4437-87bb-d734e1a43308',\n", + " '2d044b76-103f-4071-853a-cff6adc26589',\n", + " 'dc55fa2d-1fff-4540-8c3a-b1648d94b0dd',\n", + " 'b20bec71-8ff9-42d6-abf6-4a7b98234092',\n", + " '3391456c-233a-4a83-807d-1ffbea8ae873',\n", + " 'b28fcf0b-a51e-4804-8071-efe89d2c16ad',\n", + " '7f24e22b-62f4-4ec0-abc8-bf704d2b81bb',\n", + " '5212fdea-5970-4e1b-ba32-4837c444fe6f',\n", + " 'afcca918-42fa-413d-b630-5ecdfa2ca897',\n", + " '4b2d0d90-586b-494d-ae8a-a99e61d56ff7',\n", + " '8b65d2c7-c9df-4262-9b9a-9889890c7208',\n", + " '21c362e4-2618-4dbb-820b-dc462b0039ff',\n", + " '5e3a2bfc-f1d4-45a3-931a-4b679463f096',\n", + " '8629d7a3-0e0d-4d04-838e-167dd40aa075',\n", + " '57c050b4-bf76-441f-b8c5-3a2f39fa8f0a',\n", + " '587ee803-1bf7-433c-801f-b34296e175c1',\n", + " 'efea1d54-f2cb-44f3-ae62-1e0e92ed70cc',\n", + " 'b7cb618c-e8f7-46fa-b746-bd48190ec992',\n", + " 'f2ccbe64-ef07-43ea-8800-8526d7136fc3',\n", + " 'a7b320bd-cd4b-4a99-8617-6107bf3849f7',\n", + " 'bec2ea03-8a51-4b69-99e9-cb7a169abf85',\n", + " '69a4038b-a0b6-4aa2-909d-c779635265ab',\n", + " '37789397-7a87-4de7-aa1c-3760ab3f4a9e',\n", + " '18a1d128-c1c0-48f7-9771-34b99c92e3a5',\n", + " 'ac06e890-ed79-4a44-bb03-b036d5069a59',\n", + " 'f51446ca-73c5-4dda-8512-f9d79ea493f5',\n", + " '37b15288-0386-4613-a76b-c133af89ebfe',\n", + " 'a15ee306-c98e-4612-9ca2-0b9d9f8cde9d',\n", + " '1ea3c975-479f-485f-9ef3-72db39c5e188',\n", + " 'e44c49bc-4511-40e3-999f-952fe4693ff1',\n", + " '10421ef8-f4c2-40a8-aa9c-eda03aa334c5',\n", + " 'c6ae0946-b1f1-46f7-ad86-21b86bae2ae5',\n", + " '38d87081-4df1-42a1-86eb-8954aa87ec17',\n", + " '344b11c9-34fc-4e0d-9f5d-d25241955577',\n", + " 'aea88acf-a982-401e-82a5-1dac5921f5a6',\n", + " '77fb40c7-862e-4b6a-89d5-2ca5a1913fe8',\n", + " 'a6e4767a-f782-4b97-bb62-d9c26a38338f',\n", + " '74a0a2ac-43be-4550-97ee-832f08ca38f5',\n", + " '05522c5e-a0f8-49a9-8f49-782685a9f0d2',\n", + " '429abf4c-7253-4f74-8db5-9bf05719ccf1',\n", + " 'bdf91ba1-e996-4364-b7ca-12bbcd7283e6',\n", + " '0fb8aee5-46a1-4252-aacd-68b808a626f7',\n", + " '3edc8a55-e076-4afd-82b4-74dd5f584d5b',\n", + " '5a27517b-aa70-4bdc-986d-fdc6adbbcac2',\n", + " 'dbc3e6f0-4750-488a-8663-1b1cde6e5bb6',\n", + " '7655e28b-c8b3-4577-a587-61817b571a72',\n", + " '437a6885-cdd9-420e-a5e6-e0b8d9a25750',\n", + " '58ea8b6c-0350-4104-85f9-b8fe9e4d28f1',\n", + " '59e7dab1-a465-4a13-acb7-54cc5d6f9ecd',\n", + " '10ccc524-f37d-4878-b659-ab7de84f1892',\n", + " 'ef251e9b-b422-4ef1-a25f-8f8300f1b922',\n", + " 'ac6d838c-a54f-4ea1-ae48-62286cd55190',\n", + " 'aa07a817-5305-4b53-8d68-cc841a318706',\n", + " 'ad87e8a5-960b-4951-b49a-0585ea09a6e4',\n", + " '20ade261-3176-433b-af17-3f05b9c847e0',\n", + " '4d718dff-c7a6-4d1d-be0a-07cc0c545465',\n", + " 'beea8543-9d54-453c-8d89-9b491ae9f235',\n", + " 'dd97ea21-f87c-48ca-981e-2c7fcc22087d',\n", + " '1bcd5581-c9c9-4b31-9f9d-0eaeec763284',\n", + " 'b564034e-a36e-48be-be14-8b8df30490aa',\n", + " 'bd1a0238-1659-4717-8bde-d214ba0119d7',\n", + " 'af293f5e-5419-4ef3-b2e1-3cbdcf1ae57f',\n", + " '58a86bd6-7b36-4baf-8e73-4d3520ca0883',\n", + " '36999944-10e0-4af3-8587-b6a0eb6ffb9c',\n", + " 'c46c8a75-079e-4f13-a5fe-f938fc4426a2',\n", + " 'b3cc304e-4fb5-4f5a-ad2c-ebe1f393654d',\n", + " 'f5f99ad9-94f5-4d32-bb47-be7af3496e27',\n", + " 'e3c97a34-df7e-4e54-b7e5-5e71aad711c6',\n", + " 'c6be916b-40f1-4f68-9db5-34377ab0c188',\n", + " 'cfef736c-5702-4c52-a533-e32e5c5355fd',\n", + " '5dd1a7e0-4674-4180-9364-721d3cf1d2ee',\n", + " 'c0d6e96a-9bae-4cc1-840a-0da3d5cf5363',\n", + " '8e75223f-415d-4779-bf9d-8add97e6d8ae',\n", + " '67642919-01aa-45b0-9da6-f7478520a0f5',\n", + " '251a65ba-a496-491b-8441-7b132fd58449',\n", + " '2270dcaf-d428-46a7-959a-1ef9ff8b0a5b',\n", + " 'd0004de4-5bec-4c5a-b4c2-c5258ec6963b',\n", + " 'b4a549e2-3bae-4139-bb32-414649db0cac',\n", + " '1fa1db3d-b02c-485d-a6b7-47ba3796daa3',\n", + " 'e8f94e0d-1191-4684-ac1e-8e8cd985c816',\n", + " '81480365-cde7-4e3d-8307-4113e76417df',\n", + " '5441eb37-c77c-481b-b508-37e05804bbf2',\n", + " '74b069c0-fbfd-43ac-9d67-3a579a86311f',\n", + " 'b14840e7-6819-4a24-83fa-13ec8ba40c98',\n", + " 'a425d5c6-7c6f-4704-a2d8-cb47558b5442',\n", + " '6cc23089-aa2b-44de-a2f9-63d4d21f2a10',\n", + " 'ba693b73-646c-461a-9be3-02a26cd5f276',\n", + " '604c470a-60b9-466a-8f7f-dfda0efb4854',\n", + " '35203249-1386-4afe-b12b-6f3c68939133',\n", + " '819bc1db-f4b3-45b6-9520-0bc073bb4644',\n", + " '4963c1d7-9eaf-425f-be12-bbf7c1503e50',\n", + " '883512af-3de4-4146-a876-aa60212b39c6',\n", + " '11f4c22f-37e7-4e77-94db-b22347f26860',\n", + " '500d7816-689e-4db0-be69-09e0f69bda84',\n", + " 'd62b7335-f66a-4859-84f0-d6434474154d',\n", + " '628fc09f-20e5-440d-84b2-4deef7bc8c5e',\n", + " '18917286-8dc7-479d-accf-e5df44f98c84',\n", + " '3e91d8e7-1caf-4f9c-95b2-f6716d85d9a1',\n", + " '506d5642-8143-4259-9b42-a8d5d890d7c7',\n", + " '739aff2a-ba50-465d-b08e-80878733253e',\n", + " 'eca3f5f9-7680-4828-b254-7d0c4cc6ee72',\n", + " '1bce0fb0-5d3d-4b6f-bfd4-db08823d440d',\n", + " '2282e738-7bfe-44e1-9ac1-9b519d053692',\n", + " '2ab31a94-ae1f-40ad-b483-b1de51523cef',\n", + " '07b2e615-63a8-4939-8fdb-fd8751b887a6',\n", + " 'e311865c-b6e8-429e-96ca-5d4f01afe819',\n", + " 'a6ead6c1-f87a-4fc3-9e4f-ed3d50237af5',\n", + " 'ca62e958-493f-4272-9d45-2fd27c3b303d',\n", + " 'd27a1b13-6909-423b-acd5-ba53490fd95d',\n", + " '3f984107-db9a-4415-baaa-a4f2608ac8dc',\n", + " '4f505053-8e45-4092-8d7b-736166948ae9',\n", + " '5b028fe2-302f-43ef-a3fd-2058e74fc7d8',\n", + " '5f8ae8e7-07b9-4276-95d8-74c31c17b264',\n", + " '6b627c8d-8894-482c-a408-342df2f71a65',\n", + " 'dd023931-a263-41d6-ad39-e1c58baf2ade',\n", + " '1c58e31a-4026-44e4-91d1-e1b60c8013f3',\n", + " '71f3d423-4b2c-47fb-9371-3f38a3c5f6ed',\n", + " '2fb5ee0d-3bd1-457f-89cd-8e7ef164e712',\n", + " '9f8ce701-35d5-4958-b727-1aadb68e27fb',\n", + " '2bd5f1a7-c154-4972-a182-c8be1d244bca',\n", + " '2fcc7da9-7cae-4199-9e60-becffbe78ac5',\n", + " '38142ed0-d232-40be-a387-7852b3ded545',\n", + " '67c2e8b2-64db-4a65-806c-cf3c9f56e5e2',\n", + " 'a08e0a51-35b4-417a-bb42-f259ec6621d7',\n", + " '7361d79b-c2e5-491d-9b63-445e01e0e5a8',\n", + " '954ed9eb-93f9-4401-a052-e087223704cf',\n", + " '9aa8b4ff-6c4a-4645-b2e4-cda9b599b8dc',\n", + " 'f9c99d81-556f-460d-ba16-0513740f39a9',\n", + " 'ac592791-3911-4ca5-824d-0eb4a0892fd8',\n", + " 'adf4d0ec-e2aa-4cc7-ad07-676aa49c3930',\n", + " 'd898703f-06fb-41dd-8930-b02865a733d6',\n", + " '714b83c2-680f-4009-9331-ee647a894b00',\n", + " 'f4d8e6f5-6b2f-4978-a138-2bc6dd9501dc',\n", + " '8241c471-d22a-4a45-9b0f-d46e02890e84',\n", + " 'cae40964-c977-4c0f-ab97-fea7b09ff755',\n", + " '2d3ca834-fbe9-4def-a544-817ca4874141',\n", + " 'f608001c-3836-4391-9d11-e571c7e33fad',\n", + " 'b1eec073-a914-46d1-8614-8f30966ce619',\n", + " '58bec53e-81f9-45b5-8811-c23547488415',\n", + " 'b184cb0c-c184-4a07-a45d-f4d8158ed3a7',\n", + " 'cb792bbc-065e-4cf4-984d-96e76435241d',\n", + " '8857bd8f-8b49-4464-be53-eecb88ed387d',\n", + " 'b85901a4-96fb-4bf0-816b-b26803c42bf5',\n", + " 'a1710ed9-65bd-4c19-aac1-e85168a36297',\n", + " 'f76c7209-c759-4722-85b0-ead36fceadba',\n", + " 'd7490914-af74-4bc8-be54-51ffe7f49b6b',\n", + " '72e6959a-20c0-42ce-9d59-dae1a6d7855e',\n", + " '256fea35-cc9b-4209-b558-84bd9ed154af',\n", + " 'c725f01e-d827-423a-bd97-dd48c9b5310f',\n", + " 'cf8e7952-c68b-4739-8f54-74997c439ef8',\n", + " '882f6172-4c6b-4575-8d22-689143b4c99b',\n", + " '0e849659-8598-4168-9b34-a304d06131e2',\n", + " '36528ef4-4f86-48d9-a5de-6ae2135bef3f',\n", + " 'bc9b5cef-310b-4aa9-98b4-951a6597a21f',\n", + " '52f2a8ef-4134-4c73-a16c-de7cc38381a3',\n", + " 'a44edc49-01c3-4cb4-b4a7-ae409454e41a',\n", + " '77a93920-77ec-46a2-af7b-884843f39f6d',\n", + " '146b8c79-b170-4b6b-8422-8f2963eb9e76',\n", + " 'b64ba118-144b-44fb-98f8-e51e7d693f42',\n", + " 'c5e757ec-9ce8-4b48-b45b-d18d9937fc4d',\n", + " '97758ff8-7cda-4332-83d1-21513a3113a9',\n", + " 'a23e2d8b-2de6-4050-a9ad-96ec690818c4',\n", + " 'c4444004-14a3-4519-a2ae-27bd4cbc409e',\n", + " 'e1930963-07e3-4b6f-b551-2d6dd0bfd0f6',\n", + " 'a662c04a-fc19-4873-84b8-b671f4fdf663',\n", + " '35c54b35-71b2-4c65-a1f0-6bb369c9245b',\n", + " 'a5684892-9597-48f0-b12d-3b60cf526e65',\n", + " 'ea2776ad-f2d0-4bdc-aab2-091d57c089c9',\n", + " 'ab2d8a11-2e82-4830-b6a0-5032d8307423',\n", + " '5c30d4dd-bad6-4512-81e3-489524257e02',\n", + " 'a6deff3a-69ea-42b7-9b41-2549689cbf69',\n", + " '4a9fb009-bc7d-4fce-b50f-7016e1a2b587',\n", + " 'f5d04bda-5f29-47f0-9790-7c9929d5dba3',\n", + " '0193e8fe-e8a1-49ba-b18e-16b18f0d5653',\n", + " 'ed852bb7-febc-4b0d-be55-21badbd9b561',\n", + " 'ce343685-79c2-48fb-8242-47da3b060a40',\n", + " '08a2c7d0-3893-4263-99a0-6a8015fef4be',\n", + " 'cefe4cb9-ff8f-43ce-b060-bb3c16339c04',\n", + " 'a791cfc7-fcdc-4241-823f-a90227883d36',\n", + " '76e32c86-0420-4e04-879b-a8c4119c3616',\n", + " 'c98cadd3-1e71-4416-b288-b82b74a95895',\n", + " '5e8262a3-ab55-4ca9-97b8-ebaa4f1d3eac',\n", + " 'fa83a319-6835-46fc-9986-84e163f071d6',\n", + " '84e892cb-beed-4ea3-bc80-92b607dae6f0',\n", + " 'c21894a3-be1d-47aa-b533-04a6d386c366',\n", + " '85d4a033-044b-4bcf-8fbb-efc44decc05e',\n", + " 'b6b96241-9c81-426d-9617-1b451912e87a',\n", + " 'd18fcf5a-f248-4d96-81a0-e2d30a02f885',\n", + " '0365c4b3-0e27-4c2e-87e9-2d2aa6680eff',\n", + " '713f0ec7-0dbe-4abf-a3fc-6c1c91e53939',\n", + " 'a0af1719-c5ca-45b9-b31a-dfb024d64b5b',\n", + " '7702202e-41dc-4080-9285-8d02f6538ae9',\n", + " '0c228221-b76c-4f1f-a606-695336fc41fe',\n", + " '453084fd-8f41-4612-87c9-d4c84701ca1d',\n", + " '40c4fb6e-f4b3-40ec-8c44-db2200b3f34c',\n", + " 'ae392e76-3aed-41ff-83ce-575bc4759404',\n", + " 'f66387f6-6042-4a93-a0fe-c3b47be3fa86',\n", + " 'b398f5f0-f612-42dc-a262-65b879c55da7',\n", + " '461bf165-a4a4-4962-946b-a5cc3c2aade1',\n", + " 'a649b04b-ced3-4482-a0bd-14f4bcc87e89',\n", + " 'eca194c7-96b8-4642-9ed2-3c641e61cd09',\n", + " '8f4443c0-81fb-4f7c-8d8f-231c5bbc3980',\n", + " '7d1fc39d-5703-4f75-93b5-063dcbfdd438',\n", + " '7ae9a2af-3e91-4fc0-951e-95ad084d5188',\n", + " 'd97735b9-405b-4461-97e3-9efaf4051eeb',\n", + " 'c9d0e273-56ec-4610-9855-5ec2ed2eef46',\n", + " '113f362f-1380-4ac1-9c99-b8b177444537',\n", + " '61b0b274-d2ee-4ba5-99a0-bee403de066d',\n", + " '6ad9ccb0-f2d4-4519-b571-1577860cd8f4',\n", + " '8478dffc-4e12-4cfd-94ca-3431fe0f21b9',\n", + " 'fe1c1076-68db-48da-a245-963b5c8806f9',\n", + " '378b868f-4b13-4e9e-a3b4-29b82a81ee1b',\n", + " 'c4c2d9dc-20a1-4102-beeb-57061ae6ec38',\n", + " 'f533bb66-d215-4969-bdf1-412a6dd72489',\n", + " '45232e4a-48bd-446d-b80c-646698e84569',\n", + " '05022bff-1786-4153-bdd4-59f1d2b949f7',\n", + " '7de99738-4825-4d6b-98de-6ece14dd125f',\n", + " '4828bd6c-d5fa-45a0-864b-5b2dcd1c05aa',\n", + " '27653a16-40e7-450b-9522-d18a54f5e782',\n", + " 'b7c74744-19f2-4315-8d33-b01879d8d628',\n", + " '21b15424-4f1c-46e1-b90c-2f938cd75109',\n", + " '1b24d460-fe81-4512-bc1d-99364d6f1268',\n", + " '5370ab79-7e59-4bd3-b7cd-654bb35d78d1',\n", + " '410caef6-ce76-453d-98d6-99a427fd8ceb',\n", + " '1fd68dd4-849f-4221-82c3-abc26a2e3029',\n", + " 'fa552d45-4c3d-4c32-94b1-b96d45881525',\n", + " 'b16c0ad7-ea46-4adc-9896-a362ecc8d327',\n", + " '6138493f-d782-4137-bdd8-fe6d28c4763c',\n", + " '5ef77c41-b81f-4af3-8d80-2dcbe37c053f',\n", + " 'e17deeb0-e094-4125-9bb1-c43c59c68407',\n", + " '8d05b951-83fd-491b-ab41-058864c16397',\n", + " 'e991f554-bb11-4902-953b-b478fb947d1c',\n", + " '330435eb-8a86-4d68-94b8-ab1b37b8ed21',\n", + " '8e8d53dd-3301-4157-8f94-f8c6b134fecf',\n", + " '68519868-4060-4b45-8fc7-2c573996ecc3',\n", + " 'f70eb6e0-0ed9-4ac8-b1e5-6edd31e269fd',\n", + " '8658ee9e-40f2-4b76-afe0-179e1389fbd2',\n", + " 'd53a17e3-4efb-4558-8ca4-2223d895ed24',\n", + " '7bfc35ab-814d-494a-94af-b9bed089868e',\n", + " 'a19dbde5-fe68-4733-aada-c8393bd2f4cd',\n", + " '48db1b6f-4a76-4ad1-9645-6286aed5ddd2',\n", + " '6942f935-1d84-4600-a379-82d003d6f80b',\n", + " '1aae8ec8-ba1f-4a2f-b280-098d5a65d6fc',\n", + " '20833110-3a97-45a9-a440-72f3ef3c5b70',\n", + " 'fcb0f666-4964-4ad5-8a55-6aabdb5a24ce',\n", + " 'ffba4655-c2a3-4ee0-abab-2a43a59e8e2b',\n", + " '2bf8c7a4-8ada-44ac-8ee4-6235d64d5143',\n", + " 'b86eaeec-a619-457f-84cf-114b38b16de8',\n", + " '50823fe3-a34b-41fd-b1ee-80d6ba6dd843',\n", + " '01899e38-75ec-40b4-bdf5-17540000d306',\n", + " '7857c3be-1e51-4ee4-954c-572509b855e9',\n", + " 'd90c2e0b-1015-4c0f-b876-af7ff5d5d4ac',\n", + " '5a94411d-0974-4e79-8fba-f5087dc48b90',\n", + " 'cca061c9-c886-4bab-b15f-d50b4bf57c07',\n", + " 'f5c625c1-132f-4605-bcee-0bd46fd009cf',\n", + " 'b5a02370-34b6-4376-82a4-7a1912e07f21',\n", + " '25585fbb-1034-4e6d-b50a-30badc4ce840',\n", + " 'b5e39161-2253-40ec-b901-29ee22c696f6',\n", + " 'b5781a94-5d69-43ed-980a-32746d4de9c4',\n", + " '20835b2f-c234-45ec-8153-616bf904715f',\n", + " 'c836c188-2e8f-4967-8a0f-49be3819006f',\n", + " '1fa1198b-0450-4000-99b3-f57681e743e8',\n", + " '3b39d561-46b9-48dd-a00e-e234062a3e3f',\n", + " 'bab25ada-4ca3-4abc-91c9-ec78e29d55b2',\n", + " '58887136-1b4b-4905-a355-c3515268f49e',\n", + " '3262e922-20c6-4919-9f1c-fb2ad6e8b21a',\n", + " '8f83f620-ae25-4ead-b3df-94c0d1a8e961',\n", + " '9e7a3a24-3660-48fb-a8a0-781bf4b507ea',\n", + " 'ef03e6c3-29b3-4cb7-b281-630a3376a178',\n", + " '9a122de9-14ea-4bad-a62a-2505d0c24878',\n", + " 'e53c1ba8-4ea4-4505-b00a-dd6ef1048f82',\n", + " '40fec51b-df56-49c1-b32d-84f7487cc179',\n", + " '851cff1e-6d7a-4517-8643-504cdf56e363',\n", + " '8e70b6eb-f071-4ccf-bdb9-0afa30651522',\n", + " '151936da-42ca-40d8-b1e9-05b7b10d22a8',\n", + " '0572c468-84d7-426d-aaf8-869aaff70621',\n", + " 'd2e0877f-fe09-4b95-943f-87fcc85dd0ad',\n", + " 'c7c534e1-e284-4079-afb9-4dedcf2e15c1',\n", + " 'fe87797d-b735-4459-81a7-d50c84a7c3e0',\n", + " '10032599-1754-4c53-a904-8e1b599c1708',\n", + " '51437218-5f46-49df-89ac-3acb69c0dce5',\n", + " 'b4aeaadb-62f3-431a-a1a6-5b9c8ace8077',\n", + " '98e8e1ae-d2c0-4f44-82bb-164f7f810e3d',\n", + " 'ed265e34-bf2c-4bc6-b631-0597bf0b57d4',\n", + " 'b4268204-3f61-4b3b-a395-f637fe089f4e',\n", + " '22481545-5290-443c-b809-1fbcf6f0b98e',\n", + " '65aa721c-48cc-4150-b430-4fd9ec99571a',\n", + " 'f5d9cf30-7057-4c01-97a7-6b8b43327293',\n", + " 'ddded94e-d15a-4bc1-a037-74975a15fbf5',\n", + " '96909fb1-23ad-495c-af4d-37640dee9620',\n", + " '3ca34944-7cfb-4381-b364-8b893601f96d',\n", + " '947c1c86-59e7-4e08-b23f-d194bef2d09c',\n", + " '6964324f-8f5e-4be5-a5fc-ae6fc81092d3',\n", + " 'd5ce5647-b465-4ccf-9cfd-596bc7117951',\n", + " '782fb53c-7908-4e35-ae93-ea3212a0b7a3',\n", + " '43f79188-b657-4b87-8f91-1173eeaadedb',\n", + " 'c04554c0-ccad-4bbe-b916-87a023ec4236',\n", + " 'e8835d14-136d-4527-a72f-84d563e22029',\n", + " '7c91f534-9a61-4d20-b823-6ccf25e0c598',\n", + " '2a05690d-7833-4d03-9377-5cc94150c297',\n", + " '7501efcb-e185-41bf-8ba5-8c326d8dfebf',\n", + " 'bce5135d-97a8-4444-abee-6f746851236d',\n", + " '1ec57ee1-32c9-4f0b-a036-02f16c3039b5',\n", + " '7e3d4af9-51e9-4449-9d6a-a91f11838894',\n", + " '6277c1b0-df06-4e8d-a1b5-6bb3040132da',\n", + " 'e1667df2-b0ab-436e-b672-8db1495ee3c7',\n", + " '25516148-1976-4264-aa40-5da7a4a2c265',\n", + " '6a6ac81f-ae14-47b8-a099-94c19bb9c84f',\n", + " '53b675d0-1fdd-409c-81a9-ad5a9ad0c657',\n", + " '210f94cf-e20c-42df-993b-db151c3bf938',\n", + " '925b401b-b745-43e3-915a-293feaf5aa01',\n", + " 'b707ca7d-4dc4-438c-9506-41a4c1df036c',\n", + " '9235a804-d08a-4ec9-8f12-72e13325dc32',\n", + " 'a8c8b250-d03d-4bbd-8c9e-b46bf61e6ea4',\n", + " '5313e882-b28b-46df-9126-db4ac83904e3',\n", + " '9763dd93-19f8-43a2-a73c-5bd5e69258b5',\n", + " '4f3e4eb4-6573-4763-944c-19829d9d513c',\n", + " 'e8c340f5-6529-4f66-af92-38d3be628afc',\n", + " '84c4fa52-74ca-4570-a1ab-1f4319168060',\n", + " 'f62e5617-05ff-427a-b653-89111ea8fed8',\n", + " '2cdddd22-5977-4b1f-917b-9b2feffd37eb',\n", + " '5f73af74-82ca-49e3-8ec5-34cf4f7130a4',\n", + " '7b19aa40-3bdb-413c-aa95-4a553e0f9ce6',\n", + " 'ee015b29-634f-425b-8f34-f22802699988',\n", + " '30a155a7-c503-4b16-b22e-1980bc0e05a3',\n", + " '96acc434-612a-40ce-9a92-769a638f4f63',\n", + " 'd9b691d4-c499-41a8-aac4-e91175692710',\n", + " '4fec77cf-1369-48a0-b497-7dd74a6df665',\n", + " '07e70a0d-5c97-4593-8056-1a35e20db396',\n", + " '2e8f36ee-4885-4941-9225-59e349883600',\n", + " '8721a59d-32fb-4c3e-b20b-dbf971ed8557',\n", + " 'ecf834e5-2e8d-4d82-b9e1-d238a47b9e21',\n", + " '6689677d-5c4b-4b88-8185-3fdd3aa0f93a',\n", + " 'acc42416-9240-428b-81e6-da54a4dcf51c',\n", + " '7ebd6919-1599-46a9-9495-af504e89d306',\n", + " 'c24b09d3-14d9-43db-b05f-4b8688a98d6d',\n", + " 'b790323c-eaf1-4e5f-9061-0a6ef6969aff',\n", + " '7703a2b6-29b3-4b81-83c3-1da0ddc1f108',\n", + " 'ff0fa400-1a61-4b9f-9832-1dea0d386d7f',\n", + " '59ce7808-1bac-4978-aa4a-5fed66aad242',\n", + " '5e743900-0161-4ca7-be7a-fb508236e428',\n", + " 'd3b70703-428b-4bb4-8528-3afc2b53eb0a',\n", + " '63ab67f9-20a7-4cc1-94af-08bc0026d3d9',\n", + " '2550a63d-518d-47b3-9d95-0ec7674b77c7',\n", + " '8073e4da-ce36-4180-9f23-0fa57ae45edb',\n", + " '0064cbd2-0ac9-41b2-81ea-9ae470b74acd',\n", + " 'df3fd315-5cb3-400c-9cf4-aec726f1b024',\n", + " '40c8bff9-6895-4168-ac37-ad9db5f3a0c8',\n", + " '5f697b80-eac6-4702-9d2d-cd93e09aec23',\n", + " 'd14f5759-6a50-45ed-8faa-bd3dc362dc00',\n", + " '6c54b567-4e74-46fc-be7c-664fd6a10417',\n", + " 'a6d27040-b49b-4439-9a5d-9ba05e5e465a',\n", + " 'e012be9c-adad-413b-a52d-2db4df0ae4eb',\n", + " '7cdf0268-8e08-47bf-b984-3c015d4b4d5b',\n", + " '037d219b-8a3c-4979-aeed-50b3d3ebd78b',\n", + " '6780cdc6-3442-4c43-9055-c0684a9b0fff',\n", + " '05c8dc96-db5a-433f-9db1-572bc307d163',\n", + " '082e0868-fdc8-402c-8df5-3bcb4e0862aa',\n", + " '8a080b5c-3470-47de-b82a-4b7de831dd97',\n", + " '491f450b-caaf-450e-bf8e-67b73dd48cc1',\n", + " 'c3e4ac69-a3b6-492d-aeb7-bd70f768c7c5',\n", + " 'c241aa98-6f14-489c-8f0e-97fbf1247656',\n", + " 'c835eee6-0bb2-4518-b23d-fbfe6b11e1b4',\n", + " '1b7dced4-a70c-48a3-b7e6-d62c79b5a184',\n", + " '97f1ce72-ebc4-473c-86a5-d106476c8b8a',\n", + " 'fb864f66-d5f3-40bb-a93a-5e30cfd1f9bc',\n", + " '64273432-9919-4eb3-b729-fd113b65184c',\n", + " '33bf6ace-ea06-4458-8e42-e50bee4c77e0',\n", + " '277d52f9-1494-40bd-a3b2-ae5cfdda677c',\n", + " '161ab8c6-fd69-4cbc-a966-479b6918d5fc',\n", + " 'a25dad63-6f3d-45ed-a142-468311335c7a',\n", + " 'fe07498b-1229-4184-bf74-3e595e44633b',\n", + " 'b8b0d7a7-62d4-4789-b2cd-a3a3b7a8f252',\n", + " '7643ec59-d5b1-4773-a0e3-896667fe5b7a',\n", + " 'dfb0b3fd-3e6b-4c18-bebd-b1aeb12fe3f8',\n", + " 'addd80aa-50c1-47e4-81f2-37a0bc545666',\n", + " '6284ced6-3c50-419e-856c-130525dbe1e2',\n", + " 'ae962455-9016-44c6-8897-6e9eed7f487b',\n", + " '26983708-8e8d-4c65-8854-b1c631c1fbe0',\n", + " '6ebaeb47-9371-4904-8470-1081e104a4d6',\n", + " '85644669-6230-43ff-ad33-bb88aac14cf4',\n", + " '739da826-ed02-4705-bce6-d9b2099b5464',\n", + " '2206226a-e00e-4906-b98b-b54d41ef90a6',\n", + " 'c2954ed2-d70f-4457-bdcd-136a757eba75',\n", + " '767423e6-407f-44fa-9741-aa12f2065f58',\n", + " '6d1e660f-d17f-4242-b742-8e6258c3ccc2',\n", + " 'de25bef4-8d39-46f8-acfa-72cdd45a06c8',\n", + " 'ed951c6c-71df-4531-827b-2313dfe4b3d5',\n", + " '91df97ca-9216-4519-8995-b16f93a1687d',\n", + " '2788245b-9e47-4968-b481-a0085e267d41',\n", + " 'eac73db8-bfc8-4a7a-95cc-2945113a7e63',\n", + " '2951af6b-63f6-4a1f-85b9-22d186af54f3',\n", + " 'd5594db7-2a5d-4a8d-8593-b8c8e33c8a5d',\n", + " '93940320-b1d0-4540-99f7-1f90c61372ab',\n", + " '50ba95d9-af02-4acb-bff2-a24042f250fa',\n", + " '7be5b1ec-408a-4357-8a12-15fb67c40d9d',\n", + " '83139a06-cad3-468b-ae67-c3c39a222609',\n", + " '9fd181d2-4aee-4e90-99a3-21267bd3055a',\n", + " 'df692a0c-a885-4fe6-ae72-529a1d79369d',\n", + " 'df379797-87ad-4f33-97cc-2f21239f51d9',\n", + " 'b5c4660b-e898-42de-9b72-caf4c116a863',\n", + " 'aab74289-8122-4686-adb2-072100f00768',\n", + " 'd7f22da4-2da4-4152-9aac-a3abe1b524db',\n", + " 'e30f296b-7275-4826-86d8-fc9b3134f3e9',\n", + " 'c22538d0-3422-426d-b5bc-86a1aeb3f17b',\n", + " '756387a6-e41e-493e-9c9d-4eafbaf771a5',\n", + " 'a630a1c7-abb3-4f27-af38-a6dd5710c56c',\n", + " '189c5f0e-d7ce-44be-8572-6caf3007d6bc',\n", + " 'fce91be2-67d3-4905-be74-872d1dd4200d',\n", + " '6f3d3331-eb17-4d36-a203-9c4c67c275a4',\n", + " '9f10a8fd-151d-4538-bb69-6864cd204c53',\n", + " 'a3d8a924-dae7-4f32-855e-2a2abd1a36ec',\n", + " 'e76ed34b-e99c-491b-ae91-dfb0fa8f7011',\n", + " 'a540900a-cc2e-43b6-9082-e46d997c220a',\n", + " '49ec8859-70a4-4354-bb8e-5ed9d9d745cd',\n", + " 'e3a32299-ff1f-40c6-95f7-71e86ff26385',\n", + " '38e51899-4ec6-4ceb-aacd-cf5776874bfd',\n", + " '2dd49ff1-5101-456e-bac7-259b82739557',\n", + " '23206ae3-3dfb-4f47-8084-1b8fc9910ec5',\n", + " '8de5e96d-c1e5-4d59-9a56-a764c64c6d8a',\n", + " '44bf81dc-1f01-4bfb-857d-054ed2624db8',\n", + " '4326c70f-ce1c-40d0-a413-69f733e8aa45',\n", + " '09eeaf15-e18e-4dbf-8d86-0ac19318ba3d',\n", + " 'ec548ea1-4c9c-41c2-8c95-1abb3ba2224f',\n", + " '8a290cfc-d485-47dd-87c4-9b53f377e47a',\n", + " 'bd75be6d-8ffd-420b-8703-3d74d58711f4',\n", + " '66cd3966-2043-41c5-b3a5-3ba2656a0555',\n", + " '0c39c9a1-26da-4f58-85d9-76e3a1743bfc',\n", + " '52530e1c-4697-4c91-9ac8-3907cb7e55cf',\n", + " '6b2dda6d-2dd1-4469-a630-742f0f4e0269',\n", + " 'e35356cb-d365-44f0-b7cf-7da0b23c631f',\n", + " '8a6f0b1a-b33c-4928-9968-a18d7a7286d2',\n", + " '8e73a175-7b3e-4629-b4e3-ee0a7aaf1080',\n", + " '648c3bfe-ce99-47e7-856c-d4002bfd4cf4',\n", + " '0626ac8a-ac63-4dc4-b44c-fba3c391bfb9',\n", + " 'ccd5a760-8a59-4c77-bff1-c95f90779c73',\n", + " '15b9762a-b5d8-4761-b975-a9d6c6752c18',\n", + " '76591e5a-dec5-4a21-85cc-b9bc573aa545',\n", + " '1c4a9416-e9b0-4e53-9e71-fd6c3ae58384',\n", + " '135b01fe-dcfd-4136-b2db-4aa6e05d8681',\n", + " 'db7227b2-1fff-461c-b18a-420bfc3c975d',\n", + " '396dd541-324b-4381-8028-5a6855276ca0',\n", + " 'e339279d-ae08-486f-b21d-d5a38515fc46',\n", + " '548bd487-10cd-4420-9fde-95f537946856',\n", + " 'a58bdfe3-ca2e-425c-858f-aa2d299136e3',\n", + " '6df2ca14-8ba6-49df-b0ac-07add175b0f1',\n", + " '3191026b-c23a-414a-87e0-8f7d820952ce',\n", + " 'cf6c40f1-40e8-402f-92a8-5da71f57b7dc',\n", + " '3f7f3950-54f5-4612-ad05-194ae06610ae',\n", + " '1afc8c65-8f48-48ef-821e-915fd4ee7142',\n", + " '2bfba9fb-4dbc-45aa-a628-0908be4c0313',\n", + " '9d663c50-3f7d-4902-babb-b165947a06c5',\n", + " '75c7f98c-123b-451b-8ee6-4784b814009c',\n", + " '835fb1e9-4341-4a9e-8f00-c46b18b09124',\n", + " '36ffecb7-d100-44d5-9442-359e50bd4e7e',\n", + " '6a7858cd-1a6c-4f7a-b859-97e74549cf77',\n", + " 'a1f28a66-4f07-4386-9dbf-24dcc7d896ce',\n", + " 'b0280e24-0aea-4596-b9b9-5a9b82e1f4c2',\n", + " '5b6ab030-35a0-44b1-9c9e-40abe55745c5',\n", + " '02219557-563c-41ee-b54b-894175bccaf1',\n", + " '663c87cf-bdff-47ce-a062-919087883f91',\n", + " '7242ed2c-a2c7-4590-9a0c-449eca28c5f8',\n", + " 'f0969412-9cfd-42d0-ae38-786b08fb4a99',\n", + " '5553b553-a95c-4ee0-b1cf-fc324cfb00b1',\n", + " '87785011-123e-445e-b1cd-657ec579c023',\n", + " '80d088e8-4d5a-4fef-a263-3efd69cda789',\n", + " '8327dbd9-c7c9-4700-86f2-d48e0700cf7f',\n", + " '70119e0b-8c39-47bc-8125-f6f15a3a9973',\n", + " 'ea60bb7f-3174-4489-8724-53ff0015a25e',\n", + " 'bf3ac5dd-d082-430e-ab41-02fc05755bb1',\n", + " '3ea96ec9-0a87-4e33-8285-fa0e43851d30',\n", + " '452679db-1044-4f33-b327-80958062b64d',\n", + " '787f6408-7a30-4b03-8967-7f1ef140b117',\n", + " '4bdc2222-972d-400c-aeec-5d382471eb1c',\n", + " 'd58f2a8f-968d-48b0-9d53-f601332de448',\n", + " '21986a74-6efe-40e1-a150-dbfb9453602a',\n", + " 'f692dbde-844e-436a-81a7-246757af26e1',\n", + " '3c03938e-1643-4567-a7d6-2c080cbe3ac0',\n", + " '5d5cf088-06ea-4ef7-a3cf-8f3f113be99e',\n", + " '91ef8eb0-e937-4823-b967-154efa6dacdd',\n", + " '8ef60ff2-0226-49ca-833b-1c6d7872aebd',\n", + " '7d1837c2-1c36-4912-bacd-69d676b46824',\n", + " '8c6b3f2c-ff76-477f-a431-ca02b5c86021',\n", + " 'ae273cd1-6c02-4b05-8e38-59f1396edb32',\n", + " '33a73003-b50e-430a-8a88-9d03e41bef98',\n", + " 'e0e4caee-cfd3-481c-9ff8-4d983de676d6',\n", + " '03514313-1e6b-4b75-ad73-3d397a7dab1d',\n", + " '21acecdc-0ea8-4000-bed0-0dc23fe2d776',\n", + " 'd89b485f-7c8e-4907-8162-3a3430a52567',\n", + " '6bf298e3-d5af-454d-b433-260fd05108a5',\n", + " '11785067-9868-4607-9050-9d6829241861',\n", + " 'cca86895-e47b-4162-8611-b9e68103941c',\n", + " 'ab270db4-25b5-4b76-ad98-cafb7f512921',\n", + " 'ce49d6a8-3051-4c94-a6f3-9d7dd70e798b',\n", + " '5751f788-1b16-43e1-a310-8d8162e0b26f',\n", + " '38089985-9682-4b19-89e8-92b421a7184b',\n", + " '6d72a762-df67-4ee2-916e-ada0191a7dbb',\n", + " '9f1f4740-7507-4249-a2d1-792b9fc2db3c',\n", + " 'e7aca692-51cc-4a3b-a2f5-437f1c6ee828',\n", + " '7291d4bd-6819-48ac-9c6b-b3559b74fe35',\n", + " '08f284d2-40a4-4dea-bbb7-21e81f0251b8',\n", + " '3614b2d6-7365-46a4-9489-b1601b45af81',\n", + " 'edbc3163-8c3f-4631-a131-f84c77fec01c',\n", + " '12794763-9440-4770-81f5-5fb44118cd51',\n", + " '24908e0c-39cc-4827-89cf-bb163ef79e4a',\n", + " 'de320ccf-6661-4a46-bd8d-1e2a30467d58',\n", + " 'e79563f9-33ba-4a1b-84ee-2ec0e33f5941',\n", + " '2d26b852-9c98-4a88-bb92-40a464655e23',\n", + " '01153c1e-bcc9-478f-bf51-e0c0416c2127',\n", + " 'cc5b137d-edc9-417c-8cff-2cfca9fa342b',\n", + " 'e16d3165-66d4-4a08-b50e-b62def8c1036',\n", + " 'c95722ac-0513-4a5e-b005-b61b172521ef',\n", + " '485d1ca6-a061-4a62-9797-b60f32fea5a2',\n", + " 'aef0dfeb-5066-4112-827a-14ac9fc47287',\n", + " '9a938505-c433-4a2c-b926-366878b05f2d',\n", + " '1a990d21-d694-409b-a985-c907649647aa',\n", + " '431f27ee-9379-4b99-a321-c088274224dc',\n", + " '22621ba5-7ce5-4ff2-92ce-785fc7afe24c',\n", + " '98f7fa34-cff5-4bf8-aaaa-a0e16e15f644',\n", + " 'fb29d25b-468c-4e56-8448-14117e6aedae',\n", + " '3d87d6e4-04cd-4f61-b14b-1ede2558d541',\n", + " 'b7de2c8d-0ad3-4902-9a4f-3ea2d3de21f7',\n", + " '84fa3634-7b42-49a1-a8a8-7b0ee03cee20',\n", + " 'dbd2c6d9-7cc0-4494-bf5e-30b10079dc52',\n", + " '1cebb669-d90b-47f9-98f4-9a8c305b27e3',\n", + " 'eabeb083-c129-4093-b16d-31b8617d911a',\n", + " '5343d359-72cd-4a41-a96f-f7321783d2e0',\n", + " '96c23667-443e-4a58-ba8f-dcc2f187c27b',\n", + " 'b4b7e3eb-45c8-4452-a110-c301bd1ea3ba',\n", + " 'a883467b-c3a0-4846-a3ac-abf3823e3ca9',\n", + " '5c0628ab-ad5c-4577-bbc5-b3c6595399fc',\n", + " 'f5d4d1e5-e2d9-4468-8b22-998848df5b6a',\n", + " '0d4fb067-015c-4b88-939f-840aefd68151',\n", + " '96426160-044f-48b5-a9e1-d15dcb233b0f',\n", + " '8a854efb-4560-4ca7-a54c-6ed7cf0bf1ef',\n", + " '380b562e-b9db-48d2-91ae-9d627e536de5',\n", + " '7cafa6ab-5325-4d94-83d2-8dbb33ea8335',\n", + " '9d8b145f-8673-4916-bcdd-b7dab0c6acee',\n", + " '14d69ae9-aaad-444c-84b1-05cf80103a18',\n", + " '65fc4377-0ba8-4f54-9af6-b8341c20fe99',\n", + " 'b28177a3-432b-435b-a683-5cf1e5f0ca01',\n", + " '3e582a94-1b76-4b82-a9e3-342862bf627a',\n", + " 'be97e48e-32dd-4eb9-9f88-fcd21db55826',\n", + " 'ac60681d-b819-4d7f-860a-a203b402970f',\n", + " '84f0a9cb-9750-4c31-929f-2e24bf40cbb1',\n", + " 'f63b28e3-1505-4009-8933-25e5285edd99',\n", + " 'e67871bf-9404-40f2-8587-4fb5fcf2a035',\n", + " 'be5345cd-11b6-42da-a2a2-2e1b9a305fd8',\n", + " '669b8d4c-7b60-4d9d-8801-7a00b5e30ca3',\n", + " 'cf5f69c7-028b-4b57-8fe3-5d262b99e06e',\n", + " '653d8377-cfe9-4371-8e4f-dc6fb51a5155',\n", + " 'a39465c2-3ac7-4402-9b67-8e95786ce35d',\n", + " '0238195f-229f-4c5c-b247-529991bbc5a8',\n", + " 'f3ed921a-b163-4980-81af-bf44db2dd2e6',\n", + " '2115168b-436e-4a27-bc97-1e8529e8f5c1',\n", + " '6e0f8323-0ff5-469c-8e4e-8896d755b7bb',\n", + " 'feedbbaf-eda8-4bd6-91b7-76e568caa218',\n", + " 'b2a18940-c755-414a-9464-5f4b14fb824c',\n", + " '158736fd-ac4f-4226-add0-c6191a1dde04',\n", + " '700c50ca-8ef9-416c-92be-59dd392b5831',\n", + " '70a9451a-a4e5-43f1-a005-3d5174053eb9',\n", + " '904fa1f7-30ba-47e6-99da-935deaa9a188',\n", + " '8dc3129f-0f71-407f-b684-76fab47aa4e9',\n", + " '64ff3f0d-a77c-4f34-aebf-bf193f1013b9',\n", + " 'd6621ef3-de75-4125-94ba-b97ab06418e0',\n", + " '8283ae6e-67c2-4375-a2f7-716ce1d7af5d',\n", + " '2d62a48a-a892-40ac-a4a3-6f9599a9c3a4',\n", + " '7124db49-0863-40bc-a3aa-1ef5fa6c302c',\n", + " '694ff1c2-f167-46a5-af1d-161b39059a13',\n", + " 'c501506a-f143-45b0-b96b-a0f0573e1b8a',\n", + " 'f17b4c37-dc6a-4e51-b095-0a4956c7d9c2',\n", + " 'ed1003c2-2dd4-4bb3-8521-00a9659c9733',\n", + " 'c78b59d1-3cb6-4f69-9a89-642d1fd00c03',\n", + " '2a94e160-5426-43ef-baf5-b82ded0f4169',\n", + " '8a6d8771-2b1f-464d-a0b7-c0b600643756',\n", + " 'f2ffd449-6e2e-4d1d-9bbd-aa1135024739',\n", + " '91e803dc-a5d5-407a-8885-7e75556d6521',\n", + " '241b9644-6ad6-42e0-b8db-6fca8f9f14e2',\n", + " '9a530c90-ae4a-4133-b15a-ceb82ffefcc6',\n", + " '6a695132-7e52-4ff1-a4ef-bc1d656a9303',\n", + " '2b13968b-5493-4412-acc7-0e06edebfe1c',\n", + " '42af1b0d-3cb7-43a2-ac39-321f069243ad',\n", + " '1c4b105e-f47d-4a80-a91c-61746b46f89b',\n", + " 'f4b2556a-6c97-4fda-863f-79f883f09aa5',\n", + " 'eb6e7b4e-6867-4343-b0b5-a0696130e400',\n", + " '20e86a8f-2e69-4401-86f5-0142e32121c4',\n", + " 'a9ca7f9c-46e6-4ded-9f68-ad47fb681783',\n", + " '2398dd50-85b7-4b52-9b13-26a0c53aa8ae',\n", + " '36d6ac31-5051-45d5-8e81-e8ed5ccc6853',\n", + " 'e543aea5-ef30-471a-aaa6-7da4681aad69',\n", + " '1ebdf3d6-5b2e-4195-8d1f-5c6b47e821ce',\n", + " 'f3a25498-74dc-4c54-bc5d-7d500361b31d',\n", + " '42ebb11e-b91b-4b7c-9f90-93b5280cef31',\n", + " '2ed17948-b7c0-42f9-94f8-befb9cc8ffd6',\n", + " '431a572a-9e52-47fb-ae87-8abcfa075dce',\n", + " '29cf96e8-dccc-4bb0-b686-670ab3ef637a',\n", + " '7dd76c07-230e-4700-ac37-2c257ae90f96',\n", + " 'ef22e7e4-34c9-42a0-9738-1ed4cc9404ba',\n", + " 'cd9ab46d-a92f-4108-b6c2-0ea82a8f90d9',\n", + " '1e895870-2ae9-46aa-89ca-2cd27d58cd44',\n", + " 'c7401b41-66db-42f4-b474-d58b19ce8578',\n", + " '394a0729-0b82-419c-9b79-af4ab9522a83',\n", + " 'a6fa4bbb-9031-4648-8140-3eeab707cf45',\n", + " '50795835-1184-4dd3-b18e-4c32e39eb9a8',\n", + " '9885646f-0953-44b7-97f5-b08384481114',\n", + " 'a10c68d0-d8bf-40ef-b9f1-19eff14b45b8',\n", + " '45d57b52-ac35-4747-b0b5-3eec11a38ca7',\n", + " '0c325f05-4a8d-46ae-8f84-4b089eb29c92',\n", + " '3a094d05-2eed-4a54-9116-39de3f52d1fe',\n", + " '6a7ec5cc-116e-4c23-9770-4f7ef85b0966',\n", + " '0c41f40a-229c-4922-8a9f-4efcafb28102',\n", + " '57f7fdd2-6cb3-45c8-8ad5-cce64950ef52',\n", + " '181b047a-ed5d-4932-8001-35ce2071aa34',\n", + " '2e4b195f-19cb-4545-a943-2bb7c32bad98',\n", + " '1b32dcae-9bc7-4415-bb14-841918665027',\n", + " '4f040336-8755-49d0-b136-3f3b24138854',\n", + " '18c0c867-0b3d-423c-8334-7d0bc1a6dc59',\n", + " '6875a92e-3172-4c1c-9e4b-fcdb5389c84f',\n", + " 'b1160d73-1037-46ca-ac6e-aa31468d868e',\n", + " 'e3817b06-61b3-4af8-8b60-c87a8feb1656',\n", + " '9ab70d8e-20b3-4707-b656-c365323b470a',\n", + " '83696a8b-ef7e-4c19-8044-9bd515f2ab19',\n", + " '8a8794ed-382d-49bd-99ac-5a2a606d086e',\n", + " '0b369248-be96-4fd3-af44-178bc9aa3c47',\n", + " '06c30ba4-846c-40a3-9fb8-ac5f96491f17',\n", + " 'd0e8a32d-27e2-4ddb-92b5-b53eba6af05b',\n", + " '91c2f545-98b3-4906-b6a4-8ebbe1e2c940',\n", + " 'b43ebc93-8e58-43ae-a0b4-c1bf848aa415',\n", + " '15371c95-3e9f-4034-9b26-a76fcee77634',\n", + " '9779f96a-87ce-452a-a86e-e589a97f62c9',\n", + " '4d3a1498-d903-462f-a492-f189e05b4677',\n", + " 'b1b5577b-a815-4871-a7f5-6ac02c51d652',\n", + " '1dbe8125-9c8b-4395-a988-48ee4074a60e',\n", + " '22f9cdfa-eaa6-4cf4-a9b8-3610593872b6',\n", + " 'a6e85896-49b7-4789-8728-ff36a66c72c4',\n", + " '71ab7c67-2728-453c-8c3c-ee82444b46b4',\n", + " '199a9a0b-2abd-481e-9f58-10a5230b3d5b',\n", + " '85536ea6-f194-402d-b3fc-bf340f1f418b',\n", + " 'cf442acc-d16d-4c47-8222-448515106902',\n", + " '11f68ca3-b196-47e5-bad3-35aec8aa2a12',\n", + " '79fdabd7-f3a4-4c10-8207-2d848c44c219',\n", + " 'eafc0069-1ef5-41ca-8983-00728632b148',\n", + " 'bd5bfc96-0923-4da2-a467-b8a958bd9785',\n", + " '239f4a59-e52f-46f9-832a-209ac28168a9',\n", + " 'fde36b67-dea6-4af7-8a7c-f88e9746867b',\n", + " '65f35cd4-b7a6-4e8a-acd0-2e392e165805',\n", + " '2b21e96c-60b3-42ef-887b-d936c4cd9dc8',\n", + " '48a47c4b-6b3b-4911-8789-0fcedcbaa7fe',\n", + " 'f9278d36-6f21-481e-bd01-d6a3b694dec0',\n", + " '1a83a739-64b8-4ff8-85e9-dae6f2425000',\n", + " '67dc5ca7-0e55-4cc0-8ad2-ed8484d44c5a',\n", + " 'b0ad7fea-e652-4da9-998b-c113fe681a78',\n", + " 'e46d23f9-8f77-4a10-9a54-eafd2907194d',\n", + " 'a97385a6-d34a-47fa-932f-248ebaea030a',\n", + " 'e5cf24ed-8323-40fc-b987-0405e769e39b',\n", + " 'd942d61b-dc81-4ee0-8034-a0a6bf33f0cd',\n", + " 'b1f6c530-971a-4603-8002-f657f8f466a5',\n", + " '279be1ca-8cd2-422f-8d8a-a6a3c5602a40',\n", + " 'e18228c9-7c44-4621-ba4d-df7f240c4ac8',\n", + " 'ef7f002f-81c5-4217-82a2-ceb58da08515',\n", + " '1ce3e955-aef4-4339-bb98-e2a72fe1db13',\n", + " '1cb87361-ac8c-451b-917e-338012f4ae94',\n", + " 'ffcbc3fe-e6df-478e-b722-c72a0e768d3c',\n", + " 'db9a8cad-1514-44c6-a338-58ae5262586c',\n", + " '611f3f01-7dc8-4375-be56-e31284dddd2d',\n", + " '5dca570c-0a30-4435-b8c3-51949ddb9095',\n", + " '2b4cec42-11ec-47b7-8bed-d03bf3036b25',\n", + " 'a247dc6e-0960-445a-9704-03dc96318242',\n", + " '84a663bc-b6bf-4a6e-9b1c-d69aa587abbf',\n", + " 'b69662cb-be93-4ce2-bb58-eeb491767c4f',\n", + " '999f7c01-d5a1-4162-ac32-8c3b12267b91',\n", + " '0e699d70-2c9e-4b1c-a27a-b44b1b9ed2a8',\n", + " '84b7537a-be85-4e26-b916-f3d1a5cfcb96',\n", + " '7cc8b3a9-928f-4162-9251-717921a20ba1',\n", + " '09277405-2e84-423d-90a6-11b5cafcdb34',\n", + " '863f2adb-03c6-471d-a653-77e34f665b82',\n", + " '6f41f987-0084-4396-8f66-a721e6163ce9',\n", + " '40507676-a997-42ef-bc9d-9fc3f3f22c94',\n", + " 'a3140052-a89b-4b89-be86-b5fbae34e49f',\n", + " 'b7a2adb3-d14c-4151-99ce-9ed1f94d0ddf',\n", + " 'd6a14f27-ee19-4fba-ae0a-8b231b8f8f34',\n", + " 'ecc05d21-0f99-4296-8d2a-af16e2aa257b',\n", + " '4136f012-2a76-4008-8815-fbb3a3585bc4',\n", + " '533474ab-ef47-4963-8afd-340456fd8a08',\n", + " '7b031879-b5ba-4afc-949f-9fb98206d474',\n", + " 'f174afb3-2a8d-4ab6-9066-6e6b008d76d4',\n", + " 'c699433f-b39d-4c0e-8305-0bb3bed5ab28',\n", + " 'f3627282-2ab8-470d-bd53-eb69199f5033',\n", + " 'be008fdc-77e5-428f-837b-6d19a10b1a04',\n", + " 'a2833d15-6d01-4548-b82c-ec94ceafe2dc',\n", + " '1d94c0fb-056e-4d33-b3a0-33879ccd48ba',\n", + " '26b5d9ee-d2b5-4159-b012-5f3093d6e94f',\n", + " 'b4b4f6e8-959d-4448-a33d-3f5c2e75fa1a',\n", + " '6dcf40e0-bba8-4e3e-a675-5185b78bc3d5',\n", + " '2ce7d505-56fd-4f6f-b56a-2d308df9942d',\n", + " '81446d3d-6692-407f-83f6-2317e718707f',\n", + " 'f36d49f4-15be-4047-b5b2-d777aa1c96b1',\n", + " 'd222c6a6-293e-403a-ac1f-bf4f9f8c8587',\n", + " '1bfdbb14-f69a-4c42-873c-c8f271f3e651',\n", + " '0170fd9d-d4b3-49aa-8519-1b17d534b4a7',\n", + " '2b845f76-4cc4-428d-b828-043276c0f4ab',\n", + " 'e2f5a670-e552-4a86-bf27-90061cd2183a',\n", + " '770b65aa-79d8-4b55-b5a0-b3bd879c9f11',\n", + " '91c2f69c-fc97-4282-b58c-e048b59d1b95',\n", + " '025a1f3a-d085-4086-b635-ab6e64cd9324',\n", + " 'c04f765f-b7d3-4ac8-9046-0a8df528a34b',\n", + " 'a297e209-d819-4fbe-992b-b8a0b049407d',\n", + " 'f0a3c391-6a67-4589-a187-dd4d12736285',\n", + " '0376c4d2-3187-4e7d-a169-872f971e5326',\n", + " '3d5d0269-3c38-49aa-802d-8cf9a42d77e5',\n", + " 'ed2799df-8cfc-483e-a9c7-b20efe3372cc',\n", + " '832c86dd-a785-4c05-87e4-ac0abf88e600',\n", + " '88a3f7e8-98cf-43ba-b452-163425eae920',\n", + " '624d1cb9-86a7-419c-a041-11bf1d69db38',\n", + " '35d269d5-2bf3-408c-b611-c9513c8159fa',\n", + " 'fc19fee7-e4ad-4d0b-8028-09b820125ec7',\n", + " '9ba46625-a2fc-4d4d-ae78-7317f9564c37',\n", + " '5b04a1b2-0ca4-4347-8499-a0138fa6f563',\n", + " 'ebc5496d-6ccf-4ff7-a3c9-b68fc975e0aa',\n", + " 'a2b18c26-bafa-4316-8f3e-6f70e8151d46',\n", + " 'd6fda9a4-5fc1-4a0b-9578-8b4bef722a6c',\n", + " '46fdbf5b-cb0d-42ec-89f5-7f64c80deb19',\n", + " '7f21da0b-4be9-4c59-988f-0adc3ff12987',\n", + " 'aa93fd34-aad2-4f8f-b984-6db8e35fad0e',\n", + " '690a795d-4430-4b82-838e-9906dba568ac',\n", + " '4324d164-e82a-4001-a1ac-941dd16a813b',\n", + " '205afaf4-544c-480a-8838-c6d3677e6f43',\n", + " 'b7db2c15-0cd2-43da-a14c-319ef2aeacd6',\n", + " 'b0b9fbf3-71a5-4452-a28d-023eafb6577c',\n", + " 'cd6b661f-6a28-4ac3-9731-b595083004c5',\n", + " 'd3cd697f-d20e-4f20-931d-e13d75923e42',\n", + " '8ff3eadd-4b5a-49c2-b920-33a46d1ef738',\n", + " 'b665b343-33e9-49cb-a30e-c6e7c765300c',\n", + " 'd34a40da-65e2-4556-a6f0-b9451a75c7ee',\n", + " '52b497ab-7a31-4ac4-832e-4941a3c0bcca',\n", + " '31bdd3a0-9114-4078-b7b6-87c8030bde9c',\n", + " '5af5ccfe-843c-4de9-bc43-414149bed7a7',\n", + " 'fc9dd092-a863-40d0-ad88-fbc079bf762c',\n", + " '7a943670-7410-4eac-949d-2db9f6a5ceaf',\n", + " '964bb4ee-8fc4-49fa-bed3-820c595185a6',\n", + " 'e3c37f98-dd5a-41d6-b715-7eca17cef019',\n", + " '79793871-cdea-4b8a-8350-e4b596889c86',\n", + " '36c989db-78a4-4ac2-a09c-20644003a984',\n", + " 'fda065ac-1529-4537-9fc3-31becbaa87ff',\n", + " 'e602c0bf-ae0b-43b8-a000-19da2a8b34bf',\n", + " '26ba4bb6-6dcb-4823-bba2-199b3c8c4f1c',\n", + " '993bff44-d2ec-4264-b913-25a20bd7350b',\n", + " 'd205da0d-0236-4ee9-922c-2a6fe88027bb',\n", + " '1ce5004f-4a49-47bd-90cd-fd19118b684b',\n", + " '9b406837-6be3-4bd3-9596-cc919c99643c',\n", + " 'b634b209-9484-41b9-9071-f74ce6203444',\n", + " '32e5749c-abc7-415a-ac68-588697cbcc05',\n", + " '9b3e6b64-2925-4389-b1aa-d6c4ec6cc15a',\n", + " 'a2291bdb-2ce8-4e56-9cbc-4819de9d6f7e',\n", + " 'df73355c-145f-4080-a835-a280c8e2bb02',\n", + " '47f253bc-1174-467b-a5e9-98f0f4d77df5',\n", + " '45f7ed85-83da-46ef-9bae-067d659626a1',\n", + " '95f44903-2c2b-4499-a8ab-aa8e0b44580a',\n", + " '94e79610-4e37-4240-94fd-986ee1df7b73',\n", + " 'baf35cae-82bb-48fb-be08-1b824c686098',\n", + " 'fe9158a6-2c9e-43e4-885a-de9bb0129caa',\n", + " '0b23c38f-237b-4878-a2ac-3f5296af4d3e',\n", + " 'dbd69e66-d565-4752-b98a-63b0568d12ad',\n", + " 'bd043648-a146-45cd-8175-ffd611ddbeac',\n", + " '07b3222c-3d52-42a8-9049-112825cb46d0',\n", + " 'd989fe4a-5952-40bf-be24-f0ca2c387471',\n", + " '4ccd4ed8-5c01-4cf5-bcd7-006bf142d072',\n", + " '89b96c29-6100-4c92-aaa6-5d97f1fe17cd',\n", + " '552c83da-781a-4086-a7bd-c9d1a3b800a3',\n", + " '4eb9940a-cc7f-420d-91a3-2e3d9c605910',\n", + " '3fd81259-c1ba-4624-849e-49d7806d7254',\n", + " '131f1624-d4b3-4a30-9fba-3e1bc6a941df',\n", + " '43a726b6-b467-43c1-b168-a1d5f963a57e',\n", + " '045c30f3-a0b4-49af-a233-8273885d15f1',\n", + " '41c38def-db0d-4f44-ab29-2101f133f848',\n", + " '8bec378c-eda5-4f2a-b2e7-daca60856d18',\n", + " ...]" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "execution_array" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "58aa4216", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Execution(id='caed8408-235c-4a36-91fe-0559b91ece8d', created_at=datetime.datetime(2024, 10, 9, 12, 50, 58, 307650, tzinfo=datetime.timezone.utc), input={'user_ppid': 's7lm2170225005507862d53cc9cf54'}, status='queued', task_id='825a03b1-856a-4ae1-a1f5-ad994ba5c87d', updated_at=datetime.datetime(2024, 10, 9, 12, 50, 58, 307651, tzinfo=datetime.timezone.utc), error=None, metadata={}, output=None)" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.executions.get(execution_id = 'caed8408-235c-4a36-91fe-0559b91ece8d')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1bc7efde", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/agents-api/notebooks/main-3.ipynb b/agents-api/notebooks/main-3.ipynb new file mode 100755 index 000000000..613f705c6 --- /dev/null +++ b/agents-api/notebooks/main-3.ipynb @@ -0,0 +1,2009 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "36cdb647", + "metadata": {}, + "source": [ + "### Imports" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "469351b4", + "metadata": {}, + "outputs": [], + "source": [ + "from julep import Julep\n", + "import yaml\n", + "import pandas as pd\n", + "import uuid\n", + "from tqdm import tqdm" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "e226d8a8", + "metadata": {}, + "outputs": [], + "source": [ + "#Keys\n", + "api_key = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJleHAiOjE3Mjg1NTc3MDMsImlhdCI6MTcyODUxNDUwNCwic3ViIjoiMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwIn0.WVCaBdSDKI6brYiZyd8ceSjKwGxKHiUcGYl2Mg3Xnr074MTM7YDMQ7leNI_c-_opc518PNPMhfrhO5_xo39MGQ'\n", + "environment = 'local_multi_tenant'" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "d3ae8ee1", + "metadata": {}, + "outputs": [], + "source": [ + "client = Julep(api_key = api_key, environment = environment)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a9be17de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(12977, 10)" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv('power_users.csv')\n", + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fde31169", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(1458105, 2)" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1 = pd.read_csv('titles_10k.csv')\n", + "df1.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c914cc2d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ppidtitles
0zt2xx1676756313616f61fc06ce607nascar-news-kyle-busch-denny-hamlin-brad-kesel...
19ngxq16741971295637bda693f1856nascar-news-that-shouldnt-take-away-my-playoff...
29ngxq16741971295637bda693f1856nascar-news-stuck-in-a-thirty-million-hole-dal...
3t4ft9170231166061272d670d94e26nfl-ncaa-news-privilege-to-love-travis-hunters...
46z9qx1711142742381f25789ebd3f0nascar-news-they-didnt-wait-for-tony-stewart-r...
\n", + "
" + ], + "text/plain": [ + " ppid \\\n", + "0 zt2xx1676756313616f61fc06ce607 \n", + "1 9ngxq16741971295637bda693f1856 \n", + "2 9ngxq16741971295637bda693f1856 \n", + "3 t4ft9170231166061272d670d94e26 \n", + "4 6z9qx1711142742381f25789ebd3f0 \n", + "\n", + " titles \n", + "0 nascar-news-kyle-busch-denny-hamlin-brad-kesel... \n", + "1 nascar-news-that-shouldnt-take-away-my-playoff... \n", + "2 nascar-news-stuck-in-a-thirty-million-hole-dal... \n", + "3 nfl-ncaa-news-privilege-to-love-travis-hunters... \n", + "4 nascar-news-they-didnt-wait-for-tony-stewart-r... " + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b602a821", + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "35382" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "articles = df1['titles'].unique().tolist()\n", + "len(articles)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "2ffd5dcd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Agent](items=[Agent(id='844e03b1-856a-4ae1-a1f5-ad994ba5c87d', created_at=datetime.datetime(2024, 10, 7, 9, 47, 0, 832657, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 7, 9, 47, 0, 831949, tzinfo=datetime.timezone.utc), about='It is used to create/update the profile of the user', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='ProfilerAgent'), Agent(id='847d03b1-856a-4ae1-a1f5-ad994ba5c87d', created_at=datetime.datetime(2024, 10, 7, 9, 33, 49, 146318, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 7, 9, 33, 49, 145422, tzinfo=datetime.timezone.utc), about='It is used to manage a library of news article titles and their related data', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='NewsLibraryAgent'), Agent(id='847b03b1-856a-4ae1-a1f5-ad994ba5c87d', created_at=datetime.datetime(2024, 10, 4, 12, 18, 0, 503478, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 5, 10, 3, 54, 42636, tzinfo=datetime.timezone.utc), about='It is used to manage a library of news article titles and their related data', default_settings=DefaultSettings(frequency_penalty=0.0, length_penalty=1.0, min_p=0.01, presence_penalty=0.0, repetition_penalty=1.0, temperature=0.7, top_p=0.95), instructions=[], metadata={}, model='gpt-4o', name='NewsLibraryAgent')])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.list()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "29d282de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[User](items=[])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.users.list()" + ] + }, + { + "cell_type": "markdown", + "id": "c96f5022", + "metadata": {}, + "source": [ + "## Agent with title lib" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "5de0f61b", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"NewsLibraryAgent\"\n", + "about = \"It is used to manage a library of news article titles and their related data\"\n", + "default_settings = {\n", + " \"temperature\": 0.6,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0\n", + "}\n", + "\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "0392d3c6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ResourceCreated(id='602641f5-29cb-4895-886f-d4db4ba47d8e', created_at=datetime.datetime(2024, 10, 9, 10, 45, 39, 700109, tzinfo=datetime.timezone.utc), jobs=['78251ce4-9199-49e6-a5de-f52e3cc1b537'])" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.create(\n", + " agent_id = '847d03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " title = \"NewsTitles\",\n", + " content = articles[:25000] \n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "fa817293", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DocSearchResponse(docs=[], time=1.0753483772277832)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.search(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " text = \"nascar-news-kyle-busch-denny-hamlin-brad-keselowski-fans-beef-over-their-superstars-filling-the-void-in-nascar-left-by-legendary-cup-champ\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "4fb0e0be", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Doc](items=[])" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.list(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "c9c08542", + "metadata": {}, + "source": [ + "## User Creation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e0e70ef0", + "metadata": {}, + "outputs": [], + "source": [ + "for i in tqdm(range(len(df))):\n", + " \n", + " client.users.create(\n", + " name = f\"user_{i}\",\n", + " metadata={\n", + " \"ppid\": str(df.iloc[i][\"ppid\"]), # Ensure it's a native int\n", + " \"age\": int(df.iloc[i][\"enrich_age\"]), # Ensure it's a native int\n", + " \"state\": str(df.iloc[i][\"enrich_state\"]), # Convert to string if not already\n", + " \"city\": str(df.iloc[i][\"enrich_city\"]), # Convert to string if not already\n", + " \"sports_likes\": str(df.iloc[i][\"sports_with_visit_count\"]), # Convert to string or json serializable format\n", + " \"entity_likes\": str(df.iloc[i][\"entity_with_visit_count\"]), # Same as above\n", + " \"top_sport\": str(df.iloc[i][\"top_sport\"]),\n", + " \"top_entity\": str(df.iloc[i][\"top_entity\"]),\n", + " \"latest_sport_read\": str(df.iloc[i][\"latest_sport_read\"]),\n", + " \"top_sources\": str(df.iloc[i][\"top_sources\"])\n", + " }\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "564aeb3e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[User](items=[User(id='f2e900fd-c7b4-424b-b71d-d75d4a6d7692', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 371884, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 371885, tzinfo=datetime.timezone.utc), about='', metadata={'age': 73, 'city': 'Springfield', 'entity_likes': '{Others=51, Sean Payton=2, LeBron James=2, Kyle Busch=12, Matt Eberflus=1, Tony Stewart=19, Dale Earnhardt Jr=6, Usain Bolt=1, Ronda Rousey=1, Khabib=1, Jim Harbaugh=1, Denny Hamlin=8, Bubba Wallace=6, Dana White=1, Michael Jordan=9, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'nnqkt17143103131230f7ff7d9f6ca', 'sports_likes': '{ufc=3, nba active=3, uss=1, nascar=98, nfl active=15, college football=3}', 'state': 'IL', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12976'), User(id='4950ec58-2a5c-45da-887a-27799672a3d8', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 362493, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 362494, tzinfo=datetime.timezone.utc), about='', metadata={'age': 28, 'city': 'Pensacola', 'entity_likes': '{Tara Davis Woodhall=2, Dan Quinn=2, Elaine Thompson=1, Shaquille ONeal=5, Bronny James=2, Caitlin Clark=6, Chennedy Carter=2, Sydney McLaughlin=1, ShaCarri Richardson=14, Dawn Staley=2, Gabby Thomas=3, Deion Sanders=62, Noah Lyles=10, Simone Biles=13, Others=118, Serena Williams=2, LeBron James=2, Quincy Wilson=1, Rebeca Andrade=1, Angel Reese=2, Usain Bolt=4, Michael Jordan=4, Floyd Mayweather=2, Patrick Mahomes=5}', 'latest_sport_read': 'nba', 'ppid': '7tvpm1710440006185f5ec40de54bf', 'sports_likes': '{wnba=11, ufc=1, nba active=10, uss=58, boxing=2, nba legends=8, nfl active=9, nba=1, college football=163, tennis=3}', 'state': 'FL', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12975'), User(id='c844b69d-72bc-4bc1-8beb-edbb26ba0619', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 353159, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 353159, tzinfo=datetime.timezone.utc), about='', metadata={'age': 44, 'city': 'Canton', 'entity_likes': '{Tara Davis Woodhall=1, Dan Quinn=2, Elaine Thompson=1, Shaquille ONeal=10, Sean Payton=1, Tom Brady=1, Caitlin Clark=10, Sydney McLaughlin=9, ShaCarri Richardson=27, Gabby Thomas=5, Deion Sanders=16, Noah Lyles=7, Simone Biles=2, Breanna Stewart=1, Others=65, Serena Williams=6, LeBron James=14, Quincy Wilson=2, Sabrina Ionescu=2, Angel Reese=5, Erriyon Knighton=1, Shericka Jackson=2, Usain Bolt=3, Hezley Rivera=1, Dana White=1, Michael Jordan=7, Candace Parker=2, Patrick Mahomes=2}', 'latest_sport_read': 'nfl', 'ppid': 'c66581710732168012f4dec26d05e8', 'sports_likes': '{wnba=14, ufc=1, nba active=21, uss=70, boxing=6, nba legends=27, nfl active=15, nfl legends=1, college football=42, tennis=9}', 'state': 'OH', 'top_entity': 'ShaCarri Richardson', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12974'), User(id='4795faad-93ee-4f50-94f7-bafe62d47bc1', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 343759, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 343759, tzinfo=datetime.timezone.utc), about='', metadata={'age': 58, 'city': 'Tulsa', 'entity_likes': '{Dale Earnhardt Jr=9, Others=54, Jordan Chiles=1, Denny Hamlin=8, Kyle Busch=13, Tony Stewart=27, Michael Jordan=7, Michael Phelps=1, Simone Biles=1}', 'latest_sport_read': 'nascar', 'ppid': 'l5t7w1709681830793f7f665e6157a', 'sports_likes': '{nba legends=1, uss=3, nascar=116, others=1}', 'state': 'OK', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12973'), User(id='9e11ac42-5c54-4e75-a363-aabd91358c28', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 334396, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 334397, tzinfo=datetime.timezone.utc), about='', metadata={'age': 44, 'city': 'Wilton Manors', 'entity_likes': '{Dale Earnhardt Jr=8, Others=58, Kyle Busch=9, Denny Hamlin=9, Tony Stewart=20, Bubba Wallace=5, Michael Jordan=3, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'fnpdj17097029293234deb46e2583a', 'sports_likes': '{nfl active=2, uss=1, nascar=111}', 'state': 'FL', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12972'), User(id='9be35edc-467f-41bd-acb3-320aa5ecffcf', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 324930, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 324931, tzinfo=datetime.timezone.utc), about='', metadata={'age': 72, 'city': 'Maryville', 'entity_likes': '{Others=54, Bill Belichick=1, Kyle Busch=15, Tony Stewart=23, Caitlin Clark=2, Dale Earnhardt Jr=15, Olivia Dunne=2, Denny Hamlin=8, Bubba Wallace=2, Michael Jordan=7, Simone Biles=3, Patrick Mahomes=10}', 'latest_sport_read': 'nascar', 'ppid': '5r6np1711468788752e89901959a1c', 'sports_likes': '{wnba=3, nfl active=11, uss=5, nascar=122, others=1}', 'state': 'TN', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12971'), User(id='6b9a9c0b-a1c6-45eb-9085-41e83e3d12e2', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 315598, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 315599, tzinfo=datetime.timezone.utc), about='', metadata={'age': 45, 'city': 'Captain Cook', 'entity_likes': '{Dale Earnhardt Jr=10, Others=42, Kyle Busch=8, Denny Hamlin=6, Tony Stewart=23, Bubba Wallace=4, Michael Jordan=10}', 'latest_sport_read': 'nascar', 'ppid': 'tlwvs17162229474718d60903eaf36', 'sports_likes': '{nascar=103}', 'state': 'HI', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12970'), User(id='60df090e-cb0d-4d56-a5cd-bcf7162dbbd4', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 306010, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 306011, tzinfo=datetime.timezone.utc), about='', metadata={'age': 50, 'city': 'Wagram', 'entity_likes': '{Others=50, Shaquille ONeal=2, LeBron James=3, Kyle Busch=9, Tony Stewart=5, Caitlin Clark=2, Dale Earnhardt Jr=6, Deion Sanders=17, Jim Harbaugh=4, Denny Hamlin=4, Bubba Wallace=4, Michael Jordan=17}', 'latest_sport_read': 'nba', 'ppid': '8wgxh17023089742317e2410af281a', 'sports_likes': '{wnba=3, nba active=8, wwe=3, nascar=52, nba legends=12, nfl active=3, nfl legends=1, college football=40, others=1}', 'state': 'NC', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12969'), User(id='b3a5d5d5-01f1-499f-af3e-0e0047bb4d58', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 296415, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 296415, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Marion', 'entity_likes': '{Dale Earnhardt Jr=7, Others=63, Kyle Busch=38, Denny Hamlin=14, Tony Stewart=21, Bubba Wallace=11, Michael Jordan=5}', 'latest_sport_read': 'nascar', 'ppid': '5mhq817108288806914ea2e8046bff', 'sports_likes': '{nfl active=1, nascar=157, others=1}', 'state': 'NC', 'top_entity': 'Kyle Busch', 'top_sources': 'facebook', 'top_sport': 'nascar'}, name='user_12968'), User(id='639c741c-6f6a-4c87-be70-e980b412f332', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 286775, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 286775, tzinfo=datetime.timezone.utc), about='', metadata={'age': 45, 'city': 'Arcanum', 'entity_likes': '{Others=115, Dan Quinn=1, Shaquille ONeal=1, LeBron James=1, Kyle Busch=16, Tony Stewart=27, Angel Reese=1, Tiger Woods=3, Dale Earnhardt Jr=32, ShaCarri Richardson=1, Jim Harbaugh=5, Denny Hamlin=17, Bubba Wallace=7, Michael Jordan=10, Patrick Mahomes=5}', 'latest_sport_read': 'nascar', 'ppid': '6b9rp1699808086600c15fdce82da2', 'sports_likes': '{wnba=1, golf=31, nba active=2, uss=1, nascar=192, nba legends=2, nfl active=9, college football=4}', 'state': 'OH', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12967'), User(id='83a88deb-b918-4b16-88cc-c8cc37883f12', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 277434, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 277435, tzinfo=datetime.timezone.utc), about='', metadata={'age': 64, 'city': 'Taneytown', 'entity_likes': '{Dan Quinn=2, Shaquille ONeal=4, Sean Payton=1, Joe Rogan=4, Caitlin Clark=5, Chennedy Carter=2, ShaCarri Richardson=4, Alex Rodriguez=2, Ronda Rousey=1, Khabib=3, Olivia Dunne=2, Deion Sanders=5, Jon Jones=2, Noah Lyles=2, Simone Biles=2, Breanna Stewart=1, Others=47, LeBron James=9, Quincy Wilson=1, Angel Reese=1, Dana White=8, Michael Jordan=2, Conor McGregor=3, Floyd Mayweather=3, Patrick Mahomes=5}', 'latest_sport_read': 'nba', 'ppid': 'z9tqg17112049792834fe04b240edd', 'sports_likes': '{soccer=4, wnba=7, tennis=2, ufc=31, nba active=19, uss=13, nascar=1, boxing=8, nba legends=8, nfl active=13, nfl legends=1, college football=14}', 'state': 'MD', 'top_entity': 'LeBron James', 'top_sources': 'google search', 'top_sport': 'ufc'}, name='user_12966'), User(id='35b1ac51-bbfd-43c1-b5f8-fde4ea5f8c87', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 268211, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 268211, tzinfo=datetime.timezone.utc), about='', metadata={'age': 34, 'city': 'Evansville', 'entity_likes': '{Dale Earnhardt Jr=18, Others=153, Kyle Busch=37, Denny Hamlin=33, Tony Stewart=24, Bubba Wallace=18, Michael Jordan=6}', 'latest_sport_read': 'nascar', 'ppid': 'wtvl917073296482602fc388e778ba', 'sports_likes': '{nascar=288, others=1}', 'state': 'IN', 'top_entity': 'Kyle Busch', 'top_sources': 'facebook', 'top_sport': 'nascar'}, name='user_12965'), User(id='fc2a7acd-614b-48f1-9de9-6ee0a611f4bf', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 258879, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 258880, tzinfo=datetime.timezone.utc), about='', metadata={'age': 46, 'city': 'Garland', 'entity_likes': '{Shaquille ONeal=18, Sean Payton=2, Joe Rogan=5, Tom Brady=1, Tony Stewart=1, Bronny James=2, Caitlin Clark=7, Sydney McLaughlin=3, ShaCarri Richardson=14, Dawn Staley=1, Kishane Thompson=1, Gabby Thomas=2, Ronda Rousey=2, Khabib=4, Jordan Chiles=1, Deion Sanders=33, Noah Lyles=9, Simone Biles=6, Others=127, Serena Williams=1, Fred Kerley=1, LeBron James=12, Kevin OConnell=1, Angel Reese=1, Usain Bolt=4, Dana White=11, Michael Jordan=8, Conor McGregor=5, Floyd Mayweather=4, Patrick Mahomes=16}', 'latest_sport_read': 'boxing', 'ppid': '28grs1699220981051d89e8c41a621', 'sports_likes': '{wnba=4, f1=1, tennis=10, ufc=37, nba active=36, uss=48, nascar=2, boxing=17, nba legends=37, nfl active=29, nfl legends=3, college football=79}', 'state': 'TX', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12964'), User(id='80536931-dec8-409c-95e2-f42aa85b8a93', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 249553, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 249554, tzinfo=datetime.timezone.utc), about='', metadata={'age': 78, 'city': 'Beech Mountain', 'entity_likes': '{Tara Davis Woodhall=1, Others=65, Kyle Busch=10, Tony Stewart=13, Tiger Woods=6, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=8, ShaCarri Richardson=6, Gabby Thomas=2, Denny Hamlin=18, Bubba Wallace=4, Michael Jordan=6, Noah Lyles=3, Patrick Mahomes=6}', 'latest_sport_read': 'nascar', 'ppid': 'gg7pm170775327216887544300d278', 'sports_likes': '{golf=11, ufc=1, uss=15, nascar=111, nfl active=11, others=1}', 'state': 'NC', 'top_entity': 'Denny Hamlin', 'top_sources': 'google search', 'top_sport': 'nascar'}, name='user_12963'), User(id='2e1e66e9-58e3-45ad-822d-2047a1d7cda2', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 240300, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 240300, tzinfo=datetime.timezone.utc), about='', metadata={'age': 59, 'city': 'Broken Arrow', 'entity_likes': '{Others=62, Tara Davis Woodhall=1, Brittney Griner=3, Elaine Thompson=1, Shaquille ONeal=14, LeBron James=23, Bill Belichick=1, Rebeca Andrade=1, Sabrina Ionescu=1, Angel Reese=2, Bronny James=2, Tiger Woods=1, Caitlin Clark=13, Sydney McLaughlin=1, Shericka Jackson=2, ShaCarri Richardson=13, Gabby Thomas=4, Usain Bolt=1, Deion Sanders=20, Dana White=1, Michael Jordan=8, Simone Biles=5, Breanna Stewart=1}', 'latest_sport_read': 'uss', 'ppid': 'rxw2d17026980489166612e3c7c181', 'sports_likes': '{wnba=11, ufc=1, nba active=49, uss=32, nba legends=31, nfl active=7, nfl legends=1, college football=49}', 'state': 'OK', 'top_entity': 'LeBron James', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12962'), User(id='43324534-5315-4294-bc01-5b46fc7451d0', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 231011, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 231012, tzinfo=datetime.timezone.utc), about='', metadata={'age': 40, 'city': 'Sterling Heights', 'entity_likes': '{Dan Quinn=1, Shaquille ONeal=8, Caitlin Clark=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Gabby Thomas=3, Ronda Rousey=2, Jordan Chiles=2, Deion Sanders=3, Dwayne Johnson=1, Noah Lyles=5, Simone Biles=8, Breanna Stewart=1, Others=66, Serena Williams=3, LeBron James=6, Quincy Wilson=1, Kevin OConnell=1, Sabrina Ionescu=1, Michael Phelps=1, Steph Curry=2, Dana White=1, Michael Jordan=5, Patrick Mahomes=4}', 'latest_sport_read': 'uss', 'ppid': 'ksn7717011377574492c162c9149f3', 'sports_likes': '{wnba=2, ufc=3, nba active=26, wwe=19, uss=34, boxing=1, nba legends=19, nfl active=13, nba=1, college football=10, tennis=3}', 'state': 'MI', 'top_entity': 'Shaquille ONeal', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12961'), User(id='1b5dd433-86f3-442c-93c9-d82df544ce67', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 221753, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 221754, tzinfo=datetime.timezone.utc), about='', metadata={'age': 65, 'city': 'Orchard', 'entity_likes': '{Others=44, Serena Williams=4, Kyle Busch=9, Tony Stewart=10, Caitlin Clark=1, Dale Earnhardt Jr=17, Jordan Chiles=1, Olivia Dunne=1, Denny Hamlin=2, Bubba Wallace=2, Michael Jordan=2, Simone Biles=5, Patrick Mahomes=15}', 'latest_sport_read': 'nfl', 'ppid': 'qp9p81709466623669d2ec93790c26', 'sports_likes': '{wnba=1, nfl active=20, uss=9, nascar=79, tennis=4}', 'state': 'TX', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12960'), User(id='5ce46de8-7248-4fa3-b98d-a615f54dafc4', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 212413, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 212414, tzinfo=datetime.timezone.utc), about='', metadata={'age': 71, 'city': 'Grants Pass', 'entity_likes': '{Others=34, Shaquille ONeal=2, Joe Rogan=9, LeBron James=4, Bronny James=1, Mike Tyson=1, Arnold Schwarzenegger=1, Ronda Rousey=1, Khabib=6, Jim Harbaugh=2, Deion Sanders=2, Jon Jones=1, Dana White=37, Michael Jordan=2, Conor McGregor=12, Floyd Mayweather=2, Patrick Mahomes=1}', 'latest_sport_read': 'ufc', 'ppid': 'lzmpd1706046808597fbf1cea42bce', 'sports_likes': '{wnba=1, ufc=86, nba active=5, boxing=8, nba legends=4, nfl active=2, bodybuilding=1, college football=11}', 'state': 'OR', 'top_entity': 'Dana White', 'top_sources': 'discover', 'top_sport': 'ufc'}, name='user_12959'), User(id='01e1c492-2615-42aa-ac27-4c05283060ff', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 202841, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 202842, tzinfo=datetime.timezone.utc), about='', metadata={'age': 60, 'city': 'Midland', 'entity_likes': '{Others=37, Dan Quinn=1, Shaquille ONeal=2, Serena Williams=3, LeBron James=2, Kyle Busch=5, Tony Stewart=17, Lexi Thompson=1, Tiger Woods=3, Caitlin Clark=2, Michael Phelps=1, Chennedy Carter=1, Sydney McLaughlin=1, Dale Earnhardt Jr=20, ShaCarri Richardson=4, Gabby Thomas=1, Jordan Chiles=2, Jim Harbaugh=1, Deion Sanders=1, Denny Hamlin=7, Michael Jordan=9, Simone Biles=2, Patrick Mahomes=10}', 'latest_sport_read': 'golf', 'ppid': 'hk4tw1710606285871e4955e273294', 'sports_likes': '{soccer=2, wnba=3, golf=7, nba active=2, uss=13, nascar=83, nba legends=1, nfl active=14, college football=7, tennis=1}', 'state': 'TX', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12958'), User(id='197fa4e7-bd83-4b9a-94de-56bc8671eb15', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 193313, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 193313, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Lebanon', 'entity_likes': '{Others=79, LeBron James=1, Kyle Busch=9, Tony Stewart=9, Jade Carey=1, Dale Earnhardt Jr=15, ShaCarri Richardson=1, Khabib=1, Deion Sanders=3, Olivia Dunne=1, Jim Harbaugh=3, Denny Hamlin=6, Bubba Wallace=3, Michael Jordan=5, Noah Lyles=1, Patrick Mahomes=1}', 'latest_sport_read': 'uss', 'ppid': 'k2t691705769722614461d1bccd308', 'sports_likes': '{golf=1, ufc=2, nba active=2, uss=32, nascar=84, boxing=1, nba legends=3, nfl active=4, college football=9, others=1}', 'state': 'PA', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12957'), User(id='dc110ccc-5b5b-43fd-b506-d55c487c5e30', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 183993, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 183993, tzinfo=datetime.timezone.utc), about='', metadata={'age': 31, 'city': 'Loris', 'entity_likes': '{Tara Davis Woodhall=1, Others=77, Serena Williams=14, Rebeca Andrade=1, Tiger Woods=2, Sydney McLaughlin=1, ShaCarri Richardson=1, Gabby Thomas=1, Lewis Hamilton=2, Jordan Chiles=2, Leon Marchand=1, Simone Biles=4, Patrick Mahomes=1}', 'latest_sport_read': 'tennis', 'ppid': 'rtlkp1705632980441b02af4f29aec', 'sports_likes': '{golf=2, uss=13, nfl active=2, f1=3, college football=1, tennis=87}', 'state': 'SC', 'top_entity': 'Serena Williams', 'top_sources': 'discover', 'top_sport': 'tennis'}, name='user_12956'), User(id='bf4f30a9-5439-4279-8db2-56c355b69568', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 174405, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 174406, tzinfo=datetime.timezone.utc), about='', metadata={'age': 60, 'city': 'Tucson', 'entity_likes': '{Others=69, Tara Davis Woodhall=1, Brittney Griner=1, Dan Quinn=1, Elaine Thompson=1, Shaquille ONeal=7, Serena Williams=6, LeBron James=3, Rebeca Andrade=1, Angel Reese=1, Caitlin Clark=1, Michael Phelps=1, Sydney McLaughlin=3, Shericka Jackson=1, ShaCarri Richardson=11, Gabby Thomas=2, Christian Coleman=1, Usain Bolt=2, Steph Curry=1, Dana White=1, Michael Jordan=4, Noah Lyles=15, Simone Biles=8}', 'latest_sport_read': 'uss', 'ppid': 'fnbc4171129201398499b884d5a399', 'sports_likes': '{wnba=3, ufc=1, nba active=22, uss=54, boxing=2, nba legends=16, nfl active=2, nba=1, college football=1, tennis=40}', 'state': 'AZ', 'top_entity': 'Noah Lyles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12955'), User(id='c958a814-31be-4d69-89a3-45a193993e20', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 164856, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 164857, tzinfo=datetime.timezone.utc), about='', metadata={'age': 29, 'city': 'Aztec', 'entity_likes': '{Others=67, LeBron James=1, Kyle Busch=7, Tony Stewart=7, Bronny James=1, Tiger Woods=3, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=4, Lydia Ko=1, ShaCarri Richardson=4, Gabby Thomas=2, Jordan Chiles=3, Olivia Dunne=7, Jim Harbaugh=2, Denny Hamlin=7, Bubba Wallace=9, Michael Jordan=4, Noah Lyles=1, Simone Biles=4}', 'latest_sport_read': 'golf', 'ppid': 'vpf4n17006823497914a4b73faba09', 'sports_likes': '{wnba=2, golf=36, nba active=2, uss=26, nascar=67, college football=3}', 'state': 'NM', 'top_entity': 'Bubba Wallace', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12954'), User(id='3ad66b6a-6b30-4ef6-9979-29b710cb4705', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 155415, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 155416, tzinfo=datetime.timezone.utc), about='', metadata={'age': 89, 'city': 'Alexandria', 'entity_likes': '{Dale Earnhardt Jr=28, Others=62, Sean Payton=1, Denny Hamlin=10, Kyle Busch=12, Tony Stewart=24, Bubba Wallace=3, Lexi Thompson=1, Michael Jordan=7, Patrick Mahomes=6}', 'latest_sport_read': 'nascar', 'ppid': 'zk58c1710646401339eaeb93b350a1', 'sports_likes': '{golf=1, nascar=135, nba legends=2, nfl active=8, nfl legends=1, college football=5, others=2}', 'state': 'VA', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12953'), User(id='56df0fc7-dbeb-4bcc-adc2-4657d8b473b2', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 145903, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 145903, tzinfo=datetime.timezone.utc), about='', metadata={'age': 70, 'city': 'Huntsville', 'entity_likes': '{Tara Davis Woodhall=1, Shaquille ONeal=9, Sean Payton=1, Tom Brady=1, Jade Carey=1, Katie Ledecky=1, Caitlin Clark=5, Sydney McLaughlin=2, ShaCarri Richardson=31, Dawn Staley=2, Gabby Thomas=3, Olivia Dunne=1, Jordan Chiles=3, Lewis Hamilton=1, Deion Sanders=43, Shilese Jones=1, Noah Lyles=16, Simone Biles=49, Others=120, Serena Williams=21, Fred Kerley=1, Quincy Wilson=1, LeBron James=7, Angel Reese=3, Tiger Woods=1, Michael Phelps=3, Shericka Jackson=4, Usain Bolt=2, Antonio Pierce=1, Jim Harbaugh=1, Michael Jordan=10, Candace Parker=1, Patrick Mahomes=13}', 'latest_sport_read': 'uss', 'ppid': 'q2srb17022834173864e2c1b5cabfb', 'sports_likes': '{soccer=1, wnba=6, golf=1, nba active=19, uss=144, boxing=1, nba legends=31, nfl active=21, nfl legends=2, college football=93, tennis=41}', 'state': 'AL', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12952'), User(id='fd541286-9087-45bf-b156-ac65ce2dbe08', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 136564, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 136565, tzinfo=datetime.timezone.utc), about='', metadata={'age': 64, 'city': 'Tucson', 'entity_likes': '{Others=58, Shaquille ONeal=1, LeBron James=2, Kyle Busch=11, Tony Stewart=24, Lexi Thompson=1, Tiger Woods=5, Dale Earnhardt Jr=14, Lydia Ko=1, Jim Harbaugh=1, Denny Hamlin=5, Bubba Wallace=2, Michael Jordan=4}', 'latest_sport_read': 'nascar', 'ppid': 'wd89z16999199428129837d3520f39', 'sports_likes': '{soccer=1, golf=15, nba active=3, nascar=105, nba legends=2, college football=2, others=1}', 'state': 'AZ', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12951'), User(id='a196ee5c-91c3-4249-813f-586bd39659a0', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 127019, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 127020, tzinfo=datetime.timezone.utc), about='', metadata={'age': 61, 'city': 'San Diego', 'entity_likes': '{Dan Quinn=1, Shaquille ONeal=11, Kelsey Plum=1, Bronny James=1, Caitlin Clark=14, Chennedy Carter=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Jordan Chiles=2, Olivia Dunne=1, Deion Sanders=3, Noah Lyles=5, Simone Biles=45, Others=69, Serena Williams=11, LeBron James=3, Quincy Wilson=1, Rebeca Andrade=1, Sabrina Ionescu=1, Angel Reese=2, Tiger Woods=6, Jim Harbaugh=1, Hezley Rivera=1, Dana White=1, Michael Jordan=2, Patrick Mahomes=6}', 'latest_sport_read': 'tennis', 'ppid': '4tlz6170275143411112d32dedbabd', 'sports_likes': '{wnba=17, golf=7, ufc=1, nba active=11, uss=60, boxing=2, nba legends=18, nfl active=13, college football=11, tennis=55}', 'state': 'CA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12950'), User(id='76c88549-3198-4574-85f3-e9e23e9ec2a7', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 117660, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 117660, tzinfo=datetime.timezone.utc), about='', metadata={'age': 65, 'city': 'Auburn', 'entity_likes': '{Tara Davis Woodhall=4, Dan Quinn=1, Sean Payton=2, Kyle Busch=33, Tony Stewart=35, Bronny James=1, Caitlin Clark=4, ShaCarri Richardson=2, Olivia Dunne=2, Deion Sanders=3, Bubba Wallace=12, Simone Biles=4, Others=146, Serena Williams=1, LeBron James=3, Angel Reese=1, Tiger Woods=6, Michael Phelps=1, Dale Earnhardt Jr=60, Jim Harbaugh=4, Denny Hamlin=31, Michael Jordan=26, Floyd Mayweather=1, Patrick Mahomes=12}', 'latest_sport_read': 'nascar', 'ppid': 'h6cwh16809712658455a7db4d69d20', 'sports_likes': '{wnba=4, mlb=2, nba=1, tennis=3, golf=13, nba active=8, uss=15, nfl=3, nascar=305, boxing=1, nba legends=4, nfl active=21, college football=15}', 'state': 'AL', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'google search', 'top_sport': 'nascar'}, name='user_12949'), User(id='d84aa464-0204-4c6f-a050-75a820965ecf', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 108306, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 108306, tzinfo=datetime.timezone.utc), about='', metadata={'age': 67, 'city': 'The Villages', 'entity_likes': '{Others=28, Tara Davis Woodhall=1, Shaquille ONeal=4, Serena Williams=3, Sean Payton=2, LeBron James=13, Rebeca Andrade=2, Caitlin Clark=2, Femke Bol=1, Sydney McLaughlin=1, ShaCarri Richardson=11, Gabby Thomas=3, Jordan Chiles=1, Deion Sanders=13, Hezley Rivera=1, Michael Jordan=3, Noah Lyles=4, Simone Biles=11, Patrick Mahomes=4, Breanna Stewart=1}', 'latest_sport_read': 'uss', 'ppid': 'tmlll171185520556398321f79f598', 'sports_likes': '{wnba=3, nba active=23, uss=41, boxing=1, nba legends=10, nfl active=6, college football=19, tennis=6}', 'state': 'FL', 'top_entity': 'LeBron James', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12948'), User(id='8670f776-34c9-4866-ab54-a6274d18371b', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 98702, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 98703, tzinfo=datetime.timezone.utc), about='', metadata={'age': 58, 'city': 'Lees Summit', 'entity_likes': '{Others=72, Tara Davis Woodhall=2, Elaine Thompson=1, Serena Williams=5, Rebeca Andrade=4, Jade Carey=1, Sydney McLaughlin=2, ShaCarri Richardson=17, Dawn Staley=1, Usain Bolt=1, Leanne Wong=1, Jordan Chiles=1, Olivia Dunne=4, Dwayne Johnson=1, Michael Jordan=1, Fred Richards=1, Noah Lyles=6, Simone Biles=18}', 'latest_sport_read': 'uss', 'ppid': 'pc74h17112247885896d95092a0b9a', 'sports_likes': '{soccer=2, golf=1, nba active=1, uss=90, boxing=2, nba legends=1, college football=1, tennis=41}', 'state': 'MO', 'top_entity': 'Simone Biles', 'top_sources': 'google news', 'top_sport': 'uss'}, name='user_12947'), User(id='4f4ece6c-f152-44f0-9670-a891b5a631a4', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 88948, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 88949, tzinfo=datetime.timezone.utc), about='', metadata={'age': 68, 'city': 'Columbia', 'entity_likes': '{Dale Earnhardt Jr=10, Others=68, Olivia Dunne=1, Jim Harbaugh=1, Denny Hamlin=4, Kyle Busch=7, Tony Stewart=17, Bubba Wallace=2, Michael Jordan=4, Michael Phelps=1, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'bqmmm17001688390332454dcc4263c', 'sports_likes': '{soccer=1, nba active=1, uss=2, nascar=105, nfl active=4, college football=3, others=1}', 'state': 'SC', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12946'), User(id='11897eab-1207-49e4-b837-4349430af046', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 79545, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 79546, tzinfo=datetime.timezone.utc), about='', metadata={'age': 28, 'city': 'Cheyenne', 'entity_likes': '{Others=107, Dan Quinn=2, Shaquille ONeal=1, Kyle Busch=14, Tony Stewart=30, Dale Earnhardt Jr=18, Ronda Rousey=1, Jim Harbaugh=1, Denny Hamlin=9, Bubba Wallace=3, Dwayne Johnson=1, Michael Jordan=7, Patrick Mahomes=1}', 'latest_sport_read': 'nascar', 'ppid': 'dpq7z1699711677856913ec1ef1bc0', 'sports_likes': '{mlb=1, ufc=1, wwe=6, nascar=183, nba legends=1, nfl active=2, college football=1}', 'state': 'WY', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12945'), User(id='4bb62e7a-91c3-4dcf-b2b7-d37570bf0b26', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 70255, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 70256, tzinfo=datetime.timezone.utc), about='', metadata={'age': 81, 'city': 'Saint Paul', 'entity_likes': '{Dale Earnhardt Jr=17, Others=48, LeBron James=1, Kyle Busch=13, Denny Hamlin=6, Tony Stewart=30, Bubba Wallace=1, Michael Jordan=5}', 'latest_sport_read': 'nba', 'ppid': 'hls4x17001518893566a2d13263b82', 'sports_likes': '{boxing=1, nba legends=2, nba active=2, nascar=115, others=1}', 'state': 'MN', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12944'), User(id='59deb2a1-69aa-44b2-9803-a0f54c5e06da', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 60675, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 60675, tzinfo=datetime.timezone.utc), about='', metadata={'age': 75, 'city': 'Trenton', 'entity_likes': '{Others=72, Sean Payton=1, Bill Belichick=1, Kyle Busch=8, Tom Brady=1, Tony Stewart=24, Tiger Woods=1, Caitlin Clark=2, Dale Earnhardt Jr=31, Olivia Dunne=1, Jim Harbaugh=2, Denny Hamlin=9, Michael Jordan=4, Patrick Mahomes=11}', 'latest_sport_read': 'nascar', 'ppid': 'ptdl61700009055720849e01a69071', 'sports_likes': '{wnba=1, golf=7, nba active=2, uss=2, nascar=132, nba legends=2, nfl active=15, nfl legends=4, college football=3}', 'state': 'NJ', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12943'), User(id='f125df03-84d3-4535-b65a-c8d87b16ddb9', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 51231, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 51231, tzinfo=datetime.timezone.utc), about='', metadata={'age': 78, 'city': 'Charleston', 'entity_likes': '{Others=94, Tara Davis Woodhall=1, Shaquille ONeal=3, Serena Williams=4, LeBron James=2, Kyle Busch=18, Tom Brady=1, Tony Stewart=15, Bronny James=1, Tiger Woods=2, Michael Phelps=1, Dale Earnhardt Jr=22, Olivia Dunne=1, Deion Sanders=32, Denny Hamlin=14, Bubba Wallace=5, Michael Jordan=5, Patrick Mahomes=4}', 'latest_sport_read': 'nba', 'ppid': 'scmkg1708381346790bcc19c11a58a', 'sports_likes': '{golf=3, nba active=2, uss=3, nascar=132, nba legends=2, nfl active=5, college football=73, tennis=5}', 'state': 'SC', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12942'), User(id='c1d7d255-89f4-4321-a867-0e178cf4058b', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 41801, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 41802, tzinfo=datetime.timezone.utc), about='', metadata={'age': 28, 'city': 'Brockport', 'entity_likes': '{Dale Earnhardt Jr=28, Others=96, Kyle Busch=46, Denny Hamlin=16, Tony Stewart=33, Bubba Wallace=5, Michael Jordan=8}', 'latest_sport_read': 'nascar', 'ppid': 'nwtts16996494221681db0ba32c9db', 'sports_likes': '{nascar=232}', 'state': 'NY', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12941'), User(id='9b039398-cf6f-472d-936b-c73d07803135', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 32370, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 32371, tzinfo=datetime.timezone.utc), about='', metadata={'age': 28, 'city': 'New York', 'entity_likes': '{Others=18, Tara Davis Woodhall=1, Shaquille ONeal=10, Serena Williams=7, LeBron James=1, Rebeca Andrade=1, Angel Reese=2, Bronny James=3, Caitlin Clark=7, Sydney McLaughlin=1, Shericka Jackson=3, ShaCarri Richardson=28, Gabby Thomas=9, Usain Bolt=6, Lewis Hamilton=1, Deion Sanders=1, Shilese Jones=1, Noah Lyles=3, Simone Biles=19, Patrick Mahomes=3}', 'latest_sport_read': 'uss', 'ppid': '8c5pg1711777331660f0b68c3d64b1', 'sports_likes': '{soccer=1, wnba=4, golf=1, nba active=14, uss=80, nba legends=11, nfl active=4, college football=4, tennis=6}', 'state': 'NY', 'top_entity': 'ShaCarri Richardson', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12940'), User(id='b0fe1361-fdd7-4f67-96f7-798451fe4484', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 23002, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 23003, tzinfo=datetime.timezone.utc), about='', metadata={'age': 79, 'city': 'Kansas City', 'entity_likes': '{Others=79, LeBron James=2, Kyle Busch=20, Tony Stewart=26, Bronny James=1, Dale Earnhardt Jr=23, Deion Sanders=5, Denny Hamlin=14, Bubba Wallace=5, Michael Jordan=13, Simone Biles=1, Patrick Mahomes=8}', 'latest_sport_read': 'nascar', 'ppid': 'rd4h217089830770857e8f0b192c88', 'sports_likes': '{nba active=1, uss=1, nascar=171, nba legends=5, nfl active=10, college football=8, others=1}', 'state': 'KS', 'top_entity': 'Tony Stewart', 'top_sources': 'google search', 'top_sport': 'nascar'}, name='user_12939'), User(id='b67a6449-5b9c-4b87-8346-27d116ae27a7', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 13629, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 13630, tzinfo=datetime.timezone.utc), about='', metadata={'age': 70, 'city': 'Opelika', 'entity_likes': '{Others=53, Shaquille ONeal=9, Serena Williams=10, LeBron James=2, Tiger Woods=1, Caitlin Clark=1, Shericka Jackson=1, ShaCarri Richardson=22, Gabby Thomas=1, Lewis Hamilton=1, Jordan Chiles=1, Deion Sanders=11, Michael Jordan=3, Noah Lyles=7, Simone Biles=54}', 'latest_sport_read': 'tennis', 'ppid': 'dbnvb169583353812390a22fad27f5', 'sports_likes': '{golf=1, nba active=10, uss=87, nba legends=13, nfl active=2, bodybuilding=1, college football=27, tennis=36}', 'state': 'AL', 'top_entity': 'Simone Biles', 'top_sources': 'google search', 'top_sport': 'uss'}, name='user_12938'), User(id='a9e8b541-d4f3-46fa-92b0-6eb637346291', created_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 4194, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 23, 4194, tzinfo=datetime.timezone.utc), about='', metadata={'age': 62, 'city': 'Center Valley', 'entity_likes': '{Dale Earnhardt Jr=9, Others=44, Olivia Dunne=1, Denny Hamlin=9, Kyle Busch=4, Tom Brady=2, Tony Stewart=20, Bubba Wallace=1, Dana White=1, Michael Jordan=8, Patrick Mahomes=6}', 'latest_sport_read': 'nascar', 'ppid': 'ddl8f17154224447419186086c3ab8', 'sports_likes': '{uss=1, nascar=90, nfl active=11, nfl legends=1, college football=1, others=1}', 'state': 'PA', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12937'), User(id='7a12b572-5b05-4e13-bbf8-766625039d37', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 994714, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 994714, tzinfo=datetime.timezone.utc), about='', metadata={'age': 75, 'city': 'Eustis', 'entity_likes': '{Dale Earnhardt Jr=40, Others=95, Kyle Busch=24, Denny Hamlin=21, Tony Stewart=36, Bubba Wallace=7, Michael Jordan=6}', 'latest_sport_read': 'nascar', 'ppid': 'r5fh816999245271800a0ef1600c34', 'sports_likes': '{nba legends=1, golf=1, f1=1, uss=2, nascar=224}', 'state': 'FL', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12936'), User(id='68ac029e-4e9d-4448-9f6b-c6b9d7d3e624', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 985394, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 985394, tzinfo=datetime.timezone.utc), about='', metadata={'age': 65, 'city': 'Tacoma', 'entity_likes': '{Others=61, Shaquille ONeal=6, Sean Payton=2, Joe Rogan=6, LeBron James=9, Tom Brady=1, Caitlin Clark=1, Usain Bolt=1, Khabib=11, Deion Sanders=1, Jon Jones=3, Dana White=17, Michael Jordan=12, Conor McGregor=5, Derek Jeter=1, Floyd Mayweather=3, Simone Biles=1}', 'latest_sport_read': 'ufc', 'ppid': 'jwpbk1710851952483930fbca3faa1', 'sports_likes': '{mlb=1, ufc=67, nba active=34, uss=2, boxing=14, nba legends=18, nfl active=2, college football=3}', 'state': 'WA', 'top_entity': 'Dana White', 'top_sources': 'discover', 'top_sport': 'ufc'}, name='user_12935'), User(id='4791ddfe-36ba-44ea-8768-8ec1cc741721', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 976068, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 976069, tzinfo=datetime.timezone.utc), about='', metadata={'age': 79, 'city': 'Palm Bay', 'entity_likes': '{Others=35, Tara Davis Woodhall=2, Shaquille ONeal=2, Serena Williams=23, Sean Payton=2, Joe Rogan=2, LeBron James=1, Tiger Woods=1, Caitlin Clark=1, Sydney McLaughlin=7, ShaCarri Richardson=2, Gabby Thomas=3, Jordan Chiles=1, Jim Harbaugh=1, Deion Sanders=1, Michael Jordan=1, Noah Lyles=1, Simone Biles=16, Patrick Mahomes=10}', 'latest_sport_read': 'tennis', 'ppid': 'g24pt17036688576702ad1c9fe8002', 'sports_likes': '{soccer=2, golf=1, ufc=2, nba active=4, uss=37, boxing=1, nba legends=6, nfl active=19, college football=6, tennis=34}', 'state': 'FL', 'top_entity': 'Serena Williams', 'top_sources': 'unknown', 'top_sport': 'uss'}, name='user_12934'), User(id='f6968f2b-d288-4029-b578-2a785bd993aa', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 966687, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 966687, tzinfo=datetime.timezone.utc), about='', metadata={'age': 82, 'city': 'Silsbee', 'entity_likes': '{Tara Davis Woodhall=2, Others=43, Serena Williams=3, Rebeca Andrade=1, Caitlin Clark=1, Femke Bol=1, Sydney McLaughlin=1, ShaCarri Richardson=4, Gabby Thomas=6, Jordan Chiles=3, Deion Sanders=27, Noah Lyles=2, Simone Biles=19, Patrick Mahomes=5}', 'latest_sport_read': 'nba', 'ppid': 'wxn521702308063818c5d9042f6d7f', 'sports_likes': '{soccer=1, wnba=1, nba active=5, uss=44, nba legends=1, nfl active=6, nfl legends=1, college football=52, tennis=7}', 'state': 'TX', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12933'), User(id='a4052869-fd0b-4122-bae2-55344dd8219d', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 957274, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 957275, tzinfo=datetime.timezone.utc), about='', metadata={'age': 48, 'city': 'Ogden', 'entity_likes': '{Others=35, Tara Davis Woodhall=2, Elaine Thompson=1, Serena Williams=1, Quincy Wilson=1, Rebeca Andrade=2, Jade Carey=1, Katie Ledecky=1, Femke Bol=1, Sydney McLaughlin=7, Dale Earnhardt Jr=1, ShaCarri Richardson=14, Gabby Thomas=1, Usain Bolt=2, Jordan Chiles=11, Olivia Dunne=5, Dwayne Johnson=1, Noah Lyles=9, Simone Biles=37}', 'latest_sport_read': 'uss', 'ppid': 'c65tr17133843247896d0a3238447f', 'sports_likes': '{wnba=2, uss=119, nascar=2, boxing=2, nba legends=3, nfl active=2, tennis=3}', 'state': 'UT', 'top_entity': 'Simone Biles', 'top_sources': 'google news', 'top_sport': 'uss'}, name='user_12932'), User(id='2710a042-25b4-42b0-b554-78a4be49fd4d', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 947834, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 947834, tzinfo=datetime.timezone.utc), about='', metadata={'age': 69, 'city': 'Aiken', 'entity_likes': '{Tara Davis Woodhall=2, Shaquille ONeal=4, Joe Rogan=1, Bronny James=2, Katie Ledecky=1, Caitlin Clark=6, Chennedy Carter=2, Femke Bol=2, Sydney McLaughlin=10, ShaCarri Richardson=15, Gabby Thomas=5, Jordan Chiles=1, Deion Sanders=4, Noah Lyles=16, Simone Biles=6, Others=41, LeBron James=8, Quincy Wilson=1, Angel Reese=4, Michael Phelps=1, Usain Bolt=2, Antonio Pierce=1, Jim Harbaugh=1, Dana White=1, Michael Jordan=4, Patrick Mahomes=2}', 'latest_sport_read': 'uss', 'ppid': 'd2wtt1704718909169e69fa8b21e5a', 'sports_likes': '{soccer=1, wnba=10, ufc=2, nba active=16, uss=73, nba legends=16, nfl active=6, nfl legends=1, nba=2, college football=16}', 'state': 'SC', 'top_entity': 'Noah Lyles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12931'), User(id='57879127-ebcb-4b69-9180-8480f16335dd', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 938443, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 938444, tzinfo=datetime.timezone.utc), about='', metadata={'age': 31, 'city': 'Clovis', 'entity_likes': '{Others=28, Tara Davis Woodhall=1, Dan Quinn=1, Shaquille ONeal=5, Fred Kerley=1, LeBron James=17, Tom Brady=3, Bronny James=1, Tiger Woods=4, Caitlin Clark=3, Michael Phelps=1, ShaCarri Richardson=4, Dawn Staley=4, Usain Bolt=2, Antonio Pierce=1, Deion Sanders=10, Michael Jordan=5, Noah Lyles=5, Floyd Mayweather=1, Simone Biles=4, Patrick Mahomes=3, Breanna Stewart=1}', 'latest_sport_read': 'uss', 'ppid': '858wj1702596449016153885ddccb1', 'sports_likes': '{wnba=6, golf=6, nba active=21, uss=23, boxing=1, nba legends=11, nfl active=14, nfl legends=2, nba=1, college football=20}', 'state': 'CA', 'top_entity': 'LeBron James', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12930'), User(id='5829bcf0-e10a-4aab-96ee-c2eba241f7fb', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 929031, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 929032, tzinfo=datetime.timezone.utc), about='', metadata={'age': 46, 'city': 'Columbia', 'entity_likes': '{Tara Davis Woodhall=2, Brittney Griner=1, Shaquille ONeal=1, Bill Belichick=1, Caitlin Clark=4, Sydney McLaughlin=6, ShaCarri Richardson=6, Dawn Staley=2, Gabby Thomas=6, Deion Sanders=9, Noah Lyles=7, Simone Biles=23, Others=44, Serena Williams=3, Fred Kerley=1, LeBron James=2, Quincy Wilson=1, Rebeca Andrade=2, Angel Reese=1, Tiger Woods=1, Michael Phelps=1, Steph Curry=1, Michael Jordan=4, Conor McGregor=1, Floyd Mayweather=1, Patrick Mahomes=4}', 'latest_sport_read': 'uss', 'ppid': 'zs5kz1717759865786985be4901418', 'sports_likes': '{wnba=4, golf=1, ufc=2, nba active=28, uss=62, nascar=1, boxing=1, nba legends=7, nfl active=6, college football=14, tennis=9}', 'state': 'SC', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12929'), User(id='69cac2d0-74c0-4f43-b77b-4bdb555a0bf7', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 919603, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 919603, tzinfo=datetime.timezone.utc), about='', metadata={'age': 61, 'city': 'Fredericksburg', 'entity_likes': '{Tara Davis Woodhall=2, Elaine Thompson=1, Shaquille ONeal=6, Joe Rogan=1, Tom Brady=1, Kyle Busch=7, Tony Stewart=13, Jade Carey=1, Lexi Thompson=2, Caitlin Clark=2, Femke Bol=1, Sydney McLaughlin=3, ShaCarri Richardson=29, Alex Rodriguez=1, Gabby Thomas=4, Christian Coleman=1, Ronda Rousey=1, Khabib=1, Olivia Dunne=3, Jordan Chiles=1, Deion Sanders=12, Shilese Jones=2, Noah Lyles=10, Simone Biles=39, Others=152, Serena Williams=12, LeBron James=2, Sabrina Ionescu=1, Angel Reese=3, Tiger Woods=1, Michael Phelps=3, Dale Earnhardt Jr=9, Shericka Jackson=1, Usain Bolt=4, Jim Harbaugh=1, Denny Hamlin=2, Michael Jordan=6, Derek Jeter=1, Patrick Mahomes=8}', 'latest_sport_read': 'nba', 'ppid': 'xpsbb17105028536951c3433f9aa2c', 'sports_likes': '{soccer=10, wnba=6, mlb=2, tennis=66, golf=19, ufc=4, nba active=7, uss=122, nascar=65, boxing=1, nba legends=12, nfl active=15, college football=21}', 'state': 'VA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12928'), User(id='adea3aa6-4a01-44b8-98c2-0e43407ea432', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 910254, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 910254, tzinfo=datetime.timezone.utc), about='', metadata={'age': 67, 'city': 'Camano Island', 'entity_likes': '{Cooper Flagg=1, Others=45, Shaquille ONeal=12, Sean Payton=2, Joe Rogan=1, LeBron James=15, Tom Brady=1, Bronny James=1, Mike Tyson=2, Caitlin Clark=1, Michael Phelps=1, Ronda Rousey=1, Khabib=1, Deion Sanders=3, Andy Reid=1, Dana White=3, Michael Jordan=8, Conor McGregor=1, Floyd Mayweather=2, Patrick Mahomes=6}', 'latest_sport_read': 'nba', 'ppid': 'lmrkx1708497751116de19a2606296', 'sports_likes': '{soccer=1, wnba=1, nba=2, tennis=1, ufc=9, nba active=39, uss=1, nascar=1, boxing=6, nba legends=23, nfl active=15, nfl legends=1, college football=8}', 'state': 'WA', 'top_entity': 'LeBron James', 'top_sources': 'discover', 'top_sport': 'nba active'}, name='user_12927'), User(id='1dac7c84-41d4-4bb5-8b53-31599b7356b5', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 901034, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 901034, tzinfo=datetime.timezone.utc), about='', metadata={'age': 77, 'city': 'Debary', 'entity_likes': '{Jake Paul=1, Others=33, Shaquille ONeal=2, Joe Rogan=11, Kyle Busch=2, Tom Brady=1, Tony Stewart=5, Mike Tyson=1, Dale Earnhardt Jr=9, Khabib=11, Denny Hamlin=1, Bubba Wallace=1, Dana White=14, Conor McGregor=3, Michael Jordan=4, Floyd Mayweather=3}', 'latest_sport_read': 'ufc', 'ppid': 'f6vz21709779959706885e73ccc16f', 'sports_likes': '{boxing=7, nba legends=3, ufc=53, nascar=38, college football=1}', 'state': 'FL', 'top_entity': 'Dana White', 'top_sources': 'discover', 'top_sport': 'ufc'}, name='user_12926'), User(id='03d0a0bc-4161-4e86-a3e1-de6912445767', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 891431, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 891432, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Ridgewood', 'entity_likes': '{Others=57, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=6, Serena Williams=13, LeBron James=5, Bronny James=2, Caitlin Clark=2, Sydney McLaughlin=2, ShaCarri Richardson=14, Dawn Staley=2, Gabby Thomas=6, Usain Bolt=1, Ronda Rousey=1, Deion Sanders=27, Michael Jordan=9, Noah Lyles=1, Floyd Mayweather=1, Simone Biles=9, Patrick Mahomes=22}', 'latest_sport_read': 'uss', 'ppid': 'dcfht17150950410146cff2e35d84a', 'sports_likes': '{soccer=2, wnba=1, ufc=2, nba active=20, uss=40, boxing=2, nba legends=15, nfl active=25, bodybuilding=1, college football=57, tennis=17}', 'state': 'NJ', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12925'), User(id='8a2f901f-c708-4e1a-bd9f-1ea38a2bcbc8', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 882463, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 882463, tzinfo=datetime.timezone.utc), about='', metadata={'age': 76, 'city': 'Olympia', 'entity_likes': '{Others=63, Shaquille ONeal=1, LeBron James=1, Kelsey Plum=1, Kyle Busch=14, Tony Stewart=26, Sabrina Ionescu=1, Angel Reese=2, Caitlin Clark=13, Femke Bol=1, Sydney McLaughlin=3, Dale Earnhardt Jr=17, ShaCarri Richardson=7, Gabby Thomas=2, Usain Bolt=1, Olivia Dunne=2, Jim Harbaugh=1, Bubba Wallace=3, Michael Jordan=5, Noah Lyles=1, Simone Biles=1, Patrick Mahomes=2}', 'latest_sport_read': 'nba', 'ppid': '2tdkc170002411440605036a5e505c', 'sports_likes': '{wnba=14, golf=1, nba active=1, uss=21, nascar=122, nfl active=3, college football=6}', 'state': 'WA', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12924'), User(id='09b6790c-fa83-4d65-b4e8-99f0afda4469', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 873453, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 873455, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Sarasota', 'entity_likes': '{Others=31, Tara Davis Woodhall=1, Serena Williams=2, Kyle Busch=7, Tony Stewart=7, Rebeca Andrade=1, Bronny James=1, Sydney McLaughlin=4, Arnold Schwarzenegger=1, ShaCarri Richardson=4, Gabby Thomas=2, Usain Bolt=1, Jordan Chiles=4, Olivia Dunne=4, Hezley Rivera=1, Denny Hamlin=1, Dwayne Johnson=1, Noah Lyles=4, Simone Biles=23, Patrick Mahomes=3}', 'latest_sport_read': 'uss', 'ppid': 'v8gs41709754154716e47e1ba34022', 'sports_likes': '{golf=6, uss=65, nascar=20, nba legends=1, nfl active=7, bodybuilding=1, tennis=3}', 'state': 'FL', 'top_entity': 'Simone Biles', 'top_sources': 'google news', 'top_sport': 'uss'}, name='user_12923'), User(id='bc35fd5c-36f5-4605-80e7-debc3bfe913c', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 864410, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 864410, tzinfo=datetime.timezone.utc), about='', metadata={'age': 48, 'city': 'Clay City', 'entity_likes': '{Others=25, Tara Davis Woodhall=4, Shaquille ONeal=1, Serena Williams=5, Quincy Wilson=1, LeBron James=4, Rebeca Andrade=2, Angel Reese=1, Caitlin Clark=6, Michael Phelps=1, Sydney McLaughlin=2, ShaCarri Richardson=8, Gabby Thomas=3, Usain Bolt=1, Jordan Chiles=4, Olivia Dunne=3, Deion Sanders=2, Simone Biles=41, Patrick Mahomes=19}', 'latest_sport_read': 'tennis', 'ppid': 'm2nlr1707497158876bf1fa29af4ce', 'sports_likes': '{wnba=4, nba active=6, uss=81, nba legends=3, nfl active=22, college football=8, tennis=9}', 'state': 'KY', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12922'), User(id='0f1ad82e-d7ad-4a7b-bd6c-fd11737bda2c', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 855484, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 855484, tzinfo=datetime.timezone.utc), about='', metadata={'age': 40, 'city': 'Lake Saint Louis', 'entity_likes': '{Dale Earnhardt Jr=12, Others=59, Jim Harbaugh=1, Denny Hamlin=4, Kyle Busch=14, Tony Stewart=23, Bubba Wallace=4, Angel Reese=2, Michael Jordan=7, Caitlin Clark=4}', 'latest_sport_read': 'nascar', 'ppid': '26vvk170010658652551227fba4940', 'sports_likes': '{wnba=2, nfl active=1, nascar=121, college football=5, others=1}', 'state': 'MO', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12921'), User(id='a26c312e-214a-4161-a7cb-23fd63bf0c0f', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 846581, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 846581, tzinfo=datetime.timezone.utc), about='', metadata={'age': 70, 'city': 'Albuquerque', 'entity_likes': '{Dale Earnhardt Jr=9, Others=53, Kyle Busch=15, Denny Hamlin=11, Tony Stewart=17, Bubba Wallace=3, Michael Jordan=7}', 'latest_sport_read': 'nascar', 'ppid': 'wb9ct1714389173569740deb788336', 'sports_likes': '{nascar=115}', 'state': 'NM', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12920'), User(id='d598001a-4138-4580-8a43-a72f22c1af31', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 837235, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 837235, tzinfo=datetime.timezone.utc), about='', metadata={'age': 49, 'city': 'Alameda', 'entity_likes': '{Dale Earnhardt Jr=9, Others=39, Ronda Rousey=1, Denny Hamlin=5, Kyle Busch=18, Tony Stewart=22, Bubba Wallace=1, Michael Jordan=9, Tiger Woods=2, Floyd Mayweather=1}', 'latest_sport_read': 'nascar', 'ppid': 'bnsqp170048143696497809eefe5c8', 'sports_likes': '{nba legends=1, golf=3, ufc=2, nascar=100, others=1}', 'state': 'CA', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12919'), User(id='2348102e-5976-4387-966d-b441ae749af2', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 828289, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 828290, tzinfo=datetime.timezone.utc), about='', metadata={'age': 63, 'city': 'Dayton', 'entity_likes': '{Dale Earnhardt Jr=9, Others=54, Kyle Busch=43, Denny Hamlin=15, Tony Stewart=18, Bubba Wallace=6, Michael Jordan=5}', 'latest_sport_read': 'nascar', 'ppid': '525d217001485532440dc6fbf599fa', 'sports_likes': '{nascar=149, nba active=1}', 'state': 'OH', 'top_entity': 'Kyle Busch', 'top_sources': 'facebook', 'top_sport': 'nascar'}, name='user_12918'), User(id='fc21a7f7-f729-4979-bd8a-775df9d832a5', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 819266, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 819266, tzinfo=datetime.timezone.utc), about='', metadata={'age': 54, 'city': 'Piedmont', 'entity_likes': '{Others=111, Sean Payton=1, LeBron James=1, Kyle Busch=16, Tom Brady=1, Tony Stewart=28, Dale Earnhardt Jr=28, Deion Sanders=3, Jim Harbaugh=2, Denny Hamlin=8, Bubba Wallace=6, Michael Jordan=13, Simone Biles=2, Patrick Mahomes=4}', 'latest_sport_read': 'nascar', 'ppid': 'q989617041923638193d65e90facdf', 'sports_likes': '{uss=4, nascar=201, nfl active=6, nfl legends=1, f1=1, college football=10, tennis=1}', 'state': 'SC', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12917'), User(id='df86ac35-4267-4d4a-bc6d-a1d5e9d3f536', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 810258, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 810259, tzinfo=datetime.timezone.utc), about='', metadata={'age': 44, 'city': 'Pewee Valley', 'entity_likes': '{Others=53, Kyle Busch=14, Tony Stewart=32, Rebeca Andrade=1, Dale Earnhardt Jr=10, ShaCarri Richardson=1, Jordan Chiles=2, Denny Hamlin=1, Bubba Wallace=1, Michael Jordan=5, Noah Lyles=1, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'svgvl17097394611976e93f397fa74', 'sports_likes': '{golf=1, ufc=1, nba active=1, uss=5, nascar=107, boxing=1, nfl active=6, others=1}', 'state': 'KY', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12916'), User(id='7d561865-34a2-4d1f-a630-47de9d5fdc1b', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 801246, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 801247, tzinfo=datetime.timezone.utc), about='', metadata={'age': 68, 'city': 'Savannah', 'entity_likes': '{Others=88, Kyle Busch=9, Tony Stewart=21, Caitlin Clark=3, Michael Phelps=1, Sydney McLaughlin=1, Dale Earnhardt Jr=22, Olivia Dunne=1, Denny Hamlin=20, Bubba Wallace=5, Michael Jordan=6, Simone Biles=4, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'tg8gs171063360181733df79386827', 'sports_likes': '{soccer=1, wnba=3, nfl active=1, uss=7, nascar=171}', 'state': 'GA', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12915'), User(id='7c58a3e2-8873-46a9-a0c3-4b20318b081f', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 792043, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 792043, tzinfo=datetime.timezone.utc), about='', metadata={'age': 76, 'city': 'Riverside', 'entity_likes': '{Others=69, Dan Quinn=1, Shaquille ONeal=4, Sean Payton=1, LeBron James=13, Shohei Ohtani=1, Angel Reese=1, Caitlin Clark=2, ShaCarri Richardson=3, Dawn Staley=2, Alex Rodriguez=3, Gabby Thomas=1, Usain Bolt=1, Jim Harbaugh=3, Deion Sanders=15, Michael Jordan=8, Noah Lyles=5, Patrick Mahomes=1}', 'latest_sport_read': 'mlb', 'ppid': 'dhvgg170372249486048a6d1b10d9e', 'sports_likes': '{wnba=1, mlb=1, nba active=44, uss=12, nba legends=20, nfl active=4, bodybuilding=1, nfl legends=1, college football=50}', 'state': 'CA', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12914'), User(id='b1e7823d-8d9d-4f5b-a069-5d70d76231f5', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 782912, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 782913, tzinfo=datetime.timezone.utc), about='', metadata={'age': 47, 'city': 'Santa Anna', 'entity_likes': '{Dale Earnhardt Jr=14, Others=68, Joe Rogan=1, Denny Hamlin=11, Kyle Busch=11, Tony Stewart=11, Bubba Wallace=3, Michael Jordan=1, Patrick Mahomes=4}', 'latest_sport_read': 'mlb', 'ppid': 'dk48l1709765986765906644fc5308', 'sports_likes': '{mlb=1, golf=7, nascar=106, boxing=1, nfl active=6, college football=2, others=1}', 'state': 'TX', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12913'), User(id='3c288b82-d4f0-455a-ab15-9fd35c56c3cc', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 773914, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 773915, tzinfo=datetime.timezone.utc), about='', metadata={'age': 34, 'city': 'Miami', 'entity_likes': '{Others=51, Tara Davis Woodhall=5, Shaquille ONeal=8, Serena Williams=4, LeBron James=7, Quincy Wilson=1, Angel Reese=1, Bronny James=1, Caitlin Clark=3, Sydney McLaughlin=1, Shericka Jackson=1, ShaCarri Richardson=9, Gabby Thomas=1, Usain Bolt=1, Deion Sanders=14, Michael Jordan=6, Noah Lyles=5, Simone Biles=14, Patrick Mahomes=5}', 'latest_sport_read': 'nba', 'ppid': 'xvjmr1713850614603af32d6f57d0d', 'sports_likes': '{wnba=2, nba active=13, uss=47, boxing=2, nba legends=20, nfl active=10, college football=36, tennis=8}', 'state': 'FL', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12912'), User(id='80278151-092a-4fdf-87a3-3e101532932b', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 764992, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 764992, tzinfo=datetime.timezone.utc), about='', metadata={'age': 39, 'city': 'Detroit', 'entity_likes': '{Dale Earnhardt Jr=13, Others=44, Ronda Rousey=1, Denny Hamlin=10, Kyle Busch=11, Tony Stewart=18, Bubba Wallace=5, Dwayne Johnson=1, Michael Jordan=8, Patrick Mahomes=3}', 'latest_sport_read': 'nascar', 'ppid': '7mlrt17134201906879e33470ff91f', 'sports_likes': '{nfl active=4, ufc=2, nba active=1, wwe=5, nascar=102}', 'state': 'MI', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12911'), User(id='52f7b4a3-5561-496a-ad78-199dabc72ab9', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 756084, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 756085, tzinfo=datetime.timezone.utc), about='', metadata={'age': 77, 'city': 'Pittsburgh', 'entity_likes': '{Dale Earnhardt Jr=34, Others=127, Shaquille ONeal=1, Denny Hamlin=22, Kyle Busch=49, Tony Stewart=38, Bubba Wallace=5, Michael Jordan=7, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': 'cx94h16997512974183054eddd5397', 'sports_likes': '{mlb=1, uss=1, nascar=278, nba legends=1, nfl active=3, others=1}', 'state': 'PA', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12910'), User(id='2ee43932-1db9-4d20-ac28-aa05ff237d02', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 746903, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 746904, tzinfo=datetime.timezone.utc), about='', metadata={'age': 66, 'city': 'Pico Rivera', 'entity_likes': '{Others=61, Tara Davis Woodhall=1, Shaquille ONeal=8, Serena Williams=1, LeBron James=15, Angel Reese=1, Bronny James=2, Caitlin Clark=2, ShaCarri Richardson=4, Gabby Thomas=3, Usain Bolt=1, Jordan Chiles=2, Jim Harbaugh=1, Deion Sanders=14, Shilese Jones=1, Michael Jordan=11, Noah Lyles=1, Floyd Mayweather=3, Simone Biles=43, Patrick Mahomes=7}', 'latest_sport_read': 'nba', 'ppid': 'wgwgv1702602796267c4e2c1444ec2', 'sports_likes': '{wnba=6, ufc=1, nba active=41, uss=63, boxing=3, nba legends=27, nfl active=11, college football=28, tennis=2}', 'state': 'CA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12909'), User(id='c62af20f-44a1-4a0e-ba0f-a287154e66b5', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 737773, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 737774, tzinfo=datetime.timezone.utc), about='', metadata={'age': 42, 'city': 'Washington', 'entity_likes': '{Tara Davis Woodhall=1, Others=26, Serena Williams=15, Jade Carey=1, Tiger Woods=6, Katie Ledecky=1, Sydney McLaughlin=1, ShaCarri Richardson=1, Gabby Thomas=2, Jordan Chiles=3, Noah Lyles=2, Simone Biles=43, Patrick Mahomes=4}', 'latest_sport_read': 'tennis', 'ppid': 'pswmm1702597843946788871509a92', 'sports_likes': '{nba legends=1, golf=7, nfl active=8, uss=70, tennis=20}', 'state': 'DC', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12908'), User(id='356e1913-cc5a-4115-90cc-b8bd1cbb1198', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 728629, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 728629, tzinfo=datetime.timezone.utc), about='', metadata={'age': 65, 'city': 'Arlington', 'entity_likes': '{Others=45, Tara Davis Woodhall=2, Shaquille ONeal=8, Serena Williams=5, LeBron James=2, Rebeca Andrade=2, Jade Carey=1, Caitlin Clark=2, Sydney McLaughlin=1, Shericka Jackson=1, ShaCarri Richardson=9, Dawn Staley=1, Khabib=1, Jordan Chiles=1, Deion Sanders=5, Shilese Jones=1, Michael Jordan=4, Noah Lyles=3, Simone Biles=26, Patrick Mahomes=6}', 'latest_sport_read': 'tennis', 'ppid': 'xr8nz1704585558664718420ef2699', 'sports_likes': '{wnba=1, ufc=1, nba active=11, uss=59, nascar=1, boxing=1, nba legends=16, nfl active=10, college football=9, tennis=17}', 'state': 'VA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12907'), User(id='7c13f49d-39e8-4855-9123-f2b1f8c8eaf0', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 719314, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 719315, tzinfo=datetime.timezone.utc), about='', metadata={'age': 25, 'city': 'Orlando', 'entity_likes': '{Cooper Flagg=1, Others=34, Tara Davis Woodhall=1, Shaquille ONeal=1, Serena Williams=4, Fred Kerley=2, LeBron James=6, Quincy Wilson=2, Rebeca Andrade=1, Bronny James=1, Tiger Woods=2, Sydney McLaughlin=2, ShaCarri Richardson=10, Dawn Staley=1, Gabby Thomas=6, Christian Coleman=1, Usain Bolt=1, Jordan Chiles=2, Deion Sanders=1, Michael Jordan=1, Noah Lyles=7, Simone Biles=13, Patrick Mahomes=6}', 'latest_sport_read': 'nba', 'ppid': '6xjtk1719823166150a8c72c3631c2', 'sports_likes': '{wnba=1, golf=2, nba active=18, uss=52, nba legends=11, nfl active=8, college football=4, tennis=10}', 'state': 'FL', 'top_entity': 'Simone Biles', 'top_sources': 'google search', 'top_sport': 'uss'}, name='user_12906'), User(id='bf0228f7-2377-40f7-b96e-dd01b0999716', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 708604, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 708604, tzinfo=datetime.timezone.utc), about='', metadata={'age': 52, 'city': 'Belvidere', 'entity_likes': '{Others=68, Shaquille ONeal=4, Serena Williams=9, LeBron James=15, Mike Tyson=1, Caitlin Clark=1, Arnold Schwarzenegger=1, ShaCarri Richardson=6, Usain Bolt=1, Deion Sanders=39, Steph Curry=1, Dana White=1, Michael Jordan=8, Noah Lyles=1, Floyd Mayweather=1, Simone Biles=6}', 'latest_sport_read': 'tennis', 'ppid': 'bdp5v17109341544614a950515bccc', 'sports_likes': '{soccer=1, wnba=1, ufc=1, nba active=31, uss=14, boxing=1, nba legends=15, nfl active=1, bodybuilding=1, college football=87, tennis=10}', 'state': 'IL', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12905'), User(id='33011adb-51a9-4e40-a191-71f4c46bc6f0', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 699019, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 699020, tzinfo=datetime.timezone.utc), about='', metadata={'age': 44, 'city': 'Covington', 'entity_likes': '{Others=64, Tara Davis Woodhall=5, Shaquille ONeal=5, Serena Williams=4, LeBron James=2, Quincy Wilson=1, Angel Reese=1, Bronny James=2, Caitlin Clark=1, Sydney McLaughlin=1, ShaCarri Richardson=14, Dawn Staley=2, Jordan Chiles=2, Deion Sanders=19, Noah Lyles=5, Simone Biles=34, Patrick Mahomes=1}', 'latest_sport_read': 'nfl', 'ppid': 'lrg4k1711052054352e6732d52fafd', 'sports_likes': '{wnba=1, nba active=5, uss=77, nba legends=7, nfl active=6, college football=52, others=1, tennis=14}', 'state': 'GA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12904'), User(id='5d92dc5f-e732-4c47-a51c-36e14b24b40d', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 689862, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 689862, tzinfo=datetime.timezone.utc), about='', metadata={'age': 77, 'city': 'Onancock', 'entity_likes': '{Tara Davis Woodhall=1, Dan Quinn=1, Shaquille ONeal=11, Sean Payton=1, Shohei Ohtani=1, Bronny James=2, Caitlin Clark=6, ShaCarri Richardson=41, Gabby Thomas=5, Christian Coleman=1, Olivia Dunne=1, Lewis Hamilton=1, Shilese Jones=1, Noah Lyles=3, Simone Biles=49, Others=54, Serena Williams=14, LeBron James=21, Rebeca Andrade=1, Shericka Jackson=1, Usain Bolt=5, Hezley Rivera=1, Michael Jordan=4, Patrick Mahomes=2}', 'latest_sport_read': 'tennis', 'ppid': 'xgqjv1709163414272cbd5d8fc795a', 'sports_likes': '{soccer=1, wnba=1, mlb=1, nba active=38, uss=132, nascar=1, nba legends=16, nfl active=13, college football=5, tennis=20}', 'state': 'VA', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12903'), User(id='0dd55872-aade-4a30-8f3e-667c7c7cedfc', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 680446, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 680447, tzinfo=datetime.timezone.utc), about='', metadata={'age': 49, 'city': 'Smyrna', 'entity_likes': '{Others=42, Shaquille ONeal=3, Serena Williams=6, LeBron James=2, Rebeca Andrade=1, Sabrina Ionescu=1, Caitlin Clark=6, Chennedy Carter=1, ShaCarri Richardson=5, Gabby Thomas=1, Usain Bolt=1, Olivia Dunne=5, Noah Lyles=1, Simone Biles=18, Patrick Mahomes=17}', 'latest_sport_read': 'nba', 'ppid': 'cjqr717058832849099d2595c01238', 'sports_likes': '{soccer=27, wnba=5, nba active=7, uss=40, nba legends=4, nfl active=19, college football=1, tennis=7}', 'state': 'TN', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12902'), User(id='7087f3c9-7fab-4f4f-a246-430987cf1619', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 670957, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 670957, tzinfo=datetime.timezone.utc), about='', metadata={'age': 61, 'city': 'Gaffney', 'entity_likes': '{Others=35, Tara Davis Woodhall=2, Serena Williams=6, LeBron James=1, Rebeca Andrade=1, Angel Reese=1, Tiger Woods=1, Caitlin Clark=1, Femke Bol=1, Sydney McLaughlin=6, Shericka Jackson=1, ShaCarri Richardson=10, Gabby Thomas=5, Usain Bolt=1, Jordan Chiles=2, Deion Sanders=3, Hezley Rivera=1, Noah Lyles=5, Simone Biles=14, Patrick Mahomes=11}', 'latest_sport_read': 'nfl', 'ppid': 'mcfqw1710931584427753ab1215cef', 'sports_likes': '{wnba=2, golf=1, nba active=10, uss=61, boxing=1, nba legends=2, nfl active=17, college football=7, tennis=7}', 'state': 'SC', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12901'), User(id='50280a66-500c-4f26-b908-298cae1cb856', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 661360, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 661360, tzinfo=datetime.timezone.utc), about='', metadata={'age': 57, 'city': 'Las Vegas', 'entity_likes': '{Dale Earnhardt Jr=5, Others=40, Kyle Busch=8, Denny Hamlin=8, Tony Stewart=21, Bubba Wallace=2, Michael Jordan=7, Patrick Mahomes=17}', 'latest_sport_read': 'nascar', 'ppid': 'vz58p1711915383606186164440658', 'sports_likes': '{golf=1, nba active=1, nascar=85, nba legends=2, nfl active=18, f1=1}', 'state': 'NV', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12900'), User(id='bf972c3e-b56e-4db0-92a3-de6ed2f1693e', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 652032, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 652032, tzinfo=datetime.timezone.utc), about='', metadata={'age': 49, 'city': 'Bethesda', 'entity_likes': '{Dale Earnhardt Jr=25, Others=84, Usain Bolt=1, Denny Hamlin=24, Kyle Busch=26, Tony Stewart=29, Bubba Wallace=8, Dana White=1, Michael Jordan=12}', 'latest_sport_read': 'nascar', 'ppid': 'wxhns17000026850039e36acaeab86', 'sports_likes': '{nfl active=1, ufc=1, uss=2, nascar=205, others=1}', 'state': 'MD', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12899'), User(id='296fdba9-8d3e-4fb6-80aa-37056913bb96', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 642496, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 642497, tzinfo=datetime.timezone.utc), about='', metadata={'age': 22, 'city': 'Federal Way', 'entity_likes': '{Others=72, Kyle Busch=25, Tony Stewart=19, Lexi Thompson=1, Tiger Woods=1, Dale Earnhardt Jr=11, Gabby Thomas=1, Jim Harbaugh=2, Denny Hamlin=9, Bubba Wallace=6, Michael Jordan=6, Simone Biles=3}', 'latest_sport_read': 'nascar', 'ppid': 'kx7lm169965557346857c432163c0e', 'sports_likes': '{golf=6, uss=5, nascar=139, nba legends=1, nfl active=2, college football=2, others=1}', 'state': 'WA', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12898'), User(id='c17e4a40-c9bd-462b-8186-5e25a7dfbd77', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 632774, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 632775, tzinfo=datetime.timezone.utc), about='', metadata={'age': 47, 'city': 'Fortson', 'entity_likes': '{Tara Davis Woodhall=1, Others=60, Kyle Busch=16, Tony Stewart=35, Caitlin Clark=2, Dale Earnhardt Jr=18, Deion Sanders=7, Jim Harbaugh=1, Denny Hamlin=8, Bubba Wallace=4, Michael Jordan=10, Simone Biles=2}', 'latest_sport_read': 'nascar', 'ppid': 'fx4kq1705641369609e6b80baca182', 'sports_likes': '{wnba=3, nba active=1, uss=3, nascar=134, nba legends=4, college football=18, others=1}', 'state': 'GA', 'top_entity': 'Tony Stewart', 'top_sources': 'unknown', 'top_sport': 'nascar'}, name='user_12897'), User(id='ff540ea2-98d5-431c-b11e-6ddd9b84fcec', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 622666, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 622666, tzinfo=datetime.timezone.utc), about='', metadata={'age': 53, 'city': 'Minneapolis', 'entity_likes': '{Tara Davis Woodhall=1, Others=63, Shaquille ONeal=2, Serena Williams=8, Bronny James=1, Tiger Woods=6, Caitlin Clark=1, Sydney McLaughlin=3, ShaCarri Richardson=4, Jordan Chiles=1, Deion Sanders=11, Jim Harbaugh=1, Dana White=1, Michael Jordan=1, Noah Lyles=1, Simone Biles=1}', 'latest_sport_read': 'tennis', 'ppid': '6g7m71700563060403f985afeb9662', 'sports_likes': '{soccer=1, golf=10, ufc=7, nba active=1, uss=13, boxing=2, nba legends=4, nfl active=1, college football=18, tennis=49}', 'state': 'MN', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'tennis'}, name='user_12896'), User(id='85bbe0ac-2a58-4a24-8e6a-9734d84222a4', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 613337, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 613338, tzinfo=datetime.timezone.utc), about='', metadata={'age': 51, 'city': 'Newark', 'entity_likes': '{Elaine Thompson=1, Shaquille ONeal=13, Kelsey Plum=1, Bronny James=1, Caitlin Clark=9, Chennedy Carter=1, Sydney McLaughlin=1, ShaCarri Richardson=22, Dawn Staley=1, Kishane Thompson=1, Gabby Thomas=3, Christian Coleman=1, Ronda Rousey=1, Olivia Dunne=1, Lewis Hamilton=1, Deion Sanders=42, Noah Lyles=6, Simone Biles=11, Others=92, Serena Williams=11, LeBron James=11, Angel Reese=9, Erriyon Knighton=1, Shericka Jackson=2, Usain Bolt=6, Dana White=3, Michael Jordan=9, Conor McGregor=1, Floyd Mayweather=4, Patrick Mahomes=3}', 'latest_sport_read': 'nfl', 'ppid': 'djpf61715120261546d1ccbd7ed8c1', 'sports_likes': '{soccer=1, wnba=13, wwe=1, tennis=11, ufc=6, nba active=37, uss=71, boxing=8, nba legends=29, nfl active=12, nfl legends=1, college football=77, others=2}', 'state': 'DE', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'college football'}, name='user_12895'), User(id='8d194f69-3bca-41a8-a050-37194b7ddc8c', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 604267, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 604268, tzinfo=datetime.timezone.utc), about='', metadata={'age': 69, 'city': 'Greenville', 'entity_likes': '{Others=79, Dan Quinn=1, Sean Payton=1, LeBron James=3, Kelsey Plum=1, Kyle Busch=15, Tony Stewart=12, Tiger Woods=2, Michael Phelps=1, Dale Earnhardt Jr=14, ShaCarri Richardson=2, Gabby Thomas=1, Jim Harbaugh=2, Deion Sanders=1, Denny Hamlin=7, Bubba Wallace=4, Michael Jordan=9}', 'latest_sport_read': 'nascar', 'ppid': 'xb96z1703264290857ca12bb3353d3', 'sports_likes': '{wnba=2, golf=8, nba active=9, uss=4, nascar=114, nba legends=1, nfl active=8, college football=9}', 'state': 'SC', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12894'), User(id='415d81aa-3cb0-423f-b311-b107835d742e', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 594949, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 594949, tzinfo=datetime.timezone.utc), about='', metadata={'age': 59, 'city': 'Chattanooga', 'entity_likes': '{Others=43, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=12, Serena Williams=14, LeBron James=6, Rebeca Andrade=1, Angel Reese=1, Bronny James=1, Caitlin Clark=1, Sydney McLaughlin=3, Shericka Jackson=2, ShaCarri Richardson=37, Gabby Thomas=2, Steph Curry=1, Michael Jordan=3, Noah Lyles=5, Simone Biles=19, Patrick Mahomes=4}', 'latest_sport_read': 'nfl', 'ppid': 'rm86f17130090035802efab297fd58', 'sports_likes': '{wnba=2, nba active=17, uss=76, nba legends=24, nfl active=13, nba=2, college football=2, tennis=21}', 'state': 'TN', 'top_entity': 'ShaCarri Richardson', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12893'), User(id='887645d9-016e-44f0-b6da-366f96e9ac44', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 585637, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 585637, tzinfo=datetime.timezone.utc), about='', metadata={'age': 72, 'city': 'Greenville', 'entity_likes': '{Dale Earnhardt Jr=16, Others=69, Kyle Busch=8, Denny Hamlin=8, Tony Stewart=15, Bubba Wallace=1, Michael Jordan=6}', 'latest_sport_read': 'nascar', 'ppid': '29q4g169967093544713c35215f36e', 'sports_likes': '{nascar=123}', 'state': 'SC', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'internal link', 'top_sport': 'nascar'}, name='user_12892'), User(id='b98a3e74-2e4f-409f-acce-9762b14aad64', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 576229, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 576230, tzinfo=datetime.timezone.utc), about='', metadata={'age': 57, 'city': 'Pine Bush', 'entity_likes': '{Others=57, Shaquille ONeal=7, Jakob Ingerbrigtsen=1, Serena Williams=9, LeBron James=7, Rebeca Andrade=1, Tiger Woods=2, Caitlin Clark=2, Michael Phelps=1, ShaCarri Richardson=5, Dawn Staley=1, Gabby Thomas=2, Christian Coleman=1, Deion Sanders=9, Michael Jordan=4, Noah Lyles=4, Simone Biles=4, Patrick Mahomes=1, Breanna Stewart=1}', 'latest_sport_read': 'nba', 'ppid': '5qj79171104912391278a511b5bf51', 'sports_likes': '{wnba=1, golf=4, nba active=23, uss=25, nascar=1, boxing=2, nba legends=13, nfl active=2, college football=23, tennis=25}', 'state': 'NY', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'tennis'}, name='user_12891'), User(id='25361cf3-8fd6-4fe9-b185-499a39c32283', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 566985, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 566986, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Ellenville', 'entity_likes': '{Jake Paul=1, Others=69, Shaquille ONeal=2, Serena Williams=1, Joe Rogan=11, LeBron James=3, Tiger Woods=5, Mike Tyson=7, Caitlin Clark=2, Dale Earnhardt Jr=1, ShaCarri Richardson=9, Ronda Rousey=2, Khabib=5, Olivia Dunne=3, Lewis Hamilton=1, Deion Sanders=11, Dana White=22, Michael Jordan=3, Conor McGregor=11, Floyd Mayweather=1, Simone Biles=4, Patrick Mahomes=14}', 'latest_sport_read': 'ufc', 'ppid': '5zxzj170290682376491751d4720a4', 'sports_likes': '{wnba=1, golf=9, ufc=81, nba active=5, uss=19, nascar=1, boxing=10, nba legends=4, nfl active=19, college football=37, tennis=2}', 'state': 'NY', 'top_entity': 'Dana White', 'top_sources': 'discover', 'top_sport': 'ufc'}, name='user_12890'), User(id='55d34803-538f-4af5-b871-10ea948a42e7', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 557641, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 557641, tzinfo=datetime.timezone.utc), about='', metadata={'age': 36, 'city': 'Pearland', 'entity_likes': '{Others=75, Tara Davis Woodhall=1, Elaine Thompson=1, Shaquille ONeal=3, Serena Williams=7, Sean Payton=6, LeBron James=8, Quincy Wilson=1, Rebeca Andrade=1, Angel Reese=6, Bronny James=1, Caitlin Clark=10, Chennedy Carter=1, Sydney McLaughlin=4, ShaCarri Richardson=35, Dawn Staley=2, Gabby Thomas=6, Jordan Chiles=4, Olivia Dunne=1, Deion Sanders=36, Derek Jeter=1, Noah Lyles=4, Simone Biles=17}', 'latest_sport_read': 'nba', 'ppid': '5l9kj1711045407182bd7c7cd074a1', 'sports_likes': '{wnba=10, mlb=1, nba active=17, uss=84, boxing=2, nba legends=12, nfl active=10, nfl legends=1, nba=1, college football=79, tennis=14}', 'state': 'TX', 'top_entity': 'Deion Sanders', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12889'), User(id='fad0bc2d-c3b6-4f2a-acc8-f6774e354cdc', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 548274, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 548274, tzinfo=datetime.timezone.utc), about='', metadata={'age': 55, 'city': 'Bridgewater', 'entity_likes': '{Dale Earnhardt Jr=12, Others=55, Denny Hamlin=8, Kyle Busch=10, Tony Stewart=13, Bubba Wallace=3, Michael Jordan=4, Caitlin Clark=1, Simone Biles=2, Patrick Mahomes=1}', 'latest_sport_read': 'nascar', 'ppid': 'dgxst1711018117632c449a2aa5282', 'sports_likes': '{wnba=1, uss=2, nascar=102, nfl active=2, college football=1, others=1}', 'state': 'NJ', 'top_entity': 'Tony Stewart', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12888'), User(id='1c26226e-3c4a-4765-aa71-597102368958', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 539118, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 539118, tzinfo=datetime.timezone.utc), about='', metadata={'age': 69, 'city': 'Brooklyn', 'entity_likes': '{Others=110, ShaCarri Richardson=1, Serena Williams=9, Lewis Hamilton=1, Jordan Chiles=1, Rebeca Andrade=1, Simone Biles=8}', 'latest_sport_read': 'tennis', 'ppid': 'wqjjb171124441117050f49b85cf1d', 'sports_likes': '{boxing=1, uss=21, tennis=109}', 'state': 'NY', 'top_entity': 'Serena Williams', 'top_sources': 'discover', 'top_sport': 'tennis'}, name='user_12887'), User(id='39fe3818-7ce2-4b5c-8192-ac2439d614f9', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 530030, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 530030, tzinfo=datetime.timezone.utc), about='', metadata={'age': 35, 'city': 'Silverdale', 'entity_likes': '{Others=16, Tara Davis Woodhall=1, Serena Williams=1, Joe Rogan=8, Fred Kerley=1, LeBron James=1, Sabrina Ionescu=1, Angel Reese=1, Caitlin Clark=3, Sydney McLaughlin=5, Shericka Jackson=4, ShaCarri Richardson=31, Gabby Thomas=3, Usain Bolt=1, Khabib=10, Jon Jones=3, Dana White=18, Conor McGregor=5, Noah Lyles=3, Floyd Mayweather=3, Simone Biles=4}', 'latest_sport_read': 'uss', 'ppid': '7vzkw17108581777680209740ccccd', 'sports_likes': '{wnba=2, ufc=53, nba active=2, uss=58, boxing=6, college football=2}', 'state': 'WA', 'top_entity': 'ShaCarri Richardson', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12886'), User(id='578eb71c-3bfc-4ab5-bd3c-ee81bd08c9a1', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 520885, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 520885, tzinfo=datetime.timezone.utc), about='', metadata={'age': 47, 'city': 'Thornton', 'entity_likes': '{Others=58, Brittney Griner=1, Shaquille ONeal=2, LeBron James=1, Kyle Busch=17, Tony Stewart=16, Dale Earnhardt Jr=9, Khabib=1, Deion Sanders=5, Jim Harbaugh=1, Denny Hamlin=10, Bubba Wallace=6, Dana White=1, Michael Jordan=9, Noah Lyles=1, Patrick Mahomes=4}', 'latest_sport_read': 'nascar', 'ppid': 'bv8jw17032121894964bac073b7d43', 'sports_likes': '{wnba=1, golf=3, ufc=2, nba active=3, wwe=2, nascar=113, nba legends=3, nfl active=7, college football=8}', 'state': 'CO', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12885'), User(id='2c534b8f-2958-4284-8d30-35d2f0fc043f', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 511805, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 511806, tzinfo=datetime.timezone.utc), about='', metadata={'age': 63, 'city': 'Chipley', 'entity_likes': '{Dale Earnhardt Jr=20, Others=90, Kyle Busch=26, Denny Hamlin=16, Tony Stewart=24, Bubba Wallace=9, Michael Jordan=4}', 'latest_sport_read': 'nascar', 'ppid': 'dcmnc17096841606166c29ab366683', 'sports_likes': '{nascar=187, others=2}', 'state': 'FL', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12884'), User(id='f807c9ab-96a7-4c54-ba78-054ba479e33d', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 502403, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 502403, tzinfo=datetime.timezone.utc), about='', metadata={'age': 30, 'city': 'New Bedford', 'entity_likes': '{Others=52, Shaquille ONeal=1, Serena Williams=3, Kyle Busch=12, Tom Brady=1, Tony Stewart=16, Tiger Woods=1, Dale Earnhardt Jr=24, Denny Hamlin=8, Bubba Wallace=1, Michael Jordan=2, Derek Jeter=1, Patrick Mahomes=2}', 'latest_sport_read': 'nascar', 'ppid': '8bvjm170811436163550cef50a1f66', 'sports_likes': '{wnba=1, mlb=1, golf=3, ufc=1, nascar=109, nba legends=1, nfl active=3, nfl legends=1, tennis=4}', 'state': 'MA', 'top_entity': 'Dale Earnhardt Jr', 'top_sources': 'google search', 'top_sport': 'nascar'}, name='user_12883'), User(id='71e8aa48-3634-423f-909c-0bc2dc6d1e66', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 493226, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 493226, tzinfo=datetime.timezone.utc), about='', metadata={'age': 40, 'city': 'Bridgeport', 'entity_likes': '{Others=18, Tara Davis Woodhall=1, Elaine Thompson=2, Shaquille ONeal=5, Serena Williams=10, Fred Kerley=1, Rebeca Andrade=2, Jade Carey=2, Caitlin Clark=2, Michael Phelps=1, Sydney McLaughlin=1, Arnold Schwarzenegger=1, Shericka Jackson=1, ShaCarri Richardson=13, Gabby Thomas=3, Usain Bolt=10, Jordan Chiles=1, Deion Sanders=1, Michael Jordan=2, Noah Lyles=7, Simone Biles=28, Patrick Mahomes=1}', 'latest_sport_read': 'tennis', 'ppid': 'tq8dw1703205107273a4e3da9719be', 'sports_likes': '{soccer=1, wnba=1, uss=83, nba legends=7, nfl active=2, bodybuilding=1, college football=2, tennis=16}', 'state': 'CT', 'top_entity': 'Simone Biles', 'top_sources': 'discover', 'top_sport': 'uss'}, name='user_12882'), User(id='5134e56d-074b-492b-ba64-e5fd7c7fb6de', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 484121, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 484122, tzinfo=datetime.timezone.utc), about='', metadata={'age': 23, 'city': 'Lauderhill', 'entity_likes': '{Shaquille ONeal=2, Sean Payton=3, Joe Rogan=7, Shelly Ann Frazer Pryce=1, Kyle Busch=3, Tom Brady=1, Tony Stewart=3, Mike Tyson=6, Caitlin Clark=3, Femke Bol=2, Sydney McLaughlin=5, ShaCarri Richardson=4, Kishane Thompson=1, Gabby Thomas=1, Khabib=2, Jordan Chiles=2, Olivia Dunne=2, Deion Sanders=1, Noah Lyles=5, Simone Biles=3, Jake Paul=1, Others=42, Serena Williams=1, Tiger Woods=1, Dale Earnhardt Jr=4, Denny Hamlin=2, Dana White=2, Michael Jordan=1, Floyd Mayweather=3}', 'latest_sport_read': 'uss', 'ppid': 's8d29171287710911410e9f713f6af', 'sports_likes': '{golf=3, ufc=13, nba active=4, uss=29, nascar=26, boxing=11, nba legends=4, nfl active=14, nfl legends=3, college football=3, tennis=4}', 'state': 'FL', 'top_entity': 'Joe Rogan', 'top_sources': 'google news', 'top_sport': 'uss'}, name='user_12881'), User(id='b9139854-c314-4e81-bf89-306ea3ca7d28', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 474914, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 474914, tzinfo=datetime.timezone.utc), about='', metadata={'age': 39, 'city': 'Spokane Valley', 'entity_likes': '{Dale Earnhardt Jr=3, Others=33, Kyle Busch=23, Denny Hamlin=8, Tony Stewart=1, Bubba Wallace=4, Michael Jordan=1, Patrick Mahomes=64}', 'latest_sport_read': 'nfl', 'ppid': 'c9brb16993043699712fe8cbefcf65', 'sports_likes': '{nfl active=64, nfl=1, nascar=71, tennis=1}', 'state': 'WA', 'top_entity': 'Patrick Mahomes', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12880'), User(id='7612f7db-d1aa-4365-8728-a0e1d9ca0d77', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 465879, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 465880, tzinfo=datetime.timezone.utc), about='', metadata={'age': 78, 'city': 'Mahopac', 'entity_likes': '{Others=70, Shaquille ONeal=6, Serena Williams=20, LeBron James=8, Quincy Wilson=1, Rebeca Andrade=1, Bronny James=1, Sydney McLaughlin=2, ShaCarri Richardson=14, Gabby Thomas=5, Usain Bolt=2, Steph Curry=2, Michael Jordan=10, Noah Lyles=7}', 'latest_sport_read': 'tennis', 'ppid': 'xlsvl1709741308093663153187dbe', 'sports_likes': '{soccer=1, wnba=1, mlb=1, nba active=19, uss=37, nba legends=23, college football=2, others=1, tennis=64}', 'state': 'NY', 'top_entity': 'Serena Williams', 'top_sources': 'google search', 'top_sport': 'tennis'}, name='user_12879'), User(id='2c1af3fd-2fcb-42e6-b349-3321cd8c8915', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 456797, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 456798, tzinfo=datetime.timezone.utc), about='', metadata={'age': 56, 'city': 'Richmond', 'entity_likes': '{Dale Earnhardt Jr=27, Others=71, Deion Sanders=1, Jim Harbaugh=5, Denny Hamlin=11, Kyle Busch=39, Tony Stewart=23, Bubba Wallace=6, Michael Jordan=15, Patrick Mahomes=5}', 'latest_sport_read': 'nascar', 'ppid': '8hxdp169971023268921acc266a987', 'sports_likes': '{uss=1, nascar=186, nba legends=1, nfl active=6, college football=7, others=2}', 'state': 'VA', 'top_entity': 'Kyle Busch', 'top_sources': 'discover', 'top_sport': 'nascar'}, name='user_12878'), User(id='ab6ca560-aa18-4a77-a5dc-cf16df426b44', created_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 447731, tzinfo=datetime.timezone.utc), updated_at=datetime.datetime(2024, 10, 9, 10, 44, 22, 447732, tzinfo=datetime.timezone.utc), about='', metadata={'age': 81, 'city': 'Fishers', 'entity_likes': '{Others=35, Shaquille ONeal=10, Serena Williams=6, LeBron James=4, Tiger Woods=3, Caitlin Clark=6, Michael Phelps=1, Dawn Staley=1, Deion Sanders=1, Olivia Dunne=3, Michael Jordan=4, Simone Biles=17, Patrick Mahomes=30}', 'latest_sport_read': 'nfl', 'ppid': 'j6k481706464547054c3940b7e352e', 'sports_likes': '{soccer=4, wnba=6, golf=3, nba active=15, uss=24, nascar=1, nba legends=15, nfl active=37, nba=1, college football=8, tennis=7}', 'state': 'IN', 'top_entity': 'Patrick Mahomes', 'top_sources': 'discover', 'top_sport': 'nfl active'}, name='user_12877')])" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.users.list()" + ] + }, + { + "cell_type": "markdown", + "id": "15531cc5", + "metadata": {}, + "source": [ + "## Profiler " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "48589b59", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"ProfilerAgent\"\n", + "about = \"It is used to create/update the profile of the user\"\n", + "default_settings = {\n", + " \"temperature\": 0.9,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0,\n", + " \"max_tokens\": 250,\n", + "}\n", + "\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '844e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "23649eeb", + "metadata": {}, + "outputs": [], + "source": [ + "# The profiler workflow\n", + "task_def = yaml.safe_load(\"\"\"\n", + "name: generate_update_persona\n", + "\n", + "# Define the input schema for the workflow\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_ppid:\n", + " type: string\n", + " articles_read:\n", + " type: array\n", + " items:\n", + " type: string\n", + " required:\n", + " - user_ppid\n", + " - articles_read\n", + "\n", + "# Define the tools that are going to be used in the workflow\n", + "tools:\n", + " - name: get_user_from_ppid\n", + " description: Get a user from the user ppid\n", + " system:\n", + " resource: user\n", + " operation: list\n", + " \n", + " - name: list_user_docs\n", + " description: List the user docs\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: list\n", + "\n", + " - name: create_user_doc\n", + " description: Create a user doc\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: create\n", + "\n", + "main:\n", + " # Get the user from the ppid using metadata_filter (returns a list)\n", + " - tool: get_user_from_ppid\n", + " arguments:\n", + " limit: \"1\"\n", + " metadata_filter:\n", + " ppid: inputs[0]['user_ppid']\n", + "\n", + " # Unwrap the list to get the user\n", + " - evaluate:\n", + " user: _[0]\n", + "\n", + "\n", + " # Get the user persona document using metadata_filter (returns a list)\n", + " - tool: list_user_docs\n", + " arguments:\n", + " user_id: _['user']['id']\n", + " limit: \"1\"\n", + " sort_by: \"'created_at'\"\n", + " direction: \"'desc'\"\n", + "\n", + " # Get the doc if it exists\n", + " - evaluate:\n", + " doc: _[0] if len(_) > 0 else {}\n", + "\n", + "\n", + " # Get the user persona from the doc if the doc exists\n", + " - evaluate:\n", + " user_persona: _['doc'].get('content', \"\")\n", + "\n", + "\n", + " # Create the user persona using the prompt step\n", + " - prompt:\n", + " - role: user\n", + " content: You are an expert at creating user profile based on data. Write the user persona based on {{_['user_persona']}} + {{inputs[2]['user']['metadata']}} + {{inputs[0]['articles_read']}}\n", + " unwrap: true\n", + " \n", + " # Create a new persona document\n", + " - tool: create_user_doc\n", + " arguments:\n", + " user_id: inputs[2]['user']['id']\n", + " data:\n", + " title: \"'User Persona Document'\"\n", + " # metadata:\n", + " # user_persona: true\n", + " content: _\n", + "\"\"\"\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "9b211a93", + "metadata": {}, + "outputs": [], + "source": [ + "# Creating/Updating a task\n", + "task = client.tasks.create_or_update(\n", + " task_id= '813a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " agent_id= '844e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " **task_def\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "beb8fca8", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 12977/12977 [1:07:31<00:00, 3.20it/s]\n" + ] + } + ], + "source": [ + "for i in tqdm(range(len(df))):\n", + " ppid = str(df.iloc[i]['ppid']) \n", + " filtered_df1 = df1[df1['ppid'] == ppid ] \n", + " \n", + " if not filtered_df1.empty: \n", + " # Creating an Execution\n", + " execution = client.executions.create(\n", + " task_id= '813a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " input = {\n", + " 'user_ppid': ppid,\n", + " 'articles_read' : filtered_df1['titles'].tolist()\n", + " }\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "31b8fc47", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "ResourceCreated(id='8e69fbc6-7f10-4067-9b81-4b2015508628', created_at=datetime.datetime(2024, 10, 9, 12, 5, 56, 176543, tzinfo=datetime.timezone.utc), jobs=['6b78a7ea-4703-47a0-9b0c-13111f018586'])" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "execution" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "316b33ae", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Transition](items=[])" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.executions.transitions.list(\n", + " execution_id = '8e69fbc6-7f10-4067-9b81-4b2015508628'\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "07b9042e", + "metadata": {}, + "source": [ + "## Recommendation" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "0dc2b395", + "metadata": {}, + "outputs": [], + "source": [ + "# Defining the agent\n", + "name = \"TitleRecommender\"\n", + "about = \"It is used to recommend the title recommendation for the user\"\n", + "default_settings = {\n", + " \"temperature\": 0.9,\n", + " \"top_p\": 0.9,\n", + " \"min_p\": 0.05,\n", + " \"presence_penalty\": 0.2,\n", + " \"frequency_penalty\": 0.2,\n", + " \"length_penalty\": 1.0,\n", + " \"max_tokens\": 250,\n", + "}\n", + "\n", + "# Create the agent\n", + "agent = client.agents.create_or_update(\n", + " agent_id = '865e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " name=name,\n", + " about=about,\n", + " model=\"gpt-4o\",\n", + ") " + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "id": "c102054e", + "metadata": {}, + "outputs": [], + "source": [ + "for docs in client.agents.docs.list(agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d'):\n", + " client.agents.docs.delete(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " doc_id = docs.id\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "ead8d197", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(168, 1)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2 = pd.read_csv('new_titles.csv')\n", + "df2.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "b9b839c7", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 168/168 [00:47<00:00, 3.52it/s]\n" + ] + } + ], + "source": [ + "for i in tqdm(range(len(df2))):\n", + " title = df2.iloc[i]['post_name']\n", + " \n", + " client.agents.docs.create(\n", + " agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " title = title,\n", + " content = title \n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "b9d230e6", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "SyncOffsetPagination[Doc](items=[])" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.agents.docs.list(agent_id = '847b03b1-856a-4ae1-a1f5-ad994ba5c87d')" + ] + }, + { + "cell_type": "markdown", + "id": "06a417bd", + "metadata": {}, + "source": [ + "1. Delete all the docs of libraryAgents \n", + "\n", + "2. Create new docs for each article with title=headline and content=headline with new batch of article which you are going to recommend\n", + "\n", + "\n", + "3. Get the user_persona\n", + "\n", + "\n", + "4. Ranking based on cosine similarity \n", + "5. Pick 5 articles for this users out of 50 \n", + "6. Recommend the newsletter title based on this articles " + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "ca518cbb", + "metadata": {}, + "outputs": [], + "source": [ + "# The profiler workflow\n", + "task_def1 = yaml.safe_load(\"\"\"\n", + "\n", + "name: recommend news articles\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_ppid:\n", + " type: string\n", + " \n", + "tools:\n", + " - name: get_user_from_ppid\n", + " description: Get a user from the user ppid\n", + " system:\n", + " resource: user\n", + " operation: list\n", + "\n", + " - name: get_user_docs\n", + " description: Get user docs\n", + " system:\n", + " resource: user\n", + " subresource: doc\n", + " operation: list\n", + " \n", + " - name : search_agent_docs\n", + " description: Get agent docs\n", + " system: \n", + " resource: agent\n", + " subresource: doc\n", + " operation: search \n", + " \n", + "main:\n", + " # Get the user from the ppid using metadata_filter (returns a list)\n", + " - tool: get_user_from_ppid\n", + " arguments:\n", + " limit: \"1\"\n", + " metadata_filter:\n", + " ppid: inputs[0]['user_ppid']\n", + "\n", + " # Unwrap the list to get the user\n", + " - evaluate:\n", + " user: _[0]\n", + "\n", + " - tool: get_user_docs\n", + " arguments:\n", + " user_id: _.user.id\n", + " limit: \"1\"\n", + " sort_by: \"'created_at'\"\n", + " direction: \"'desc'\"\n", + "\n", + " #user persona will always be available here\n", + " - evaluate:\n", + " user_embedding: _[0].embeddings\n", + " persona: _[0].content\n", + "\n", + " #Embedding similarity it will rank the docs\n", + " - tool: search_agent_docs\n", + " arguments:\n", + " vector: _.user_embedding\n", + " agent_id: \"'847b03b1-856a-4ae1-a1f5-ad994ba5c87d'\"\n", + "\n", + " #not sure how to evaluate news_titles\n", + " - evaluate:\n", + " top_titles: \"{{ [doc['title'] for doc in _['docs'][:50]] }}\"\n", + "\n", + " - prompt: \n", + " - role: user\n", + " content: Which of these {{_.top_titles}} do you think the user will like. Rank them according to the users' \n", + " persona {{inputs[2].biodata}} and give me the top 5 as valid yaml\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " titles: load_yaml(_)\n", + " \n", + " - prompt: \n", + " - role: user\n", + " content: based on these 5 news {{_.titles}} and users' persona {{inputs[2].biodata}}, draft a catchy newsletter title.\n", + " unwrap: true\n", + " \n", + " - evaluate:\n", + " newsletter_title: _\n", + " titles: output[7].titles\n", + " \n", + "\"\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "12f688c6", + "metadata": {}, + "outputs": [], + "source": [ + "# Creating/Updating a task\n", + "task1 = client.tasks.create_or_update(\n", + " task_id = '825a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " agent_id = '865e03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " **task_def1\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "374f1b74", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + " 21%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–Œ | 2715/12977 [33:48<2:07:48, 1.34it/s]\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/sm/rll592s91t375q5hbck24ptc0000gn/T/ipykernel_46728/1288718815.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# Creating an Execution\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m execution = client.executions.create(\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0mtask_id\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;34m'825a03b1-856a-4ae1-a1f5-ad994ba5c87d'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m input = {\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/resources/executions/executions.py\u001b[0m in \u001b[0;36mcreate\u001b[0;34m(self, task_id, input, error, metadata, output, extra_headers, extra_query, extra_body, timeout)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtask_id\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Expected a non-empty value for `task_id` but received {task_id!r}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m return self._post(\n\u001b[0m\u001b[1;32m 100\u001b[0m \u001b[0;34mf\"/tasks/{task_id}/executions\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 101\u001b[0m body=maybe_transform(\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36mpost\u001b[0;34m(self, path, cast_to, body, options, files, stream, stream_cls)\u001b[0m\n\u001b[1;32m 1252\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"post\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbody\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfiles\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mto_httpx_files\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfiles\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1253\u001b[0m )\n\u001b[0;32m-> 1254\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mResponseT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcast_to\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mopts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstream\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstream_cls\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream_cls\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1255\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1256\u001b[0m def patch(\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, cast_to, options, remaining_retries, stream, stream_cls)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0mretries_taken\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 945\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 946\u001b[0;31m return self._request(\n\u001b[0m\u001b[1;32m 947\u001b[0m \u001b[0mcast_to\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcast_to\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/julep/_base_client.py\u001b[0m in \u001b[0;36m_request\u001b[0;34m(self, cast_to, options, retries_taken, stream, stream_cls)\u001b[0m\n\u001b[1;32m 980\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 981\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 982\u001b[0;31m response = self._client.send(\n\u001b[0m\u001b[1;32m 983\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 984\u001b[0m \u001b[0mstream\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mstream\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_should_stream_response_body\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, auth, follow_redirects)\u001b[0m\n\u001b[1;32m 899\u001b[0m \u001b[0mauth\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_build_request_auth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mauth\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 900\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 901\u001b[0;31m response = self._send_handling_auth(\n\u001b[0m\u001b[1;32m 902\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 903\u001b[0m \u001b[0mauth\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mauth\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_handling_auth\u001b[0;34m(self, request, auth, follow_redirects, history)\u001b[0m\n\u001b[1;32m 927\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 928\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 929\u001b[0;31m response = self._send_handling_redirects(\n\u001b[0m\u001b[1;32m 930\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 931\u001b[0m \u001b[0mfollow_redirects\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfollow_redirects\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_handling_redirects\u001b[0;34m(self, request, follow_redirects, history)\u001b[0m\n\u001b[1;32m 964\u001b[0m \u001b[0mhook\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 965\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 966\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_send_single_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 967\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 968\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_event_hooks\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"response\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_client.py\u001b[0m in \u001b[0;36m_send_single_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 1000\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1001\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mrequest_context\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1002\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtransport\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1003\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1004\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mSyncByteStream\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpx/_transports/default.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 216\u001b[0m )\n\u001b[1;32m 217\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mmap_httpcore_exceptions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 218\u001b[0;31m \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_pool\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 219\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32massert\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstream\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtyping\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mIterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 260\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mShieldCancellation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 261\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresponse_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 262\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 263\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 264\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection_pool.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconnection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionNotAvailable\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;31m# The ConnectionNotAvailable exception is a special case, that\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/connection.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mConnectionNotAvailable\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_connection\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhandle_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_connect\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mRequest\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mNetworkStream\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 119\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mTrace\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"response_closed\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlogger\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mtrace\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_response_closed\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 121\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mexc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 122\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 123\u001b[0m \u001b[0;31m# Sending the request...\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36mhandle_request\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0mreason_phrase\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m ) = self._receive_response_headers(**kwargs)\n\u001b[0m\u001b[1;32m 100\u001b[0m trace.return_value = (\n\u001b[1;32m 101\u001b[0m \u001b[0mhttp_version\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36m_receive_response_headers\u001b[0;34m(self, request)\u001b[0m\n\u001b[1;32m 162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 164\u001b[0;31m \u001b[0mevent\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_receive_event\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 165\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mevent\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mh11\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mResponse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_sync/http11.py\u001b[0m in \u001b[0;36m_receive_event\u001b[0;34m(self, timeout)\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 199\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mevent\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0mh11\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mNEED_DATA\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 200\u001b[0;31m data = self._network_stream.read(\n\u001b[0m\u001b[1;32m 201\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mREAD_NUM_BYTES\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 202\u001b[0m )\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/site-packages/httpcore/_backends/sync.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, max_bytes, timeout)\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mmap_exceptions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mexc_map\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msettimeout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 28\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmax_bytes\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 29\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 30\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbytes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mtyping\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOptional\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/ssl.py\u001b[0m in \u001b[0;36mrecv\u001b[0;34m(self, buflen, flags)\u001b[0m\n\u001b[1;32m 1225\u001b[0m \u001b[0;34m\"non-zero flags not allowed in calls to recv() on %s\"\u001b[0m \u001b[0;34m%\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1226\u001b[0m self.__class__)\n\u001b[0;32m-> 1227\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuflen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1228\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1229\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuflen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m~/opt/anaconda3/lib/python3.9/ssl.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, len, buffer)\u001b[0m\n\u001b[1;32m 1100\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1102\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1103\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mSSLError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1104\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0mSSL_ERROR_EOF\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msuppress_ragged_eofs\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + ] + } + ], + "source": [ + "execution_array = []\n", + "for i in tqdm(range(len(df))):\n", + " ppid = str(df.iloc[i]['ppid']) \n", + " \n", + " # Creating an Execution\n", + " execution = client.executions.create(\n", + " task_id= '825a03b1-856a-4ae1-a1f5-ad994ba5c87d',\n", + " input = {\n", + " 'user_ppid': ppid,\n", + " }\n", + " )\n", + " execution_array.append(execution.id)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "e9873437", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['caed8408-235c-4a36-91fe-0559b91ece8d',\n", + " '909b976a-b5d4-40cb-8dd6-8a59d7e246d8',\n", + " '3519ee27-4e83-4ea4-9a25-e4f539eff630',\n", + " '5181be66-ca9d-4fba-a285-39345cb880ec',\n", + " 'b51178a4-b295-48dd-a482-55bdae34124c',\n", + " '6b78d6fb-335e-4fa0-bf1f-e8346bf938c1',\n", + " 'a01f11f8-8d97-4e83-b6cf-64f696247ef2',\n", + " 'b504190d-8be9-4f5e-be1a-8b5cf120e6a1',\n", + " '1f11e027-3456-4bc3-9e10-343bad92757a',\n", + " '485818f2-cdd8-48c4-a87e-da53ff878628',\n", + " 'c403e7fa-f15a-4986-a120-7a2e7631453a',\n", + " 'f0afea34-aa6c-4c6b-882e-8cbfe4de19a4',\n", + " '068ea766-ab13-47ad-ae1d-97b8b7b5db73',\n", + " 'b66e1348-3383-4e33-8c18-8f1e1f3cfe75',\n", + " 'dd65f882-f781-4f7e-86fb-25dec8af00fd',\n", + " '1c0754ce-f8d2-42b8-a034-2a7ef6491f82',\n", + " 'cc4dc765-3290-4d03-9325-71e6dfa8e3a2',\n", + " '621cc14b-e6da-4797-b90f-77c51fd1f6e6',\n", + " '4505b141-2bca-4a8a-8132-9914932faa02',\n", + " 'a89f8ce7-fa0b-4c76-9f86-c376a1624aae',\n", + " '84b78f75-6a7e-403a-a148-c193a00468b8',\n", + " '347e8671-c8c0-4aa0-b44f-2c6eee3b1f99',\n", + " '6bdb06d5-2587-4c07-98c1-aaebfc8ebc3d',\n", + " '2cd48f41-0ede-4eab-8305-5e2617cc4ff9',\n", + " '7d10bb3e-e2e1-4915-a37d-39c60d562920',\n", + " '45212feb-7050-48f0-847a-dd7fe8f0e354',\n", + " '25bedaba-57c1-4eb7-b7e2-9d8901a69d91',\n", + " '46aaf48c-56a9-453e-b5c5-60aad03ae4df',\n", + " 'e5f360d7-674a-4285-b4fb-f32e594bcdf2',\n", + " 'b3908ba3-0299-4429-834d-998532b25bcd',\n", + " 'b237558b-5d70-420f-8e1c-949ffeb58573',\n", + " '4fccf58f-6b5f-45a8-8e48-d11fad28313c',\n", + " '0d61569d-ad91-401b-a32f-17f5872a56e6',\n", + " 'f1e45d9a-e851-4217-8b2e-411de05bffa3',\n", + " 'e042d219-ef43-4eea-86f4-4d961656d3b2',\n", + " 'f9eef302-ea78-4a18-863a-281c61a16a32',\n", + " '3bcd516f-374a-4136-94a7-4a8b86913fbb',\n", + " 'c31b10f4-0ee6-4410-8524-d03664c1c4c1',\n", + " '81e48f27-ff88-4a03-89ea-1052ac920738',\n", + " 'cfddfd03-e794-4783-ad37-9a94b715e3bf',\n", + " 'ef881511-258b-435e-8dc4-edd74167c0a5',\n", + " '3ae38aa7-72ad-4609-a780-5d5860b7237a',\n", + " '86c06d20-ac0a-4972-850d-21c6d425455c',\n", + " '9769a872-a955-4e41-9277-31f893705d1c',\n", + " '5ec6e658-e79f-47b8-a9ef-bcd0ad731f0d',\n", + " '3ddfe2f3-8a2f-451d-9698-6db04c2dda84',\n", + " 'e73d0969-3f4a-453b-98ec-8b1a03fcfb25',\n", + " 'aefc75d5-db0e-4675-a196-d2b92d93808d',\n", + " '6a9ecfaa-4d39-4687-8fc8-b1945e87cfa0',\n", + " '2c1a21ab-12a3-44e9-8d29-a8e0974812af',\n", + " 'e0646040-b53f-40e3-91a9-c14d9d9018c9',\n", + " '7887b8bc-fcc4-4899-84e3-255ae9e06a2d',\n", + " '82f889ef-d67a-4626-b76d-213f9ef18c12',\n", + " 'c506ac13-6cb7-490a-ba55-ade2b0e291e1',\n", + " '87a95f07-c218-4cc2-bdd3-437974bb7fe5',\n", + " 'b5550d67-e2cd-4add-b122-7f98e826472e',\n", + " 'b3807fce-652f-4a64-b0b2-dbe079d637eb',\n", + " 'ac352464-dcb1-4b9a-bbed-dc6d5aa2ca08',\n", + " '32b67a8f-673a-46ae-8083-dd6ac4b02152',\n", + " 'f7159130-a9b6-4cd0-ace3-f298c02104a8',\n", + " '170674a2-483e-42f1-841f-db257f9c9cb2',\n", + " 'af6718bc-68d0-40ee-86a7-4ecef9dfe052',\n", + " '3ba46633-cea6-4f26-b685-b6df62636feb',\n", + " '04114396-4234-4848-aae6-0eaa08a06a2d',\n", + " '36cb354b-d2be-478f-b1b8-3a6af58a64fa',\n", + " '87725f89-15ba-47d5-b96c-1356fad8940d',\n", + " '47bc3a25-2d96-493f-a429-dc6a6f43fb45',\n", + " 'bf39de88-cbf8-42bd-aca9-7a205f9d8760',\n", + " '1adddd79-98a2-499e-b2bf-0b3f7b40b817',\n", + " '1c0dd52c-acb0-44e3-a3e7-f0fcc06ca782',\n", + " 'b9e7727c-6487-4a7c-beb9-83788b49f692',\n", + " 'e82667f8-7ac3-45dd-8b3c-e4fc1ee285cf',\n", + " 'ee0864a2-7687-46d5-a202-8bb50dfed322',\n", + " '7cf8561b-ccb3-44ed-a3f0-69d49375547e',\n", + " '0b608ba8-29f5-43ac-8eea-a60e9d43b2c0',\n", + " '0841a5f6-ebc1-402a-a946-7d1858e6e073',\n", + " 'c9009420-a8ec-4163-857c-7b23bf878ed6',\n", + " '0751c3c8-4732-47df-b854-fe3d63d89086',\n", + " '5867cec0-c901-464e-9cbe-4ca4961719f9',\n", + " 'a82670f3-3fdb-46ea-8c5f-3178fdc24a63',\n", + " 'd00e731a-274e-4703-8145-37270d0a3d89',\n", + " '96b94bc5-64a9-41e6-8da2-368f3fc00392',\n", + " '24c170f5-8d51-4c43-95c2-bf51f60e9977',\n", + " '2d9b564a-5526-4ead-83e3-aa939b3c2026',\n", + " 'dc462989-a108-4c2e-929f-3b37845dd01b',\n", + " 'f8b7171f-0361-403a-90ec-454b10593a1d',\n", + " '2dd77210-e38f-4557-986b-45052506e1cd',\n", + " 'db40e2ef-9a2b-4bea-aade-5de6b46c4093',\n", + " '890b314d-f29e-4ab0-aa5c-229918364d3f',\n", + " '8783d397-eed4-44e4-add4-283f8b51b963',\n", + " '12461756-2804-45f3-8b77-b8ff8c545cbc',\n", + " 'a989bfd7-a543-4a8a-90be-e00fd91bab01',\n", + " 'a61988d4-6d8d-41f9-9e5e-fc3b6317d7ae',\n", + " 'c193ea74-6ab2-4969-8b4c-847f5ec9c7d3',\n", + " 'a58e07d4-3de7-4474-baea-2d0f55013392',\n", + " 'c18be0ed-aae0-4b48-bccd-99ccd5210dbc',\n", + " 'e5f3de7d-8f5c-475e-9263-793acf0ffa2e',\n", + " '75308caf-39d1-4307-80f9-a5ee748fb569',\n", + " 'c5e4479f-1fb4-46d7-8d71-9adb448a8384',\n", + " '10025704-ca48-4040-a0c3-167e133fcac8',\n", + " '0d6b59f1-d41f-48a2-b983-d82638ab02b1',\n", + " '8198210a-2f9a-4a9d-9119-4f19ad53265e',\n", + " '7e5c183e-1b9e-4915-80ae-fbde445ead41',\n", + " '4adfd560-6333-4748-b036-d39e34df5ee9',\n", + " 'cbfe31b1-aad1-4a6c-ab53-30a82eff067a',\n", + " '6bb5e1a2-3ee0-43a6-81e3-99967b2779e4',\n", + " '908b021e-6da6-4e39-a43b-d6bbcd48eb97',\n", + " '4842b7c4-199b-4d17-a12b-583c691cd339',\n", + " 'a7de1f75-a9ba-43f1-b402-0d158f6bf3de',\n", + " 'f88bca26-4c93-41c5-b775-055e2280b845',\n", + " '3e50eaf1-850c-4ffb-82d6-0fb034193227',\n", + " 'b4fe6f6b-fc78-4d1e-b285-546db27e694d',\n", + " 'cf5f956f-5237-407e-8adf-1addd62dcfca',\n", + " '2996fd0a-859c-46a6-94b9-afd3f6b69144',\n", + " 'cb9ef2f5-3a21-4273-bf93-b97113673f91',\n", + " '675537be-40a7-495f-8793-6bb652ce4c78',\n", + " '2017aaca-4dc7-4285-b1ad-e96cb26b65df',\n", + " '3ea95c69-f130-4770-bb25-da3c0e2c06a7',\n", + " 'e53f7bcf-014d-4539-a4bf-bef1ffed5372',\n", + " '39624f97-e216-40cc-aba1-21a85c1cfafe',\n", + " '6255c7bf-44c3-494d-a29b-e791d9313e11',\n", + " '4c538bb2-6d91-4050-aa2e-67b91f35d12e',\n", + " 'bddaf90d-7249-48f0-ac3f-363020ab36d4',\n", + " '52f61410-829c-477e-9942-fe7602490ad7',\n", + " 'ef3bbcb3-3840-452b-ba9e-de40e6fc7813',\n", + " 'eb4afa0f-ba24-493a-b592-b042cc294c15',\n", + " 'e9b0b430-925e-42a7-b332-980594983d13',\n", + " 'be5b20a8-d5c0-48b4-9320-cf34deed743e',\n", + " 'bfcf0b1e-a823-43cf-9cdc-17b41719a51d',\n", + " 'a49170f2-d3ca-484a-9e27-476df2c80657',\n", + " 'cc74867a-a1d6-4ae1-a196-a1cd1c324714',\n", + " '745140f2-efda-46d8-a88c-ae52493fc938',\n", + " '0e596be2-594d-437c-9524-6ba54d453f3a',\n", + " 'a35fcdf1-e9c9-459d-8a61-4ff7fe006755',\n", + " '0748f69b-2447-4763-8e16-9049cabb447a',\n", + " 'b3fa93e1-caa6-404f-b7c8-25bfd822e003',\n", + " '571c2427-dadb-4848-a945-441703449a15',\n", + " '10aa0440-46b1-4fef-a7e0-4bacbd516905',\n", + " '5fb31262-afeb-46b5-b6e5-628678587aed',\n", + " 'ca0f7546-e91a-4413-b3ce-a9de5124a3bb',\n", + " '945a9770-0158-4d5b-9dd6-6500f2beee5c',\n", + " 'db3cdda8-b782-41db-ab90-dd694316d8cd',\n", + " '02b17513-9130-4296-a68e-a9c7583c6da8',\n", + " 'ad590088-9f2c-4445-88c3-8558c7e57bf8',\n", + " 'ad61f155-84ce-4119-a56d-871a6d7adff6',\n", + " '617a8d60-6e3e-4689-b485-2cd0b8e1473e',\n", + " 'c8c16975-a7f9-401f-85b4-8f44bbdcf9c4',\n", + " 'dae0ce61-5a11-4010-b500-2695eb860edc',\n", + " 'a2b4cf4d-4b64-4b10-b93f-3aab339fe458',\n", + " 'bf3a9397-4bc0-45c0-a273-b15f8831b959',\n", + " 'aa3c5e9d-a176-4fe1-844a-e8decb865a3c',\n", + " '0c42de86-bd02-47ed-ae15-3699e5b87c47',\n", + " 'b7838b39-0ae4-4783-982b-13b285d5e449',\n", + " '32d69d26-afc7-4ed3-b4fa-704201a54b2e',\n", + " '110ef9ee-ccc3-44ed-bef1-cf563365b34b',\n", + " '4aa2ac95-2ea8-4ec0-9897-480be56c5383',\n", + " '6cb025bf-9174-4c03-8043-4a837cb4efbc',\n", + " '0aa4f3b0-6fc3-44d1-9a6e-bbc5e91b3ce8',\n", + " '3b641815-1b65-4d26-bab8-a6ef17a5237f',\n", + " '4d87e3c3-0f91-4281-9410-cb3b64efc1a0',\n", + " 'f6b50cac-236a-415b-bad3-b387c6f53c84',\n", + " '3b50fb38-e17b-42ce-b9a3-12b39868e9e7',\n", + " '84b5578f-4829-47a3-80b9-a02f28172816',\n", + " '763114e6-d80a-4f92-88b4-0c6579c6a8bc',\n", + " '7e47e2c5-36f9-468e-9d34-ebfe47c1de94',\n", + " '1f0090dd-00f3-4a7c-98df-b14a6e173653',\n", + " '25f4131f-4d6f-486b-bb67-aeeb60ceb32b',\n", + " '9cdf2228-3bef-43d3-bd03-4414a6881e4d',\n", + " 'a2a44dd2-4b79-4ad7-a6b2-bf8a6f09ad8f',\n", + " '7d60147e-31ce-4031-82b6-b7f2d63ada56',\n", + " '8ec4e1f2-7ca7-464e-a1d5-37c0f2824c2a',\n", + " 'a4216589-941a-4c37-8c03-1eddf0fb245b',\n", + " 'fbf5d1dd-ee86-4dca-a375-8718f199a25b',\n", + " 'b7a15de1-4a7d-4958-9ac0-95738f50e554',\n", + " '40180791-d19c-40ee-b0c0-f883355e95e3',\n", + " '6df7b086-30d8-40d5-a0bd-f03e20ada1d3',\n", + " '2c39afe9-d532-4830-a176-d5c52625fb0d',\n", + " 'cba7972f-889b-4bb4-89ce-d18e9a3edab5',\n", + " '687cd660-41fa-48cf-84ee-14b83e762464',\n", + " '13bfc578-60a9-448a-99b3-dbae85794cd5',\n", + " '4108e526-0fed-42f2-a997-c0a2d082a9ab',\n", + " 'ff6751d3-a45e-4edc-9209-caba9341c479',\n", + " '37834269-e8e0-4845-b1bf-4226e96ba320',\n", + " 'dfa155b1-9036-42c6-b288-a6340d299e79',\n", + " 'dd642f69-31ae-4148-ab00-8b01a9398c0f',\n", + " '441841ce-5472-4bf6-8477-7c6ad66ee4be',\n", + " '200e3ecf-22ed-478c-8c08-149e0e1d7d0b',\n", + " 'd36179ab-c417-45b6-912e-977301d7fe1a',\n", + " '77003a25-47c5-4f73-9789-157c13b6e37c',\n", + " 'e741b6db-cb30-470a-98fb-6992c9bf9f03',\n", + " 'c1b2598b-4152-429c-a6ba-f955e6aec90e',\n", + " '88d96d45-3698-48e6-88d6-3a50a006ba37',\n", + " '6947f941-dabb-42a9-a298-ba76527d0704',\n", + " 'd2cd733c-3c87-4b0e-9e8e-2d2d776829bf',\n", + " '10178b8e-92a0-44bd-94bd-63f234a54180',\n", + " '9b4a2ce7-f972-4af9-a77c-509d8f2683c7',\n", + " '2f232553-3c40-47e0-bf8d-fd18c6bb9435',\n", + " 'f8acf19e-f63b-465d-bf5e-7065682826e4',\n", + " 'f4ea6b0d-63da-42c6-b0c4-37d8c2a67143',\n", + " '4cf9abe5-a2c4-490d-8df5-046425490d40',\n", + " '4ca633c1-fe9f-469e-b478-eb0e38328fb3',\n", + " '7cee67d6-799e-46d4-a90f-e79e375049db',\n", + " '7d6148f5-241d-4a24-b813-012cded3e464',\n", + " 'e71e8234-ce43-4630-a878-f39ae9045feb',\n", + " '58083022-e95f-45be-999d-40b19ee133b9',\n", + " '9a95c45c-2ce2-4fe6-bccc-adaff6b645fd',\n", + " 'de606c6f-c23d-425d-8e1c-fcef96c08622',\n", + " '30ebf49b-3095-4bed-aec7-bbc59cad852d',\n", + " '4e8d60fc-05c9-4f83-9b70-094692b8c9a5',\n", + " 'c471923f-d927-4693-8bd5-4a81eadf7ef6',\n", + " '8ea3b93e-80a3-4b06-96d8-8a0b700607e7',\n", + " '5fd568dd-eaaa-48be-b5ff-b88ba12a11c8',\n", + " 'b2b622a8-7818-42cd-bb65-faf4a2e8b912',\n", + " '809952c0-fd76-40c1-8eeb-13c8ad3fddda',\n", + " 'f6ef1835-7012-41a7-814f-f67d1de7840d',\n", + " '1c05514d-1dad-4862-b220-aac991a4ae96',\n", + " '48e008e6-7f1b-464e-8cb4-e1523649b87d',\n", + " '265653a3-3709-4320-9ba1-1465cfd3996b',\n", + " '45a895fa-691a-4571-9c12-5d95b874b620',\n", + " 'bbbe17f8-4dd9-478f-917e-ac39e9cbf957',\n", + " '2fac6c98-3ac2-4b01-9081-6cf246b85b85',\n", + " '1aca7f6d-99b0-4934-a833-2289c9704b4d',\n", + " 'ff1a5cc5-b890-47a5-8fa5-7e94d87222c8',\n", + " '4e04ae91-6a0d-469b-9874-0cbc496f4a25',\n", + " 'd62946bf-4649-4437-87bb-d734e1a43308',\n", + " '2d044b76-103f-4071-853a-cff6adc26589',\n", + " 'dc55fa2d-1fff-4540-8c3a-b1648d94b0dd',\n", + " 'b20bec71-8ff9-42d6-abf6-4a7b98234092',\n", + " '3391456c-233a-4a83-807d-1ffbea8ae873',\n", + " 'b28fcf0b-a51e-4804-8071-efe89d2c16ad',\n", + " '7f24e22b-62f4-4ec0-abc8-bf704d2b81bb',\n", + " '5212fdea-5970-4e1b-ba32-4837c444fe6f',\n", + " 'afcca918-42fa-413d-b630-5ecdfa2ca897',\n", + " '4b2d0d90-586b-494d-ae8a-a99e61d56ff7',\n", + " '8b65d2c7-c9df-4262-9b9a-9889890c7208',\n", + " '21c362e4-2618-4dbb-820b-dc462b0039ff',\n", + " '5e3a2bfc-f1d4-45a3-931a-4b679463f096',\n", + " '8629d7a3-0e0d-4d04-838e-167dd40aa075',\n", + " '57c050b4-bf76-441f-b8c5-3a2f39fa8f0a',\n", + " '587ee803-1bf7-433c-801f-b34296e175c1',\n", + " 'efea1d54-f2cb-44f3-ae62-1e0e92ed70cc',\n", + " 'b7cb618c-e8f7-46fa-b746-bd48190ec992',\n", + " 'f2ccbe64-ef07-43ea-8800-8526d7136fc3',\n", + " 'a7b320bd-cd4b-4a99-8617-6107bf3849f7',\n", + " 'bec2ea03-8a51-4b69-99e9-cb7a169abf85',\n", + " '69a4038b-a0b6-4aa2-909d-c779635265ab',\n", + " '37789397-7a87-4de7-aa1c-3760ab3f4a9e',\n", + " '18a1d128-c1c0-48f7-9771-34b99c92e3a5',\n", + " 'ac06e890-ed79-4a44-bb03-b036d5069a59',\n", + " 'f51446ca-73c5-4dda-8512-f9d79ea493f5',\n", + " '37b15288-0386-4613-a76b-c133af89ebfe',\n", + " 'a15ee306-c98e-4612-9ca2-0b9d9f8cde9d',\n", + " '1ea3c975-479f-485f-9ef3-72db39c5e188',\n", + " 'e44c49bc-4511-40e3-999f-952fe4693ff1',\n", + " '10421ef8-f4c2-40a8-aa9c-eda03aa334c5',\n", + " 'c6ae0946-b1f1-46f7-ad86-21b86bae2ae5',\n", + " '38d87081-4df1-42a1-86eb-8954aa87ec17',\n", + " '344b11c9-34fc-4e0d-9f5d-d25241955577',\n", + " 'aea88acf-a982-401e-82a5-1dac5921f5a6',\n", + " '77fb40c7-862e-4b6a-89d5-2ca5a1913fe8',\n", + " 'a6e4767a-f782-4b97-bb62-d9c26a38338f',\n", + " '74a0a2ac-43be-4550-97ee-832f08ca38f5',\n", + " '05522c5e-a0f8-49a9-8f49-782685a9f0d2',\n", + " '429abf4c-7253-4f74-8db5-9bf05719ccf1',\n", + " 'bdf91ba1-e996-4364-b7ca-12bbcd7283e6',\n", + " '0fb8aee5-46a1-4252-aacd-68b808a626f7',\n", + " '3edc8a55-e076-4afd-82b4-74dd5f584d5b',\n", + " '5a27517b-aa70-4bdc-986d-fdc6adbbcac2',\n", + " 'dbc3e6f0-4750-488a-8663-1b1cde6e5bb6',\n", + " '7655e28b-c8b3-4577-a587-61817b571a72',\n", + " '437a6885-cdd9-420e-a5e6-e0b8d9a25750',\n", + " '58ea8b6c-0350-4104-85f9-b8fe9e4d28f1',\n", + " '59e7dab1-a465-4a13-acb7-54cc5d6f9ecd',\n", + " '10ccc524-f37d-4878-b659-ab7de84f1892',\n", + " 'ef251e9b-b422-4ef1-a25f-8f8300f1b922',\n", + " 'ac6d838c-a54f-4ea1-ae48-62286cd55190',\n", + " 'aa07a817-5305-4b53-8d68-cc841a318706',\n", + " 'ad87e8a5-960b-4951-b49a-0585ea09a6e4',\n", + " '20ade261-3176-433b-af17-3f05b9c847e0',\n", + " '4d718dff-c7a6-4d1d-be0a-07cc0c545465',\n", + " 'beea8543-9d54-453c-8d89-9b491ae9f235',\n", + " 'dd97ea21-f87c-48ca-981e-2c7fcc22087d',\n", + " '1bcd5581-c9c9-4b31-9f9d-0eaeec763284',\n", + " 'b564034e-a36e-48be-be14-8b8df30490aa',\n", + " 'bd1a0238-1659-4717-8bde-d214ba0119d7',\n", + " 'af293f5e-5419-4ef3-b2e1-3cbdcf1ae57f',\n", + " '58a86bd6-7b36-4baf-8e73-4d3520ca0883',\n", + " '36999944-10e0-4af3-8587-b6a0eb6ffb9c',\n", + " 'c46c8a75-079e-4f13-a5fe-f938fc4426a2',\n", + " 'b3cc304e-4fb5-4f5a-ad2c-ebe1f393654d',\n", + " 'f5f99ad9-94f5-4d32-bb47-be7af3496e27',\n", + " 'e3c97a34-df7e-4e54-b7e5-5e71aad711c6',\n", + " 'c6be916b-40f1-4f68-9db5-34377ab0c188',\n", + " 'cfef736c-5702-4c52-a533-e32e5c5355fd',\n", + " '5dd1a7e0-4674-4180-9364-721d3cf1d2ee',\n", + " 'c0d6e96a-9bae-4cc1-840a-0da3d5cf5363',\n", + " '8e75223f-415d-4779-bf9d-8add97e6d8ae',\n", + " '67642919-01aa-45b0-9da6-f7478520a0f5',\n", + " '251a65ba-a496-491b-8441-7b132fd58449',\n", + " '2270dcaf-d428-46a7-959a-1ef9ff8b0a5b',\n", + " 'd0004de4-5bec-4c5a-b4c2-c5258ec6963b',\n", + " 'b4a549e2-3bae-4139-bb32-414649db0cac',\n", + " '1fa1db3d-b02c-485d-a6b7-47ba3796daa3',\n", + " 'e8f94e0d-1191-4684-ac1e-8e8cd985c816',\n", + " '81480365-cde7-4e3d-8307-4113e76417df',\n", + " '5441eb37-c77c-481b-b508-37e05804bbf2',\n", + " '74b069c0-fbfd-43ac-9d67-3a579a86311f',\n", + " 'b14840e7-6819-4a24-83fa-13ec8ba40c98',\n", + " 'a425d5c6-7c6f-4704-a2d8-cb47558b5442',\n", + " '6cc23089-aa2b-44de-a2f9-63d4d21f2a10',\n", + " 'ba693b73-646c-461a-9be3-02a26cd5f276',\n", + " '604c470a-60b9-466a-8f7f-dfda0efb4854',\n", + " '35203249-1386-4afe-b12b-6f3c68939133',\n", + " '819bc1db-f4b3-45b6-9520-0bc073bb4644',\n", + " '4963c1d7-9eaf-425f-be12-bbf7c1503e50',\n", + " '883512af-3de4-4146-a876-aa60212b39c6',\n", + " '11f4c22f-37e7-4e77-94db-b22347f26860',\n", + " '500d7816-689e-4db0-be69-09e0f69bda84',\n", + " 'd62b7335-f66a-4859-84f0-d6434474154d',\n", + " '628fc09f-20e5-440d-84b2-4deef7bc8c5e',\n", + " '18917286-8dc7-479d-accf-e5df44f98c84',\n", + " '3e91d8e7-1caf-4f9c-95b2-f6716d85d9a1',\n", + " '506d5642-8143-4259-9b42-a8d5d890d7c7',\n", + " '739aff2a-ba50-465d-b08e-80878733253e',\n", + " 'eca3f5f9-7680-4828-b254-7d0c4cc6ee72',\n", + " '1bce0fb0-5d3d-4b6f-bfd4-db08823d440d',\n", + " '2282e738-7bfe-44e1-9ac1-9b519d053692',\n", + " '2ab31a94-ae1f-40ad-b483-b1de51523cef',\n", + " '07b2e615-63a8-4939-8fdb-fd8751b887a6',\n", + " 'e311865c-b6e8-429e-96ca-5d4f01afe819',\n", + " 'a6ead6c1-f87a-4fc3-9e4f-ed3d50237af5',\n", + " 'ca62e958-493f-4272-9d45-2fd27c3b303d',\n", + " 'd27a1b13-6909-423b-acd5-ba53490fd95d',\n", + " '3f984107-db9a-4415-baaa-a4f2608ac8dc',\n", + " '4f505053-8e45-4092-8d7b-736166948ae9',\n", + " '5b028fe2-302f-43ef-a3fd-2058e74fc7d8',\n", + " '5f8ae8e7-07b9-4276-95d8-74c31c17b264',\n", + " '6b627c8d-8894-482c-a408-342df2f71a65',\n", + " 'dd023931-a263-41d6-ad39-e1c58baf2ade',\n", + " '1c58e31a-4026-44e4-91d1-e1b60c8013f3',\n", + " '71f3d423-4b2c-47fb-9371-3f38a3c5f6ed',\n", + " '2fb5ee0d-3bd1-457f-89cd-8e7ef164e712',\n", + " '9f8ce701-35d5-4958-b727-1aadb68e27fb',\n", + " '2bd5f1a7-c154-4972-a182-c8be1d244bca',\n", + " '2fcc7da9-7cae-4199-9e60-becffbe78ac5',\n", + " '38142ed0-d232-40be-a387-7852b3ded545',\n", + " '67c2e8b2-64db-4a65-806c-cf3c9f56e5e2',\n", + " 'a08e0a51-35b4-417a-bb42-f259ec6621d7',\n", + " '7361d79b-c2e5-491d-9b63-445e01e0e5a8',\n", + " '954ed9eb-93f9-4401-a052-e087223704cf',\n", + " '9aa8b4ff-6c4a-4645-b2e4-cda9b599b8dc',\n", + " 'f9c99d81-556f-460d-ba16-0513740f39a9',\n", + " 'ac592791-3911-4ca5-824d-0eb4a0892fd8',\n", + " 'adf4d0ec-e2aa-4cc7-ad07-676aa49c3930',\n", + " 'd898703f-06fb-41dd-8930-b02865a733d6',\n", + " '714b83c2-680f-4009-9331-ee647a894b00',\n", + " 'f4d8e6f5-6b2f-4978-a138-2bc6dd9501dc',\n", + " '8241c471-d22a-4a45-9b0f-d46e02890e84',\n", + " 'cae40964-c977-4c0f-ab97-fea7b09ff755',\n", + " '2d3ca834-fbe9-4def-a544-817ca4874141',\n", + " 'f608001c-3836-4391-9d11-e571c7e33fad',\n", + " 'b1eec073-a914-46d1-8614-8f30966ce619',\n", + " '58bec53e-81f9-45b5-8811-c23547488415',\n", + " 'b184cb0c-c184-4a07-a45d-f4d8158ed3a7',\n", + " 'cb792bbc-065e-4cf4-984d-96e76435241d',\n", + " '8857bd8f-8b49-4464-be53-eecb88ed387d',\n", + " 'b85901a4-96fb-4bf0-816b-b26803c42bf5',\n", + " 'a1710ed9-65bd-4c19-aac1-e85168a36297',\n", + " 'f76c7209-c759-4722-85b0-ead36fceadba',\n", + " 'd7490914-af74-4bc8-be54-51ffe7f49b6b',\n", + " '72e6959a-20c0-42ce-9d59-dae1a6d7855e',\n", + " '256fea35-cc9b-4209-b558-84bd9ed154af',\n", + " 'c725f01e-d827-423a-bd97-dd48c9b5310f',\n", + " 'cf8e7952-c68b-4739-8f54-74997c439ef8',\n", + " '882f6172-4c6b-4575-8d22-689143b4c99b',\n", + " '0e849659-8598-4168-9b34-a304d06131e2',\n", + " '36528ef4-4f86-48d9-a5de-6ae2135bef3f',\n", + " 'bc9b5cef-310b-4aa9-98b4-951a6597a21f',\n", + " '52f2a8ef-4134-4c73-a16c-de7cc38381a3',\n", + " 'a44edc49-01c3-4cb4-b4a7-ae409454e41a',\n", + " '77a93920-77ec-46a2-af7b-884843f39f6d',\n", + " '146b8c79-b170-4b6b-8422-8f2963eb9e76',\n", + " 'b64ba118-144b-44fb-98f8-e51e7d693f42',\n", + " 'c5e757ec-9ce8-4b48-b45b-d18d9937fc4d',\n", + " '97758ff8-7cda-4332-83d1-21513a3113a9',\n", + " 'a23e2d8b-2de6-4050-a9ad-96ec690818c4',\n", + " 'c4444004-14a3-4519-a2ae-27bd4cbc409e',\n", + " 'e1930963-07e3-4b6f-b551-2d6dd0bfd0f6',\n", + " 'a662c04a-fc19-4873-84b8-b671f4fdf663',\n", + " '35c54b35-71b2-4c65-a1f0-6bb369c9245b',\n", + " 'a5684892-9597-48f0-b12d-3b60cf526e65',\n", + " 'ea2776ad-f2d0-4bdc-aab2-091d57c089c9',\n", + " 'ab2d8a11-2e82-4830-b6a0-5032d8307423',\n", + " '5c30d4dd-bad6-4512-81e3-489524257e02',\n", + " 'a6deff3a-69ea-42b7-9b41-2549689cbf69',\n", + " '4a9fb009-bc7d-4fce-b50f-7016e1a2b587',\n", + " 'f5d04bda-5f29-47f0-9790-7c9929d5dba3',\n", + " '0193e8fe-e8a1-49ba-b18e-16b18f0d5653',\n", + " 'ed852bb7-febc-4b0d-be55-21badbd9b561',\n", + " 'ce343685-79c2-48fb-8242-47da3b060a40',\n", + " '08a2c7d0-3893-4263-99a0-6a8015fef4be',\n", + " 'cefe4cb9-ff8f-43ce-b060-bb3c16339c04',\n", + " 'a791cfc7-fcdc-4241-823f-a90227883d36',\n", + " '76e32c86-0420-4e04-879b-a8c4119c3616',\n", + " 'c98cadd3-1e71-4416-b288-b82b74a95895',\n", + " '5e8262a3-ab55-4ca9-97b8-ebaa4f1d3eac',\n", + " 'fa83a319-6835-46fc-9986-84e163f071d6',\n", + " '84e892cb-beed-4ea3-bc80-92b607dae6f0',\n", + " 'c21894a3-be1d-47aa-b533-04a6d386c366',\n", + " '85d4a033-044b-4bcf-8fbb-efc44decc05e',\n", + " 'b6b96241-9c81-426d-9617-1b451912e87a',\n", + " 'd18fcf5a-f248-4d96-81a0-e2d30a02f885',\n", + " '0365c4b3-0e27-4c2e-87e9-2d2aa6680eff',\n", + " '713f0ec7-0dbe-4abf-a3fc-6c1c91e53939',\n", + " 'a0af1719-c5ca-45b9-b31a-dfb024d64b5b',\n", + " '7702202e-41dc-4080-9285-8d02f6538ae9',\n", + " '0c228221-b76c-4f1f-a606-695336fc41fe',\n", + " '453084fd-8f41-4612-87c9-d4c84701ca1d',\n", + " '40c4fb6e-f4b3-40ec-8c44-db2200b3f34c',\n", + " 'ae392e76-3aed-41ff-83ce-575bc4759404',\n", + " 'f66387f6-6042-4a93-a0fe-c3b47be3fa86',\n", + " 'b398f5f0-f612-42dc-a262-65b879c55da7',\n", + " '461bf165-a4a4-4962-946b-a5cc3c2aade1',\n", + " 'a649b04b-ced3-4482-a0bd-14f4bcc87e89',\n", + " 'eca194c7-96b8-4642-9ed2-3c641e61cd09',\n", + " '8f4443c0-81fb-4f7c-8d8f-231c5bbc3980',\n", + " '7d1fc39d-5703-4f75-93b5-063dcbfdd438',\n", + " '7ae9a2af-3e91-4fc0-951e-95ad084d5188',\n", + " 'd97735b9-405b-4461-97e3-9efaf4051eeb',\n", + " 'c9d0e273-56ec-4610-9855-5ec2ed2eef46',\n", + " '113f362f-1380-4ac1-9c99-b8b177444537',\n", + " '61b0b274-d2ee-4ba5-99a0-bee403de066d',\n", + " '6ad9ccb0-f2d4-4519-b571-1577860cd8f4',\n", + " '8478dffc-4e12-4cfd-94ca-3431fe0f21b9',\n", + " 'fe1c1076-68db-48da-a245-963b5c8806f9',\n", + " '378b868f-4b13-4e9e-a3b4-29b82a81ee1b',\n", + " 'c4c2d9dc-20a1-4102-beeb-57061ae6ec38',\n", + " 'f533bb66-d215-4969-bdf1-412a6dd72489',\n", + " '45232e4a-48bd-446d-b80c-646698e84569',\n", + " '05022bff-1786-4153-bdd4-59f1d2b949f7',\n", + " '7de99738-4825-4d6b-98de-6ece14dd125f',\n", + " '4828bd6c-d5fa-45a0-864b-5b2dcd1c05aa',\n", + " '27653a16-40e7-450b-9522-d18a54f5e782',\n", + " 'b7c74744-19f2-4315-8d33-b01879d8d628',\n", + " '21b15424-4f1c-46e1-b90c-2f938cd75109',\n", + " '1b24d460-fe81-4512-bc1d-99364d6f1268',\n", + " '5370ab79-7e59-4bd3-b7cd-654bb35d78d1',\n", + " '410caef6-ce76-453d-98d6-99a427fd8ceb',\n", + " '1fd68dd4-849f-4221-82c3-abc26a2e3029',\n", + " 'fa552d45-4c3d-4c32-94b1-b96d45881525',\n", + " 'b16c0ad7-ea46-4adc-9896-a362ecc8d327',\n", + " '6138493f-d782-4137-bdd8-fe6d28c4763c',\n", + " '5ef77c41-b81f-4af3-8d80-2dcbe37c053f',\n", + " 'e17deeb0-e094-4125-9bb1-c43c59c68407',\n", + " '8d05b951-83fd-491b-ab41-058864c16397',\n", + " 'e991f554-bb11-4902-953b-b478fb947d1c',\n", + " '330435eb-8a86-4d68-94b8-ab1b37b8ed21',\n", + " '8e8d53dd-3301-4157-8f94-f8c6b134fecf',\n", + " '68519868-4060-4b45-8fc7-2c573996ecc3',\n", + " 'f70eb6e0-0ed9-4ac8-b1e5-6edd31e269fd',\n", + " '8658ee9e-40f2-4b76-afe0-179e1389fbd2',\n", + " 'd53a17e3-4efb-4558-8ca4-2223d895ed24',\n", + " '7bfc35ab-814d-494a-94af-b9bed089868e',\n", + " 'a19dbde5-fe68-4733-aada-c8393bd2f4cd',\n", + " '48db1b6f-4a76-4ad1-9645-6286aed5ddd2',\n", + " '6942f935-1d84-4600-a379-82d003d6f80b',\n", + " '1aae8ec8-ba1f-4a2f-b280-098d5a65d6fc',\n", + " '20833110-3a97-45a9-a440-72f3ef3c5b70',\n", + " 'fcb0f666-4964-4ad5-8a55-6aabdb5a24ce',\n", + " 'ffba4655-c2a3-4ee0-abab-2a43a59e8e2b',\n", + " '2bf8c7a4-8ada-44ac-8ee4-6235d64d5143',\n", + " 'b86eaeec-a619-457f-84cf-114b38b16de8',\n", + " '50823fe3-a34b-41fd-b1ee-80d6ba6dd843',\n", + " '01899e38-75ec-40b4-bdf5-17540000d306',\n", + " '7857c3be-1e51-4ee4-954c-572509b855e9',\n", + " 'd90c2e0b-1015-4c0f-b876-af7ff5d5d4ac',\n", + " '5a94411d-0974-4e79-8fba-f5087dc48b90',\n", + " 'cca061c9-c886-4bab-b15f-d50b4bf57c07',\n", + " 'f5c625c1-132f-4605-bcee-0bd46fd009cf',\n", + " 'b5a02370-34b6-4376-82a4-7a1912e07f21',\n", + " '25585fbb-1034-4e6d-b50a-30badc4ce840',\n", + " 'b5e39161-2253-40ec-b901-29ee22c696f6',\n", + " 'b5781a94-5d69-43ed-980a-32746d4de9c4',\n", + " '20835b2f-c234-45ec-8153-616bf904715f',\n", + " 'c836c188-2e8f-4967-8a0f-49be3819006f',\n", + " '1fa1198b-0450-4000-99b3-f57681e743e8',\n", + " '3b39d561-46b9-48dd-a00e-e234062a3e3f',\n", + " 'bab25ada-4ca3-4abc-91c9-ec78e29d55b2',\n", + " '58887136-1b4b-4905-a355-c3515268f49e',\n", + " '3262e922-20c6-4919-9f1c-fb2ad6e8b21a',\n", + " '8f83f620-ae25-4ead-b3df-94c0d1a8e961',\n", + " '9e7a3a24-3660-48fb-a8a0-781bf4b507ea',\n", + " 'ef03e6c3-29b3-4cb7-b281-630a3376a178',\n", + " '9a122de9-14ea-4bad-a62a-2505d0c24878',\n", + " 'e53c1ba8-4ea4-4505-b00a-dd6ef1048f82',\n", + " '40fec51b-df56-49c1-b32d-84f7487cc179',\n", + " '851cff1e-6d7a-4517-8643-504cdf56e363',\n", + " '8e70b6eb-f071-4ccf-bdb9-0afa30651522',\n", + " '151936da-42ca-40d8-b1e9-05b7b10d22a8',\n", + " '0572c468-84d7-426d-aaf8-869aaff70621',\n", + " 'd2e0877f-fe09-4b95-943f-87fcc85dd0ad',\n", + " 'c7c534e1-e284-4079-afb9-4dedcf2e15c1',\n", + " 'fe87797d-b735-4459-81a7-d50c84a7c3e0',\n", + " '10032599-1754-4c53-a904-8e1b599c1708',\n", + " '51437218-5f46-49df-89ac-3acb69c0dce5',\n", + " 'b4aeaadb-62f3-431a-a1a6-5b9c8ace8077',\n", + " '98e8e1ae-d2c0-4f44-82bb-164f7f810e3d',\n", + " 'ed265e34-bf2c-4bc6-b631-0597bf0b57d4',\n", + " 'b4268204-3f61-4b3b-a395-f637fe089f4e',\n", + " '22481545-5290-443c-b809-1fbcf6f0b98e',\n", + " '65aa721c-48cc-4150-b430-4fd9ec99571a',\n", + " 'f5d9cf30-7057-4c01-97a7-6b8b43327293',\n", + " 'ddded94e-d15a-4bc1-a037-74975a15fbf5',\n", + " '96909fb1-23ad-495c-af4d-37640dee9620',\n", + " '3ca34944-7cfb-4381-b364-8b893601f96d',\n", + " '947c1c86-59e7-4e08-b23f-d194bef2d09c',\n", + " '6964324f-8f5e-4be5-a5fc-ae6fc81092d3',\n", + " 'd5ce5647-b465-4ccf-9cfd-596bc7117951',\n", + " '782fb53c-7908-4e35-ae93-ea3212a0b7a3',\n", + " '43f79188-b657-4b87-8f91-1173eeaadedb',\n", + " 'c04554c0-ccad-4bbe-b916-87a023ec4236',\n", + " 'e8835d14-136d-4527-a72f-84d563e22029',\n", + " '7c91f534-9a61-4d20-b823-6ccf25e0c598',\n", + " '2a05690d-7833-4d03-9377-5cc94150c297',\n", + " '7501efcb-e185-41bf-8ba5-8c326d8dfebf',\n", + " 'bce5135d-97a8-4444-abee-6f746851236d',\n", + " '1ec57ee1-32c9-4f0b-a036-02f16c3039b5',\n", + " '7e3d4af9-51e9-4449-9d6a-a91f11838894',\n", + " '6277c1b0-df06-4e8d-a1b5-6bb3040132da',\n", + " 'e1667df2-b0ab-436e-b672-8db1495ee3c7',\n", + " '25516148-1976-4264-aa40-5da7a4a2c265',\n", + " '6a6ac81f-ae14-47b8-a099-94c19bb9c84f',\n", + " '53b675d0-1fdd-409c-81a9-ad5a9ad0c657',\n", + " '210f94cf-e20c-42df-993b-db151c3bf938',\n", + " '925b401b-b745-43e3-915a-293feaf5aa01',\n", + " 'b707ca7d-4dc4-438c-9506-41a4c1df036c',\n", + " '9235a804-d08a-4ec9-8f12-72e13325dc32',\n", + " 'a8c8b250-d03d-4bbd-8c9e-b46bf61e6ea4',\n", + " '5313e882-b28b-46df-9126-db4ac83904e3',\n", + " '9763dd93-19f8-43a2-a73c-5bd5e69258b5',\n", + " '4f3e4eb4-6573-4763-944c-19829d9d513c',\n", + " 'e8c340f5-6529-4f66-af92-38d3be628afc',\n", + " '84c4fa52-74ca-4570-a1ab-1f4319168060',\n", + " 'f62e5617-05ff-427a-b653-89111ea8fed8',\n", + " '2cdddd22-5977-4b1f-917b-9b2feffd37eb',\n", + " '5f73af74-82ca-49e3-8ec5-34cf4f7130a4',\n", + " '7b19aa40-3bdb-413c-aa95-4a553e0f9ce6',\n", + " 'ee015b29-634f-425b-8f34-f22802699988',\n", + " '30a155a7-c503-4b16-b22e-1980bc0e05a3',\n", + " '96acc434-612a-40ce-9a92-769a638f4f63',\n", + " 'd9b691d4-c499-41a8-aac4-e91175692710',\n", + " '4fec77cf-1369-48a0-b497-7dd74a6df665',\n", + " '07e70a0d-5c97-4593-8056-1a35e20db396',\n", + " '2e8f36ee-4885-4941-9225-59e349883600',\n", + " '8721a59d-32fb-4c3e-b20b-dbf971ed8557',\n", + " 'ecf834e5-2e8d-4d82-b9e1-d238a47b9e21',\n", + " '6689677d-5c4b-4b88-8185-3fdd3aa0f93a',\n", + " 'acc42416-9240-428b-81e6-da54a4dcf51c',\n", + " '7ebd6919-1599-46a9-9495-af504e89d306',\n", + " 'c24b09d3-14d9-43db-b05f-4b8688a98d6d',\n", + " 'b790323c-eaf1-4e5f-9061-0a6ef6969aff',\n", + " '7703a2b6-29b3-4b81-83c3-1da0ddc1f108',\n", + " 'ff0fa400-1a61-4b9f-9832-1dea0d386d7f',\n", + " '59ce7808-1bac-4978-aa4a-5fed66aad242',\n", + " '5e743900-0161-4ca7-be7a-fb508236e428',\n", + " 'd3b70703-428b-4bb4-8528-3afc2b53eb0a',\n", + " '63ab67f9-20a7-4cc1-94af-08bc0026d3d9',\n", + " '2550a63d-518d-47b3-9d95-0ec7674b77c7',\n", + " '8073e4da-ce36-4180-9f23-0fa57ae45edb',\n", + " '0064cbd2-0ac9-41b2-81ea-9ae470b74acd',\n", + " 'df3fd315-5cb3-400c-9cf4-aec726f1b024',\n", + " '40c8bff9-6895-4168-ac37-ad9db5f3a0c8',\n", + " '5f697b80-eac6-4702-9d2d-cd93e09aec23',\n", + " 'd14f5759-6a50-45ed-8faa-bd3dc362dc00',\n", + " '6c54b567-4e74-46fc-be7c-664fd6a10417',\n", + " 'a6d27040-b49b-4439-9a5d-9ba05e5e465a',\n", + " 'e012be9c-adad-413b-a52d-2db4df0ae4eb',\n", + " '7cdf0268-8e08-47bf-b984-3c015d4b4d5b',\n", + " '037d219b-8a3c-4979-aeed-50b3d3ebd78b',\n", + " '6780cdc6-3442-4c43-9055-c0684a9b0fff',\n", + " '05c8dc96-db5a-433f-9db1-572bc307d163',\n", + " '082e0868-fdc8-402c-8df5-3bcb4e0862aa',\n", + " '8a080b5c-3470-47de-b82a-4b7de831dd97',\n", + " '491f450b-caaf-450e-bf8e-67b73dd48cc1',\n", + " 'c3e4ac69-a3b6-492d-aeb7-bd70f768c7c5',\n", + " 'c241aa98-6f14-489c-8f0e-97fbf1247656',\n", + " 'c835eee6-0bb2-4518-b23d-fbfe6b11e1b4',\n", + " '1b7dced4-a70c-48a3-b7e6-d62c79b5a184',\n", + " '97f1ce72-ebc4-473c-86a5-d106476c8b8a',\n", + " 'fb864f66-d5f3-40bb-a93a-5e30cfd1f9bc',\n", + " '64273432-9919-4eb3-b729-fd113b65184c',\n", + " '33bf6ace-ea06-4458-8e42-e50bee4c77e0',\n", + " '277d52f9-1494-40bd-a3b2-ae5cfdda677c',\n", + " '161ab8c6-fd69-4cbc-a966-479b6918d5fc',\n", + " 'a25dad63-6f3d-45ed-a142-468311335c7a',\n", + " 'fe07498b-1229-4184-bf74-3e595e44633b',\n", + " 'b8b0d7a7-62d4-4789-b2cd-a3a3b7a8f252',\n", + " '7643ec59-d5b1-4773-a0e3-896667fe5b7a',\n", + " 'dfb0b3fd-3e6b-4c18-bebd-b1aeb12fe3f8',\n", + " 'addd80aa-50c1-47e4-81f2-37a0bc545666',\n", + " '6284ced6-3c50-419e-856c-130525dbe1e2',\n", + " 'ae962455-9016-44c6-8897-6e9eed7f487b',\n", + " '26983708-8e8d-4c65-8854-b1c631c1fbe0',\n", + " '6ebaeb47-9371-4904-8470-1081e104a4d6',\n", + " '85644669-6230-43ff-ad33-bb88aac14cf4',\n", + " '739da826-ed02-4705-bce6-d9b2099b5464',\n", + " '2206226a-e00e-4906-b98b-b54d41ef90a6',\n", + " 'c2954ed2-d70f-4457-bdcd-136a757eba75',\n", + " '767423e6-407f-44fa-9741-aa12f2065f58',\n", + " '6d1e660f-d17f-4242-b742-8e6258c3ccc2',\n", + " 'de25bef4-8d39-46f8-acfa-72cdd45a06c8',\n", + " 'ed951c6c-71df-4531-827b-2313dfe4b3d5',\n", + " '91df97ca-9216-4519-8995-b16f93a1687d',\n", + " '2788245b-9e47-4968-b481-a0085e267d41',\n", + " 'eac73db8-bfc8-4a7a-95cc-2945113a7e63',\n", + " '2951af6b-63f6-4a1f-85b9-22d186af54f3',\n", + " 'd5594db7-2a5d-4a8d-8593-b8c8e33c8a5d',\n", + " '93940320-b1d0-4540-99f7-1f90c61372ab',\n", + " '50ba95d9-af02-4acb-bff2-a24042f250fa',\n", + " '7be5b1ec-408a-4357-8a12-15fb67c40d9d',\n", + " '83139a06-cad3-468b-ae67-c3c39a222609',\n", + " '9fd181d2-4aee-4e90-99a3-21267bd3055a',\n", + " 'df692a0c-a885-4fe6-ae72-529a1d79369d',\n", + " 'df379797-87ad-4f33-97cc-2f21239f51d9',\n", + " 'b5c4660b-e898-42de-9b72-caf4c116a863',\n", + " 'aab74289-8122-4686-adb2-072100f00768',\n", + " 'd7f22da4-2da4-4152-9aac-a3abe1b524db',\n", + " 'e30f296b-7275-4826-86d8-fc9b3134f3e9',\n", + " 'c22538d0-3422-426d-b5bc-86a1aeb3f17b',\n", + " '756387a6-e41e-493e-9c9d-4eafbaf771a5',\n", + " 'a630a1c7-abb3-4f27-af38-a6dd5710c56c',\n", + " '189c5f0e-d7ce-44be-8572-6caf3007d6bc',\n", + " 'fce91be2-67d3-4905-be74-872d1dd4200d',\n", + " '6f3d3331-eb17-4d36-a203-9c4c67c275a4',\n", + " '9f10a8fd-151d-4538-bb69-6864cd204c53',\n", + " 'a3d8a924-dae7-4f32-855e-2a2abd1a36ec',\n", + " 'e76ed34b-e99c-491b-ae91-dfb0fa8f7011',\n", + " 'a540900a-cc2e-43b6-9082-e46d997c220a',\n", + " '49ec8859-70a4-4354-bb8e-5ed9d9d745cd',\n", + " 'e3a32299-ff1f-40c6-95f7-71e86ff26385',\n", + " '38e51899-4ec6-4ceb-aacd-cf5776874bfd',\n", + " '2dd49ff1-5101-456e-bac7-259b82739557',\n", + " '23206ae3-3dfb-4f47-8084-1b8fc9910ec5',\n", + " '8de5e96d-c1e5-4d59-9a56-a764c64c6d8a',\n", + " '44bf81dc-1f01-4bfb-857d-054ed2624db8',\n", + " '4326c70f-ce1c-40d0-a413-69f733e8aa45',\n", + " '09eeaf15-e18e-4dbf-8d86-0ac19318ba3d',\n", + " 'ec548ea1-4c9c-41c2-8c95-1abb3ba2224f',\n", + " '8a290cfc-d485-47dd-87c4-9b53f377e47a',\n", + " 'bd75be6d-8ffd-420b-8703-3d74d58711f4',\n", + " '66cd3966-2043-41c5-b3a5-3ba2656a0555',\n", + " '0c39c9a1-26da-4f58-85d9-76e3a1743bfc',\n", + " '52530e1c-4697-4c91-9ac8-3907cb7e55cf',\n", + " '6b2dda6d-2dd1-4469-a630-742f0f4e0269',\n", + " 'e35356cb-d365-44f0-b7cf-7da0b23c631f',\n", + " '8a6f0b1a-b33c-4928-9968-a18d7a7286d2',\n", + " '8e73a175-7b3e-4629-b4e3-ee0a7aaf1080',\n", + " '648c3bfe-ce99-47e7-856c-d4002bfd4cf4',\n", + " '0626ac8a-ac63-4dc4-b44c-fba3c391bfb9',\n", + " 'ccd5a760-8a59-4c77-bff1-c95f90779c73',\n", + " '15b9762a-b5d8-4761-b975-a9d6c6752c18',\n", + " '76591e5a-dec5-4a21-85cc-b9bc573aa545',\n", + " '1c4a9416-e9b0-4e53-9e71-fd6c3ae58384',\n", + " '135b01fe-dcfd-4136-b2db-4aa6e05d8681',\n", + " 'db7227b2-1fff-461c-b18a-420bfc3c975d',\n", + " '396dd541-324b-4381-8028-5a6855276ca0',\n", + " 'e339279d-ae08-486f-b21d-d5a38515fc46',\n", + " '548bd487-10cd-4420-9fde-95f537946856',\n", + " 'a58bdfe3-ca2e-425c-858f-aa2d299136e3',\n", + " '6df2ca14-8ba6-49df-b0ac-07add175b0f1',\n", + " '3191026b-c23a-414a-87e0-8f7d820952ce',\n", + " 'cf6c40f1-40e8-402f-92a8-5da71f57b7dc',\n", + " '3f7f3950-54f5-4612-ad05-194ae06610ae',\n", + " '1afc8c65-8f48-48ef-821e-915fd4ee7142',\n", + " '2bfba9fb-4dbc-45aa-a628-0908be4c0313',\n", + " '9d663c50-3f7d-4902-babb-b165947a06c5',\n", + " '75c7f98c-123b-451b-8ee6-4784b814009c',\n", + " '835fb1e9-4341-4a9e-8f00-c46b18b09124',\n", + " '36ffecb7-d100-44d5-9442-359e50bd4e7e',\n", + " '6a7858cd-1a6c-4f7a-b859-97e74549cf77',\n", + " 'a1f28a66-4f07-4386-9dbf-24dcc7d896ce',\n", + " 'b0280e24-0aea-4596-b9b9-5a9b82e1f4c2',\n", + " '5b6ab030-35a0-44b1-9c9e-40abe55745c5',\n", + " '02219557-563c-41ee-b54b-894175bccaf1',\n", + " '663c87cf-bdff-47ce-a062-919087883f91',\n", + " '7242ed2c-a2c7-4590-9a0c-449eca28c5f8',\n", + " 'f0969412-9cfd-42d0-ae38-786b08fb4a99',\n", + " '5553b553-a95c-4ee0-b1cf-fc324cfb00b1',\n", + " '87785011-123e-445e-b1cd-657ec579c023',\n", + " '80d088e8-4d5a-4fef-a263-3efd69cda789',\n", + " '8327dbd9-c7c9-4700-86f2-d48e0700cf7f',\n", + " '70119e0b-8c39-47bc-8125-f6f15a3a9973',\n", + " 'ea60bb7f-3174-4489-8724-53ff0015a25e',\n", + " 'bf3ac5dd-d082-430e-ab41-02fc05755bb1',\n", + " '3ea96ec9-0a87-4e33-8285-fa0e43851d30',\n", + " '452679db-1044-4f33-b327-80958062b64d',\n", + " '787f6408-7a30-4b03-8967-7f1ef140b117',\n", + " '4bdc2222-972d-400c-aeec-5d382471eb1c',\n", + " 'd58f2a8f-968d-48b0-9d53-f601332de448',\n", + " '21986a74-6efe-40e1-a150-dbfb9453602a',\n", + " 'f692dbde-844e-436a-81a7-246757af26e1',\n", + " '3c03938e-1643-4567-a7d6-2c080cbe3ac0',\n", + " '5d5cf088-06ea-4ef7-a3cf-8f3f113be99e',\n", + " '91ef8eb0-e937-4823-b967-154efa6dacdd',\n", + " '8ef60ff2-0226-49ca-833b-1c6d7872aebd',\n", + " '7d1837c2-1c36-4912-bacd-69d676b46824',\n", + " '8c6b3f2c-ff76-477f-a431-ca02b5c86021',\n", + " 'ae273cd1-6c02-4b05-8e38-59f1396edb32',\n", + " '33a73003-b50e-430a-8a88-9d03e41bef98',\n", + " 'e0e4caee-cfd3-481c-9ff8-4d983de676d6',\n", + " '03514313-1e6b-4b75-ad73-3d397a7dab1d',\n", + " '21acecdc-0ea8-4000-bed0-0dc23fe2d776',\n", + " 'd89b485f-7c8e-4907-8162-3a3430a52567',\n", + " '6bf298e3-d5af-454d-b433-260fd05108a5',\n", + " '11785067-9868-4607-9050-9d6829241861',\n", + " 'cca86895-e47b-4162-8611-b9e68103941c',\n", + " 'ab270db4-25b5-4b76-ad98-cafb7f512921',\n", + " 'ce49d6a8-3051-4c94-a6f3-9d7dd70e798b',\n", + " '5751f788-1b16-43e1-a310-8d8162e0b26f',\n", + " '38089985-9682-4b19-89e8-92b421a7184b',\n", + " '6d72a762-df67-4ee2-916e-ada0191a7dbb',\n", + " '9f1f4740-7507-4249-a2d1-792b9fc2db3c',\n", + " 'e7aca692-51cc-4a3b-a2f5-437f1c6ee828',\n", + " '7291d4bd-6819-48ac-9c6b-b3559b74fe35',\n", + " '08f284d2-40a4-4dea-bbb7-21e81f0251b8',\n", + " '3614b2d6-7365-46a4-9489-b1601b45af81',\n", + " 'edbc3163-8c3f-4631-a131-f84c77fec01c',\n", + " '12794763-9440-4770-81f5-5fb44118cd51',\n", + " '24908e0c-39cc-4827-89cf-bb163ef79e4a',\n", + " 'de320ccf-6661-4a46-bd8d-1e2a30467d58',\n", + " 'e79563f9-33ba-4a1b-84ee-2ec0e33f5941',\n", + " '2d26b852-9c98-4a88-bb92-40a464655e23',\n", + " '01153c1e-bcc9-478f-bf51-e0c0416c2127',\n", + " 'cc5b137d-edc9-417c-8cff-2cfca9fa342b',\n", + " 'e16d3165-66d4-4a08-b50e-b62def8c1036',\n", + " 'c95722ac-0513-4a5e-b005-b61b172521ef',\n", + " '485d1ca6-a061-4a62-9797-b60f32fea5a2',\n", + " 'aef0dfeb-5066-4112-827a-14ac9fc47287',\n", + " '9a938505-c433-4a2c-b926-366878b05f2d',\n", + " '1a990d21-d694-409b-a985-c907649647aa',\n", + " '431f27ee-9379-4b99-a321-c088274224dc',\n", + " '22621ba5-7ce5-4ff2-92ce-785fc7afe24c',\n", + " '98f7fa34-cff5-4bf8-aaaa-a0e16e15f644',\n", + " 'fb29d25b-468c-4e56-8448-14117e6aedae',\n", + " '3d87d6e4-04cd-4f61-b14b-1ede2558d541',\n", + " 'b7de2c8d-0ad3-4902-9a4f-3ea2d3de21f7',\n", + " '84fa3634-7b42-49a1-a8a8-7b0ee03cee20',\n", + " 'dbd2c6d9-7cc0-4494-bf5e-30b10079dc52',\n", + " '1cebb669-d90b-47f9-98f4-9a8c305b27e3',\n", + " 'eabeb083-c129-4093-b16d-31b8617d911a',\n", + " '5343d359-72cd-4a41-a96f-f7321783d2e0',\n", + " '96c23667-443e-4a58-ba8f-dcc2f187c27b',\n", + " 'b4b7e3eb-45c8-4452-a110-c301bd1ea3ba',\n", + " 'a883467b-c3a0-4846-a3ac-abf3823e3ca9',\n", + " '5c0628ab-ad5c-4577-bbc5-b3c6595399fc',\n", + " 'f5d4d1e5-e2d9-4468-8b22-998848df5b6a',\n", + " '0d4fb067-015c-4b88-939f-840aefd68151',\n", + " '96426160-044f-48b5-a9e1-d15dcb233b0f',\n", + " '8a854efb-4560-4ca7-a54c-6ed7cf0bf1ef',\n", + " '380b562e-b9db-48d2-91ae-9d627e536de5',\n", + " '7cafa6ab-5325-4d94-83d2-8dbb33ea8335',\n", + " '9d8b145f-8673-4916-bcdd-b7dab0c6acee',\n", + " '14d69ae9-aaad-444c-84b1-05cf80103a18',\n", + " '65fc4377-0ba8-4f54-9af6-b8341c20fe99',\n", + " 'b28177a3-432b-435b-a683-5cf1e5f0ca01',\n", + " '3e582a94-1b76-4b82-a9e3-342862bf627a',\n", + " 'be97e48e-32dd-4eb9-9f88-fcd21db55826',\n", + " 'ac60681d-b819-4d7f-860a-a203b402970f',\n", + " '84f0a9cb-9750-4c31-929f-2e24bf40cbb1',\n", + " 'f63b28e3-1505-4009-8933-25e5285edd99',\n", + " 'e67871bf-9404-40f2-8587-4fb5fcf2a035',\n", + " 'be5345cd-11b6-42da-a2a2-2e1b9a305fd8',\n", + " '669b8d4c-7b60-4d9d-8801-7a00b5e30ca3',\n", + " 'cf5f69c7-028b-4b57-8fe3-5d262b99e06e',\n", + " '653d8377-cfe9-4371-8e4f-dc6fb51a5155',\n", + " 'a39465c2-3ac7-4402-9b67-8e95786ce35d',\n", + " '0238195f-229f-4c5c-b247-529991bbc5a8',\n", + " 'f3ed921a-b163-4980-81af-bf44db2dd2e6',\n", + " '2115168b-436e-4a27-bc97-1e8529e8f5c1',\n", + " '6e0f8323-0ff5-469c-8e4e-8896d755b7bb',\n", + " 'feedbbaf-eda8-4bd6-91b7-76e568caa218',\n", + " 'b2a18940-c755-414a-9464-5f4b14fb824c',\n", + " '158736fd-ac4f-4226-add0-c6191a1dde04',\n", + " '700c50ca-8ef9-416c-92be-59dd392b5831',\n", + " '70a9451a-a4e5-43f1-a005-3d5174053eb9',\n", + " '904fa1f7-30ba-47e6-99da-935deaa9a188',\n", + " '8dc3129f-0f71-407f-b684-76fab47aa4e9',\n", + " '64ff3f0d-a77c-4f34-aebf-bf193f1013b9',\n", + " 'd6621ef3-de75-4125-94ba-b97ab06418e0',\n", + " '8283ae6e-67c2-4375-a2f7-716ce1d7af5d',\n", + " '2d62a48a-a892-40ac-a4a3-6f9599a9c3a4',\n", + " '7124db49-0863-40bc-a3aa-1ef5fa6c302c',\n", + " '694ff1c2-f167-46a5-af1d-161b39059a13',\n", + " 'c501506a-f143-45b0-b96b-a0f0573e1b8a',\n", + " 'f17b4c37-dc6a-4e51-b095-0a4956c7d9c2',\n", + " 'ed1003c2-2dd4-4bb3-8521-00a9659c9733',\n", + " 'c78b59d1-3cb6-4f69-9a89-642d1fd00c03',\n", + " '2a94e160-5426-43ef-baf5-b82ded0f4169',\n", + " '8a6d8771-2b1f-464d-a0b7-c0b600643756',\n", + " 'f2ffd449-6e2e-4d1d-9bbd-aa1135024739',\n", + " '91e803dc-a5d5-407a-8885-7e75556d6521',\n", + " '241b9644-6ad6-42e0-b8db-6fca8f9f14e2',\n", + " '9a530c90-ae4a-4133-b15a-ceb82ffefcc6',\n", + " '6a695132-7e52-4ff1-a4ef-bc1d656a9303',\n", + " '2b13968b-5493-4412-acc7-0e06edebfe1c',\n", + " '42af1b0d-3cb7-43a2-ac39-321f069243ad',\n", + " '1c4b105e-f47d-4a80-a91c-61746b46f89b',\n", + " 'f4b2556a-6c97-4fda-863f-79f883f09aa5',\n", + " 'eb6e7b4e-6867-4343-b0b5-a0696130e400',\n", + " '20e86a8f-2e69-4401-86f5-0142e32121c4',\n", + " 'a9ca7f9c-46e6-4ded-9f68-ad47fb681783',\n", + " '2398dd50-85b7-4b52-9b13-26a0c53aa8ae',\n", + " '36d6ac31-5051-45d5-8e81-e8ed5ccc6853',\n", + " 'e543aea5-ef30-471a-aaa6-7da4681aad69',\n", + " '1ebdf3d6-5b2e-4195-8d1f-5c6b47e821ce',\n", + " 'f3a25498-74dc-4c54-bc5d-7d500361b31d',\n", + " '42ebb11e-b91b-4b7c-9f90-93b5280cef31',\n", + " '2ed17948-b7c0-42f9-94f8-befb9cc8ffd6',\n", + " '431a572a-9e52-47fb-ae87-8abcfa075dce',\n", + " '29cf96e8-dccc-4bb0-b686-670ab3ef637a',\n", + " '7dd76c07-230e-4700-ac37-2c257ae90f96',\n", + " 'ef22e7e4-34c9-42a0-9738-1ed4cc9404ba',\n", + " 'cd9ab46d-a92f-4108-b6c2-0ea82a8f90d9',\n", + " '1e895870-2ae9-46aa-89ca-2cd27d58cd44',\n", + " 'c7401b41-66db-42f4-b474-d58b19ce8578',\n", + " '394a0729-0b82-419c-9b79-af4ab9522a83',\n", + " 'a6fa4bbb-9031-4648-8140-3eeab707cf45',\n", + " '50795835-1184-4dd3-b18e-4c32e39eb9a8',\n", + " '9885646f-0953-44b7-97f5-b08384481114',\n", + " 'a10c68d0-d8bf-40ef-b9f1-19eff14b45b8',\n", + " '45d57b52-ac35-4747-b0b5-3eec11a38ca7',\n", + " '0c325f05-4a8d-46ae-8f84-4b089eb29c92',\n", + " '3a094d05-2eed-4a54-9116-39de3f52d1fe',\n", + " '6a7ec5cc-116e-4c23-9770-4f7ef85b0966',\n", + " '0c41f40a-229c-4922-8a9f-4efcafb28102',\n", + " '57f7fdd2-6cb3-45c8-8ad5-cce64950ef52',\n", + " '181b047a-ed5d-4932-8001-35ce2071aa34',\n", + " '2e4b195f-19cb-4545-a943-2bb7c32bad98',\n", + " '1b32dcae-9bc7-4415-bb14-841918665027',\n", + " '4f040336-8755-49d0-b136-3f3b24138854',\n", + " '18c0c867-0b3d-423c-8334-7d0bc1a6dc59',\n", + " '6875a92e-3172-4c1c-9e4b-fcdb5389c84f',\n", + " 'b1160d73-1037-46ca-ac6e-aa31468d868e',\n", + " 'e3817b06-61b3-4af8-8b60-c87a8feb1656',\n", + " '9ab70d8e-20b3-4707-b656-c365323b470a',\n", + " '83696a8b-ef7e-4c19-8044-9bd515f2ab19',\n", + " '8a8794ed-382d-49bd-99ac-5a2a606d086e',\n", + " '0b369248-be96-4fd3-af44-178bc9aa3c47',\n", + " '06c30ba4-846c-40a3-9fb8-ac5f96491f17',\n", + " 'd0e8a32d-27e2-4ddb-92b5-b53eba6af05b',\n", + " '91c2f545-98b3-4906-b6a4-8ebbe1e2c940',\n", + " 'b43ebc93-8e58-43ae-a0b4-c1bf848aa415',\n", + " '15371c95-3e9f-4034-9b26-a76fcee77634',\n", + " '9779f96a-87ce-452a-a86e-e589a97f62c9',\n", + " '4d3a1498-d903-462f-a492-f189e05b4677',\n", + " 'b1b5577b-a815-4871-a7f5-6ac02c51d652',\n", + " '1dbe8125-9c8b-4395-a988-48ee4074a60e',\n", + " '22f9cdfa-eaa6-4cf4-a9b8-3610593872b6',\n", + " 'a6e85896-49b7-4789-8728-ff36a66c72c4',\n", + " '71ab7c67-2728-453c-8c3c-ee82444b46b4',\n", + " '199a9a0b-2abd-481e-9f58-10a5230b3d5b',\n", + " '85536ea6-f194-402d-b3fc-bf340f1f418b',\n", + " 'cf442acc-d16d-4c47-8222-448515106902',\n", + " '11f68ca3-b196-47e5-bad3-35aec8aa2a12',\n", + " '79fdabd7-f3a4-4c10-8207-2d848c44c219',\n", + " 'eafc0069-1ef5-41ca-8983-00728632b148',\n", + " 'bd5bfc96-0923-4da2-a467-b8a958bd9785',\n", + " '239f4a59-e52f-46f9-832a-209ac28168a9',\n", + " 'fde36b67-dea6-4af7-8a7c-f88e9746867b',\n", + " '65f35cd4-b7a6-4e8a-acd0-2e392e165805',\n", + " '2b21e96c-60b3-42ef-887b-d936c4cd9dc8',\n", + " '48a47c4b-6b3b-4911-8789-0fcedcbaa7fe',\n", + " 'f9278d36-6f21-481e-bd01-d6a3b694dec0',\n", + " '1a83a739-64b8-4ff8-85e9-dae6f2425000',\n", + " '67dc5ca7-0e55-4cc0-8ad2-ed8484d44c5a',\n", + " 'b0ad7fea-e652-4da9-998b-c113fe681a78',\n", + " 'e46d23f9-8f77-4a10-9a54-eafd2907194d',\n", + " 'a97385a6-d34a-47fa-932f-248ebaea030a',\n", + " 'e5cf24ed-8323-40fc-b987-0405e769e39b',\n", + " 'd942d61b-dc81-4ee0-8034-a0a6bf33f0cd',\n", + " 'b1f6c530-971a-4603-8002-f657f8f466a5',\n", + " '279be1ca-8cd2-422f-8d8a-a6a3c5602a40',\n", + " 'e18228c9-7c44-4621-ba4d-df7f240c4ac8',\n", + " 'ef7f002f-81c5-4217-82a2-ceb58da08515',\n", + " '1ce3e955-aef4-4339-bb98-e2a72fe1db13',\n", + " '1cb87361-ac8c-451b-917e-338012f4ae94',\n", + " 'ffcbc3fe-e6df-478e-b722-c72a0e768d3c',\n", + " 'db9a8cad-1514-44c6-a338-58ae5262586c',\n", + " '611f3f01-7dc8-4375-be56-e31284dddd2d',\n", + " '5dca570c-0a30-4435-b8c3-51949ddb9095',\n", + " '2b4cec42-11ec-47b7-8bed-d03bf3036b25',\n", + " 'a247dc6e-0960-445a-9704-03dc96318242',\n", + " '84a663bc-b6bf-4a6e-9b1c-d69aa587abbf',\n", + " 'b69662cb-be93-4ce2-bb58-eeb491767c4f',\n", + " '999f7c01-d5a1-4162-ac32-8c3b12267b91',\n", + " '0e699d70-2c9e-4b1c-a27a-b44b1b9ed2a8',\n", + " '84b7537a-be85-4e26-b916-f3d1a5cfcb96',\n", + " '7cc8b3a9-928f-4162-9251-717921a20ba1',\n", + " '09277405-2e84-423d-90a6-11b5cafcdb34',\n", + " '863f2adb-03c6-471d-a653-77e34f665b82',\n", + " '6f41f987-0084-4396-8f66-a721e6163ce9',\n", + " '40507676-a997-42ef-bc9d-9fc3f3f22c94',\n", + " 'a3140052-a89b-4b89-be86-b5fbae34e49f',\n", + " 'b7a2adb3-d14c-4151-99ce-9ed1f94d0ddf',\n", + " 'd6a14f27-ee19-4fba-ae0a-8b231b8f8f34',\n", + " 'ecc05d21-0f99-4296-8d2a-af16e2aa257b',\n", + " '4136f012-2a76-4008-8815-fbb3a3585bc4',\n", + " '533474ab-ef47-4963-8afd-340456fd8a08',\n", + " '7b031879-b5ba-4afc-949f-9fb98206d474',\n", + " 'f174afb3-2a8d-4ab6-9066-6e6b008d76d4',\n", + " 'c699433f-b39d-4c0e-8305-0bb3bed5ab28',\n", + " 'f3627282-2ab8-470d-bd53-eb69199f5033',\n", + " 'be008fdc-77e5-428f-837b-6d19a10b1a04',\n", + " 'a2833d15-6d01-4548-b82c-ec94ceafe2dc',\n", + " '1d94c0fb-056e-4d33-b3a0-33879ccd48ba',\n", + " '26b5d9ee-d2b5-4159-b012-5f3093d6e94f',\n", + " 'b4b4f6e8-959d-4448-a33d-3f5c2e75fa1a',\n", + " '6dcf40e0-bba8-4e3e-a675-5185b78bc3d5',\n", + " '2ce7d505-56fd-4f6f-b56a-2d308df9942d',\n", + " '81446d3d-6692-407f-83f6-2317e718707f',\n", + " 'f36d49f4-15be-4047-b5b2-d777aa1c96b1',\n", + " 'd222c6a6-293e-403a-ac1f-bf4f9f8c8587',\n", + " '1bfdbb14-f69a-4c42-873c-c8f271f3e651',\n", + " '0170fd9d-d4b3-49aa-8519-1b17d534b4a7',\n", + " '2b845f76-4cc4-428d-b828-043276c0f4ab',\n", + " 'e2f5a670-e552-4a86-bf27-90061cd2183a',\n", + " '770b65aa-79d8-4b55-b5a0-b3bd879c9f11',\n", + " '91c2f69c-fc97-4282-b58c-e048b59d1b95',\n", + " '025a1f3a-d085-4086-b635-ab6e64cd9324',\n", + " 'c04f765f-b7d3-4ac8-9046-0a8df528a34b',\n", + " 'a297e209-d819-4fbe-992b-b8a0b049407d',\n", + " 'f0a3c391-6a67-4589-a187-dd4d12736285',\n", + " '0376c4d2-3187-4e7d-a169-872f971e5326',\n", + " '3d5d0269-3c38-49aa-802d-8cf9a42d77e5',\n", + " 'ed2799df-8cfc-483e-a9c7-b20efe3372cc',\n", + " '832c86dd-a785-4c05-87e4-ac0abf88e600',\n", + " '88a3f7e8-98cf-43ba-b452-163425eae920',\n", + " '624d1cb9-86a7-419c-a041-11bf1d69db38',\n", + " '35d269d5-2bf3-408c-b611-c9513c8159fa',\n", + " 'fc19fee7-e4ad-4d0b-8028-09b820125ec7',\n", + " '9ba46625-a2fc-4d4d-ae78-7317f9564c37',\n", + " '5b04a1b2-0ca4-4347-8499-a0138fa6f563',\n", + " 'ebc5496d-6ccf-4ff7-a3c9-b68fc975e0aa',\n", + " 'a2b18c26-bafa-4316-8f3e-6f70e8151d46',\n", + " 'd6fda9a4-5fc1-4a0b-9578-8b4bef722a6c',\n", + " '46fdbf5b-cb0d-42ec-89f5-7f64c80deb19',\n", + " '7f21da0b-4be9-4c59-988f-0adc3ff12987',\n", + " 'aa93fd34-aad2-4f8f-b984-6db8e35fad0e',\n", + " '690a795d-4430-4b82-838e-9906dba568ac',\n", + " '4324d164-e82a-4001-a1ac-941dd16a813b',\n", + " '205afaf4-544c-480a-8838-c6d3677e6f43',\n", + " 'b7db2c15-0cd2-43da-a14c-319ef2aeacd6',\n", + " 'b0b9fbf3-71a5-4452-a28d-023eafb6577c',\n", + " 'cd6b661f-6a28-4ac3-9731-b595083004c5',\n", + " 'd3cd697f-d20e-4f20-931d-e13d75923e42',\n", + " '8ff3eadd-4b5a-49c2-b920-33a46d1ef738',\n", + " 'b665b343-33e9-49cb-a30e-c6e7c765300c',\n", + " 'd34a40da-65e2-4556-a6f0-b9451a75c7ee',\n", + " '52b497ab-7a31-4ac4-832e-4941a3c0bcca',\n", + " '31bdd3a0-9114-4078-b7b6-87c8030bde9c',\n", + " '5af5ccfe-843c-4de9-bc43-414149bed7a7',\n", + " 'fc9dd092-a863-40d0-ad88-fbc079bf762c',\n", + " '7a943670-7410-4eac-949d-2db9f6a5ceaf',\n", + " '964bb4ee-8fc4-49fa-bed3-820c595185a6',\n", + " 'e3c37f98-dd5a-41d6-b715-7eca17cef019',\n", + " '79793871-cdea-4b8a-8350-e4b596889c86',\n", + " '36c989db-78a4-4ac2-a09c-20644003a984',\n", + " 'fda065ac-1529-4537-9fc3-31becbaa87ff',\n", + " 'e602c0bf-ae0b-43b8-a000-19da2a8b34bf',\n", + " '26ba4bb6-6dcb-4823-bba2-199b3c8c4f1c',\n", + " '993bff44-d2ec-4264-b913-25a20bd7350b',\n", + " 'd205da0d-0236-4ee9-922c-2a6fe88027bb',\n", + " '1ce5004f-4a49-47bd-90cd-fd19118b684b',\n", + " '9b406837-6be3-4bd3-9596-cc919c99643c',\n", + " 'b634b209-9484-41b9-9071-f74ce6203444',\n", + " '32e5749c-abc7-415a-ac68-588697cbcc05',\n", + " '9b3e6b64-2925-4389-b1aa-d6c4ec6cc15a',\n", + " 'a2291bdb-2ce8-4e56-9cbc-4819de9d6f7e',\n", + " 'df73355c-145f-4080-a835-a280c8e2bb02',\n", + " '47f253bc-1174-467b-a5e9-98f0f4d77df5',\n", + " '45f7ed85-83da-46ef-9bae-067d659626a1',\n", + " '95f44903-2c2b-4499-a8ab-aa8e0b44580a',\n", + " '94e79610-4e37-4240-94fd-986ee1df7b73',\n", + " 'baf35cae-82bb-48fb-be08-1b824c686098',\n", + " 'fe9158a6-2c9e-43e4-885a-de9bb0129caa',\n", + " '0b23c38f-237b-4878-a2ac-3f5296af4d3e',\n", + " 'dbd69e66-d565-4752-b98a-63b0568d12ad',\n", + " 'bd043648-a146-45cd-8175-ffd611ddbeac',\n", + " '07b3222c-3d52-42a8-9049-112825cb46d0',\n", + " 'd989fe4a-5952-40bf-be24-f0ca2c387471',\n", + " '4ccd4ed8-5c01-4cf5-bcd7-006bf142d072',\n", + " '89b96c29-6100-4c92-aaa6-5d97f1fe17cd',\n", + " '552c83da-781a-4086-a7bd-c9d1a3b800a3',\n", + " '4eb9940a-cc7f-420d-91a3-2e3d9c605910',\n", + " '3fd81259-c1ba-4624-849e-49d7806d7254',\n", + " '131f1624-d4b3-4a30-9fba-3e1bc6a941df',\n", + " '43a726b6-b467-43c1-b168-a1d5f963a57e',\n", + " '045c30f3-a0b4-49af-a233-8273885d15f1',\n", + " '41c38def-db0d-4f44-ab29-2101f133f848',\n", + " '8bec378c-eda5-4f2a-b2e7-daca60856d18',\n", + " ...]" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "execution_array" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "58aa4216", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Execution(id='caed8408-235c-4a36-91fe-0559b91ece8d', created_at=datetime.datetime(2024, 10, 9, 12, 50, 58, 307650, tzinfo=datetime.timezone.utc), input={'user_ppid': 's7lm2170225005507862d53cc9cf54'}, status='queued', task_id='825a03b1-856a-4ae1-a1f5-ad994ba5c87d', updated_at=datetime.datetime(2024, 10, 9, 12, 50, 58, 307651, tzinfo=datetime.timezone.utc), error=None, metadata={}, output=None)" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "client.executions.get(execution_id = 'caed8408-235c-4a36-91fe-0559b91ece8d')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1bc7efde", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/agents-api/poetry.lock b/agents-api/poetry.lock index 5abe480d1..972576ac4 100644 --- a/agents-api/poetry.lock +++ b/agents-api/poetry.lock @@ -149,13 +149,13 @@ files = [ [[package]] name = "anyio" -version = "4.6.0" +version = "4.6.2.post1" description = "High level compatibility layer for multiple asynchronous event loop implementations" optional = false python-versions = ">=3.9" files = [ - {file = "anyio-4.6.0-py3-none-any.whl", hash = "sha256:c7d2e9d63e31599eeb636c8c5c03a7e108d73b345f064f1c19fdc87b79036a9a"}, - {file = "anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb"}, + {file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"}, + {file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"}, ] [package.dependencies] @@ -164,7 +164,7 @@ sniffio = ">=1.1" [package.extras] doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.21.0b1)"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"] trio = ["trio (>=0.26.1)"] [[package]] @@ -433,17 +433,17 @@ css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "boto3" -version = "1.35.39" +version = "1.35.41" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.35.39-py3-none-any.whl", hash = "sha256:5970b62c1ec8177501e02520f0d41839ca5fc549b30bac4e8c0c0882ae776217"}, - {file = "boto3-1.35.39.tar.gz", hash = "sha256:670f811c65e3c5fe4ed8c8d69be0b44b1d649e992c0fc16de43816d1188f88f1"}, + {file = "boto3-1.35.41-py3-none-any.whl", hash = "sha256:2bf7e7f376aee52155fc4ae4487f29333a6bcdf3a05c3bc4fede10b972d951a6"}, + {file = "boto3-1.35.41.tar.gz", hash = "sha256:e74bc6d69c04ca611b7f58afe08e2ded6cb6504a4a80557b656abeefee395f88"}, ] [package.dependencies] -botocore = ">=1.35.39,<1.36.0" +botocore = ">=1.35.41,<1.36.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -452,13 +452,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.35.39" +version = "1.35.41" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.35.39-py3-none-any.whl", hash = "sha256:781c547eb6a79c0e4b0bedd87b81fbfed957816b4841d33e20c8f1989c7c19ce"}, - {file = "botocore-1.35.39.tar.gz", hash = "sha256:cb7f851933b5ccc2fba4f0a8b846252410aa0efac5bfbe93b82d10801f5f8e90"}, + {file = "botocore-1.35.41-py3-none-any.whl", hash = "sha256:915c4d81e3a0be3b793c1e2efdf19af1d0a9cd4a2d8de08ee18216c14d67764b"}, + {file = "botocore-1.35.41.tar.gz", hash = "sha256:8a09a32136df8768190a6c92f0240cd59c30deb99c89026563efadbbed41fa00"}, ] [package.dependencies] @@ -2009,13 +2009,13 @@ dev = ["Sphinx (>=5.1.1)", "black (==24.8.0)", "build (>=0.10.0)", "coverage[tom [[package]] name = "litellm" -version = "1.49.1" +version = "1.49.4" description = "Library to easily interface with LLM API providers" optional = false python-versions = "!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,!=3.7.*,>=3.8" files = [ - {file = "litellm-1.49.1-py3-none-any.whl", hash = "sha256:2ba6689fe4ea3b0d69f56f2843caff6422497489e6252943b13ef1463f016728"}, - {file = "litellm-1.49.1.tar.gz", hash = "sha256:f51450ad823c8bdf057017009ae8bcce1a2810690b2f0d9dcdaff04ddc68209a"}, + {file = "litellm-1.49.4-py3-none-any.whl", hash = "sha256:3094a9f74979da993f4b3298372ec4416f7a3f82d11a0831c9c616098b3fb50a"}, + {file = "litellm-1.49.4.tar.gz", hash = "sha256:5f16d40bfa7747fcc21f45f340454c57cbc705178244fe7326abac7c0759e05e"}, ] [package.dependencies] @@ -2491,13 +2491,13 @@ files = [ [[package]] name = "networkx" -version = "3.4" +version = "3.4.1" description = "Python package for creating and manipulating graphs and networks" optional = false python-versions = ">=3.10" files = [ - {file = "networkx-3.4-py3-none-any.whl", hash = "sha256:46dad0ec74a825a968e2b36c37ef5b91faa3868f017b2283d9cbff33112222ce"}, - {file = "networkx-3.4.tar.gz", hash = "sha256:1269b90f8f0d3a4095f016f49650f35ac169729f49b69d0572b2bb142748162b"}, + {file = "networkx-3.4.1-py3-none-any.whl", hash = "sha256:e30a87b48c9a6a7cc220e732bffefaee585bdb166d13377734446ce1a0620eed"}, + {file = "networkx-3.4.1.tar.gz", hash = "sha256:f9df45e85b78f5bd010993e897b4f1fdb242c11e015b101bd951e5c0e29982d8"}, ] [package.extras] @@ -3317,13 +3317,13 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pyparsing" -version = "3.1.4" +version = "3.2.0" description = "pyparsing module - Classes and methods to define and execute parsing grammars" optional = false -python-versions = ">=3.6.8" +python-versions = ">=3.9" files = [ - {file = "pyparsing-3.1.4-py3-none-any.whl", hash = "sha256:a6a7ee4235a3f944aa1fa2249307708f893fe5717dc603503c6c7969c070fb7c"}, - {file = "pyparsing-3.1.4.tar.gz", hash = "sha256:f86ec8d1a83f11977c9a6ea7598e8c27fc5cddfa5b07ea2241edbbde1d7bc032"}, + {file = "pyparsing-3.2.0-py3-none-any.whl", hash = "sha256:93d9577b88da0bbea8cc8334ee8b918ed014968fd2ec383e868fb8afb1ccef84"}, + {file = "pyparsing-3.2.0.tar.gz", hash = "sha256:cbf74e27246d595d9a74b186b810f6fbb86726dbf3b9532efb343f6d7294fe9c"}, ] [package.extras] @@ -3453,29 +3453,29 @@ files = [ [[package]] name = "pywin32" -version = "307" +version = "308" description = "Python for Window Extensions" optional = false python-versions = "*" files = [ - {file = "pywin32-307-cp310-cp310-win32.whl", hash = "sha256:f8f25d893c1e1ce2d685ef6d0a481e87c6f510d0f3f117932781f412e0eba31b"}, - {file = "pywin32-307-cp310-cp310-win_amd64.whl", hash = "sha256:36e650c5e5e6b29b5d317385b02d20803ddbac5d1031e1f88d20d76676dd103d"}, - {file = "pywin32-307-cp310-cp310-win_arm64.whl", hash = "sha256:0c12d61e0274e0c62acee79e3e503c312426ddd0e8d4899c626cddc1cafe0ff4"}, - {file = "pywin32-307-cp311-cp311-win32.whl", hash = "sha256:fec5d27cc893178fab299de911b8e4d12c5954e1baf83e8a664311e56a272b75"}, - {file = "pywin32-307-cp311-cp311-win_amd64.whl", hash = "sha256:987a86971753ed7fdd52a7fb5747aba955b2c7fbbc3d8b76ec850358c1cc28c3"}, - {file = "pywin32-307-cp311-cp311-win_arm64.whl", hash = "sha256:fd436897c186a2e693cd0437386ed79f989f4d13d6f353f8787ecbb0ae719398"}, - {file = "pywin32-307-cp312-cp312-win32.whl", hash = "sha256:07649ec6b01712f36debf39fc94f3d696a46579e852f60157a729ac039df0815"}, - {file = "pywin32-307-cp312-cp312-win_amd64.whl", hash = "sha256:00d047992bb5dcf79f8b9b7c81f72e0130f9fe4b22df613f755ab1cc021d8347"}, - {file = "pywin32-307-cp312-cp312-win_arm64.whl", hash = "sha256:b53658acbfc6a8241d72cc09e9d1d666be4e6c99376bc59e26cdb6223c4554d2"}, - {file = "pywin32-307-cp313-cp313-win32.whl", hash = "sha256:ea4d56e48dc1ab2aa0a5e3c0741ad6e926529510516db7a3b6981a1ae74405e5"}, - {file = "pywin32-307-cp313-cp313-win_amd64.whl", hash = "sha256:576d09813eaf4c8168d0bfd66fb7cb3b15a61041cf41598c2db4a4583bf832d2"}, - {file = "pywin32-307-cp313-cp313-win_arm64.whl", hash = "sha256:b30c9bdbffda6a260beb2919f918daced23d32c79109412c2085cbc513338a0a"}, - {file = "pywin32-307-cp37-cp37m-win32.whl", hash = "sha256:5101472f5180c647d4525a0ed289ec723a26231550dbfd369ec19d5faf60e511"}, - {file = "pywin32-307-cp37-cp37m-win_amd64.whl", hash = "sha256:05de55a7c110478dc4b202230e98af5e0720855360d2b31a44bb4e296d795fba"}, - {file = "pywin32-307-cp38-cp38-win32.whl", hash = "sha256:13d059fb7f10792542082f5731d5d3d9645320fc38814759313e5ee97c3fac01"}, - {file = "pywin32-307-cp38-cp38-win_amd64.whl", hash = "sha256:7e0b2f93769d450a98ac7a31a087e07b126b6d571e8b4386a5762eb85325270b"}, - {file = "pywin32-307-cp39-cp39-win32.whl", hash = "sha256:55ee87f2f8c294e72ad9d4261ca423022310a6e79fb314a8ca76ab3f493854c6"}, - {file = "pywin32-307-cp39-cp39-win_amd64.whl", hash = "sha256:e9d5202922e74985b037c9ef46778335c102b74b95cec70f629453dbe7235d87"}, + {file = "pywin32-308-cp310-cp310-win32.whl", hash = "sha256:796ff4426437896550d2981b9c2ac0ffd75238ad9ea2d3bfa67a1abd546d262e"}, + {file = "pywin32-308-cp310-cp310-win_amd64.whl", hash = "sha256:4fc888c59b3c0bef905ce7eb7e2106a07712015ea1c8234b703a088d46110e8e"}, + {file = "pywin32-308-cp310-cp310-win_arm64.whl", hash = "sha256:a5ab5381813b40f264fa3495b98af850098f814a25a63589a8e9eb12560f450c"}, + {file = "pywin32-308-cp311-cp311-win32.whl", hash = "sha256:5d8c8015b24a7d6855b1550d8e660d8daa09983c80e5daf89a273e5c6fb5095a"}, + {file = "pywin32-308-cp311-cp311-win_amd64.whl", hash = "sha256:575621b90f0dc2695fec346b2d6302faebd4f0f45c05ea29404cefe35d89442b"}, + {file = "pywin32-308-cp311-cp311-win_arm64.whl", hash = "sha256:100a5442b7332070983c4cd03f2e906a5648a5104b8a7f50175f7906efd16bb6"}, + {file = "pywin32-308-cp312-cp312-win32.whl", hash = "sha256:587f3e19696f4bf96fde9d8a57cec74a57021ad5f204c9e627e15c33ff568897"}, + {file = "pywin32-308-cp312-cp312-win_amd64.whl", hash = "sha256:00b3e11ef09ede56c6a43c71f2d31857cf7c54b0ab6e78ac659497abd2834f47"}, + {file = "pywin32-308-cp312-cp312-win_arm64.whl", hash = "sha256:9b4de86c8d909aed15b7011182c8cab38c8850de36e6afb1f0db22b8959e3091"}, + {file = "pywin32-308-cp313-cp313-win32.whl", hash = "sha256:1c44539a37a5b7b21d02ab34e6a4d314e0788f1690d65b48e9b0b89f31abbbed"}, + {file = "pywin32-308-cp313-cp313-win_amd64.whl", hash = "sha256:fd380990e792eaf6827fcb7e187b2b4b1cede0585e3d0c9e84201ec27b9905e4"}, + {file = "pywin32-308-cp313-cp313-win_arm64.whl", hash = "sha256:ef313c46d4c18dfb82a2431e3051ac8f112ccee1a34f29c263c583c568db63cd"}, + {file = "pywin32-308-cp37-cp37m-win32.whl", hash = "sha256:1f696ab352a2ddd63bd07430080dd598e6369152ea13a25ebcdd2f503a38f1ff"}, + {file = "pywin32-308-cp37-cp37m-win_amd64.whl", hash = "sha256:13dcb914ed4347019fbec6697a01a0aec61019c1046c2b905410d197856326a6"}, + {file = "pywin32-308-cp38-cp38-win32.whl", hash = "sha256:5794e764ebcabf4ff08c555b31bd348c9025929371763b2183172ff4708152f0"}, + {file = "pywin32-308-cp38-cp38-win_amd64.whl", hash = "sha256:3b92622e29d651c6b783e368ba7d6722b1634b8e70bd376fd7610fe1992e19de"}, + {file = "pywin32-308-cp39-cp39-win32.whl", hash = "sha256:7873ca4dc60ab3287919881a7d4f88baee4a6e639aa6962de25a98ba6b193341"}, + {file = "pywin32-308-cp39-cp39-win_amd64.whl", hash = "sha256:71b3322d949b4cc20776436a9c9ba0eeedcbc9c650daa536df63f0ff111bb920"}, ] [[package]] @@ -3970,6 +3970,83 @@ files = [ {file = "rpds_py-0.20.0.tar.gz", hash = "sha256:d72a210824facfdaf8768cf2d7ca25a042c30320b3020de2fa04640920d4e121"}, ] +[[package]] +name = "ruamel-yaml" +version = "0.18.6" +description = "ruamel.yaml is a YAML parser/emitter that supports roundtrip preservation of comments, seq/map flow style, and map key order" +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruamel.yaml-0.18.6-py3-none-any.whl", hash = "sha256:57b53ba33def16c4f3d807c0ccbc00f8a6081827e81ba2491691b76882d0c636"}, + {file = "ruamel.yaml-0.18.6.tar.gz", hash = "sha256:8b27e6a217e786c6fbe5634d8f3f11bc63e0f80f6a5890f28863d9c45aac311b"}, +] + +[package.dependencies] +"ruamel.yaml.clib" = {version = ">=0.2.7", markers = "platform_python_implementation == \"CPython\" and python_version < \"3.13\""} + +[package.extras] +docs = ["mercurial (>5.7)", "ryd"] +jinja2 = ["ruamel.yaml.jinja2 (>=0.2)"] + +[[package]] +name = "ruamel-yaml-clib" +version = "0.2.8" +description = "C version of reader, parser and emitter for ruamel.yaml derived from libyaml" +optional = false +python-versions = ">=3.6" +files = [ + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b42169467c42b692c19cf539c38d4602069d8c1505e97b86387fcf7afb766e1d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:07238db9cbdf8fc1e9de2489a4f68474e70dffcb32232db7c08fa61ca0c7c462"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fff3573c2db359f091e1589c3d7c5fc2f86f5bdb6f24252c2d8e539d4e45f412"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-manylinux_2_24_aarch64.whl", hash = "sha256:aa2267c6a303eb483de8d02db2871afb5c5fc15618d894300b88958f729ad74f"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:840f0c7f194986a63d2c2465ca63af8ccbbc90ab1c6001b1978f05119b5e7334"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:024cfe1fc7c7f4e1aff4a81e718109e13409767e4f871443cbff3dba3578203d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win32.whl", hash = "sha256:c69212f63169ec1cfc9bb44723bf2917cbbd8f6191a00ef3410f5a7fe300722d"}, + {file = "ruamel.yaml.clib-0.2.8-cp310-cp310-win_amd64.whl", hash = "sha256:cabddb8d8ead485e255fe80429f833172b4cadf99274db39abc080e068cbcc31"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:bef08cd86169d9eafb3ccb0a39edb11d8e25f3dae2b28f5c52fd997521133069"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:b16420e621d26fdfa949a8b4b47ade8810c56002f5389970db4ddda51dbff248"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:25c515e350e5b739842fc3228d662413ef28f295791af5e5110b543cf0b57d9b"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-manylinux_2_24_aarch64.whl", hash = "sha256:1707814f0d9791df063f8c19bb51b0d1278b8e9a2353abbb676c2f685dee6afe"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:46d378daaac94f454b3a0e3d8d78cafd78a026b1d71443f4966c696b48a6d899"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:09b055c05697b38ecacb7ac50bdab2240bfca1a0c4872b0fd309bb07dc9aa3a9"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win32.whl", hash = "sha256:53a300ed9cea38cf5a2a9b069058137c2ca1ce658a874b79baceb8f892f915a7"}, + {file = "ruamel.yaml.clib-0.2.8-cp311-cp311-win_amd64.whl", hash = "sha256:c2a72e9109ea74e511e29032f3b670835f8a59bbdc9ce692c5b4ed91ccf1eedb"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:ebc06178e8821efc9692ea7544aa5644217358490145629914d8020042c24aa1"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:edaef1c1200c4b4cb914583150dcaa3bc30e592e907c01117c08b13a07255ec2"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d176b57452ab5b7028ac47e7b3cf644bcfdc8cacfecf7e71759f7f51a59e5c92"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-manylinux_2_24_aarch64.whl", hash = "sha256:1dc67314e7e1086c9fdf2680b7b6c2be1c0d8e3a8279f2e993ca2a7545fecf62"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3213ece08ea033eb159ac52ae052a4899b56ecc124bb80020d9bbceeb50258e9"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aab7fd643f71d7946f2ee58cc88c9b7bfc97debd71dcc93e03e2d174628e7e2d"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win32.whl", hash = "sha256:5c365d91c88390c8d0a8545df0b5857172824b1c604e867161e6b3d59a827eaa"}, + {file = "ruamel.yaml.clib-0.2.8-cp312-cp312-win_amd64.whl", hash = "sha256:1758ce7d8e1a29d23de54a16ae867abd370f01b5a69e1a3ba75223eaa3ca1a1b"}, + {file = "ruamel.yaml.clib-0.2.8-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5aa27bad2bb83670b71683aae140a1f52b0857a2deff56ad3f6c13a017a26ed"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c58ecd827313af6864893e7af0a3bb85fd529f862b6adbefe14643947cfe2942"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-macosx_12_0_arm64.whl", hash = "sha256:f481f16baec5290e45aebdc2a5168ebc6d35189ae6fea7a58787613a25f6e875"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_24_aarch64.whl", hash = "sha256:77159f5d5b5c14f7c34073862a6b7d34944075d9f93e681638f6d753606c6ce6"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7f67a1ee819dc4562d444bbafb135832b0b909f81cc90f7aa00260968c9ca1b3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:4ecbf9c3e19f9562c7fdd462e8d18dd902a47ca046a2e64dba80699f0b6c09b7"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:87ea5ff66d8064301a154b3933ae406b0863402a799b16e4a1d24d9fbbcbe0d3"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win32.whl", hash = "sha256:75e1ed13e1f9de23c5607fe6bd1aeaae21e523b32d83bb33918245361e9cc51b"}, + {file = "ruamel.yaml.clib-0.2.8-cp37-cp37m-win_amd64.whl", hash = "sha256:3f215c5daf6a9d7bbed4a0a4f760f3113b10e82ff4c5c44bec20a68c8014f675"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1b617618914cb00bf5c34d4357c37aa15183fa229b24767259657746c9077615"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:a6a9ffd280b71ad062eae53ac1659ad86a17f59a0fdc7699fd9be40525153337"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_24_aarch64.whl", hash = "sha256:305889baa4043a09e5b76f8e2a51d4ffba44259f6b4c72dec8ca56207d9c6fe1"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:700e4ebb569e59e16a976857c8798aee258dceac7c7d6b50cab63e080058df91"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:e2b4c44b60eadec492926a7270abb100ef9f72798e18743939bdbf037aab8c28"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e79e5db08739731b0ce4850bed599235d601701d5694c36570a99a0c5ca41a9d"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win32.whl", hash = "sha256:955eae71ac26c1ab35924203fda6220f84dce57d6d7884f189743e2abe3a9fbe"}, + {file = "ruamel.yaml.clib-0.2.8-cp38-cp38-win_amd64.whl", hash = "sha256:56f4252222c067b4ce51ae12cbac231bce32aee1d33fbfc9d17e5b8d6966c312"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:03d1162b6d1df1caa3a4bd27aa51ce17c9afc2046c31b0ad60a0a96ec22f8001"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:bba64af9fa9cebe325a62fa398760f5c7206b215201b0ec825005f1b18b9bccf"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_24_aarch64.whl", hash = "sha256:a1a45e0bb052edf6a1d3a93baef85319733a888363938e1fc9924cb00c8df24c"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:da09ad1c359a728e112d60116f626cc9f29730ff3e0e7db72b9a2dbc2e4beed5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:184565012b60405d93838167f425713180b949e9d8dd0bbc7b49f074407c5a8b"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a75879bacf2c987c003368cf14bed0ffe99e8e85acfa6c0bfffc21a090f16880"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win32.whl", hash = "sha256:84b554931e932c46f94ab306913ad7e11bba988104c5cff26d90d03f68258cd5"}, + {file = "ruamel.yaml.clib-0.2.8-cp39-cp39-win_amd64.whl", hash = "sha256:25ac8c08322002b06fa1d49d1646181f0b2c72f5cbc15a85e80b4c30a544bb15"}, + {file = "ruamel.yaml.clib-0.2.8.tar.gz", hash = "sha256:beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512"}, +] + [[package]] name = "ruff" version = "0.5.7" @@ -4916,103 +4993,109 @@ files = [ [[package]] name = "yarl" -version = "1.14.0" +version = "1.15.2" description = "Yet another URL library" optional = false python-versions = ">=3.8" files = [ - {file = "yarl-1.14.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:1bfc25aa6a7c99cf86564210f79a0b7d4484159c67e01232b116e445b3036547"}, - {file = "yarl-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0cf21f46a15d445417de8fc89f2568852cf57fe8ca1ab3d19ddb24d45c0383ae"}, - {file = "yarl-1.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1dda53508df0de87b6e6b0a52d6718ff6c62a5aca8f5552748404963df639269"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:587c3cc59bc148a9b1c07a019346eda2549bc9f468acd2f9824d185749acf0a6"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3007a5b75cb50140708420fe688c393e71139324df599434633019314ceb8b59"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:06ff23462398333c78b6f4f8d3d70410d657a471c2c5bbe6086133be43fc8f1a"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:689a99a42ee4583fcb0d3a67a0204664aa1539684aed72bdafcbd505197a91c4"}, - {file = "yarl-1.14.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0547ab1e9345dc468cac8368d88ea4c5bd473ebc1d8d755347d7401982b5dd8"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:742aef0a99844faaac200564ea6f5e08facb285d37ea18bd1a5acf2771f3255a"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:176110bff341b6730f64a1eb3a7070e12b373cf1c910a9337e7c3240497db76f"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:46a9772a1efa93f9cd170ad33101c1817c77e0e9914d4fe33e2da299d7cf0f9b"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:ee2c68e4f2dd1b1c15b849ba1c96fac105fca6ffdb7c1e8be51da6fabbdeafb9"}, - {file = "yarl-1.14.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:047b258e00b99091b6f90355521f026238c63bd76dcf996d93527bb13320eefd"}, - {file = "yarl-1.14.0-cp310-cp310-win32.whl", hash = "sha256:0aa92e3e30a04f9462a25077db689c4ac5ea9ab6cc68a2e563881b987d42f16d"}, - {file = "yarl-1.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:d9baec588f015d0ee564057aa7574313c53a530662ffad930b7886becc85abdf"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:07f9eaf57719d6721ab15805d85f4b01a5b509a0868d7320134371bcb652152d"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c14b504a74e58e2deb0378b3eca10f3d076635c100f45b113c18c770b4a47a50"}, - {file = "yarl-1.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:16a682a127930f3fc4e42583becca6049e1d7214bcad23520c590edd741d2114"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73bedd2be05f48af19f0f2e9e1353921ce0c83f4a1c9e8556ecdcf1f1eae4892"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3ab950f8814f3b7b5e3eebc117986f817ec933676f68f0a6c5b2137dd7c9c69"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b693c63e7e64b524f54aa4888403c680342d1ad0d97be1707c531584d6aeeb4f"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85cb3e40eaa98489f1e2e8b29f5ad02ee1ee40d6ce6b88d50cf0f205de1d9d2c"}, - {file = "yarl-1.14.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f24f08b6c9b9818fd80612c97857d28f9779f0d1211653ece9844fc7b414df2"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:29a84a46ec3ebae7a1c024c055612b11e9363a8a23238b3e905552d77a2bc51b"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5cd5dad8366e0168e0fd23d10705a603790484a6dbb9eb272b33673b8f2cce72"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a152751af7ef7b5d5fa6d215756e508dd05eb07d0cf2ba51f3e740076aa74373"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3d569f877ed9a708e4c71a2d13d2940cb0791da309f70bd970ac1a5c088a0a92"}, - {file = "yarl-1.14.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6a615cad11ec3428020fb3c5a88d85ce1b5c69fd66e9fcb91a7daa5e855325dd"}, - {file = "yarl-1.14.0-cp311-cp311-win32.whl", hash = "sha256:bab03192091681d54e8225c53f270b0517637915d9297028409a2a5114ff4634"}, - {file = "yarl-1.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:985623575e5c4ea763056ffe0e2d63836f771a8c294b3de06d09480538316b13"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fc2c80bc87fba076e6cbb926216c27fba274dae7100a7b9a0983b53132dd99f2"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:55c144d363ad4626ca744556c049c94e2b95096041ac87098bb363dcc8635e8d"}, - {file = "yarl-1.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b03384eed107dbeb5f625a99dc3a7de8be04fc8480c9ad42fccbc73434170b20"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f72a0d746d38cb299b79ce3d4d60ba0892c84bbc905d0d49c13df5bace1b65f8"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8648180b34faaea4aa5b5ca7e871d9eb1277033fa439693855cf0ea9195f85f1"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9557c9322aaa33174d285b0c1961fb32499d65ad1866155b7845edc876c3c835"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f50eb3837012a937a2b649ec872b66ba9541ad9d6f103ddcafb8231cfcafd22"}, - {file = "yarl-1.14.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8892fa575ac9b1b25fae7b221bc4792a273877b9b56a99ee2d8d03eeb3dbb1d2"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6a2c5c5bb2556dfbfffffc2bcfb9c235fd2b566d5006dfb2a37afc7e3278a07"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ab3abc0b78a5dfaa4795a6afbe7b282b6aa88d81cf8c1bb5e394993d7cae3457"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:47eede5d11d669ab3759b63afb70d28d5328c14744b8edba3323e27dc52d298d"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:fe4d2536c827f508348d7b40c08767e8c7071614250927233bf0c92170451c0a"}, - {file = "yarl-1.14.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0fd7b941dd1b00b5f0acb97455fea2c4b7aac2dd31ea43fb9d155e9bc7b78664"}, - {file = "yarl-1.14.0-cp312-cp312-win32.whl", hash = "sha256:99ff3744f5fe48288be6bc402533b38e89749623a43208e1d57091fc96b783b9"}, - {file = "yarl-1.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:1ca3894e9e9f72da93544f64988d9c052254a338a9f855165f37f51edb6591de"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d02d700705d67e09e1f57681f758f0b9d4412eeb70b2eb8d96ca6200b486db3"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:30600ba5db60f7c0820ef38a2568bb7379e1418ecc947a0f76fd8b2ff4257a97"}, - {file = "yarl-1.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e85d86527baebb41a214cc3b45c17177177d900a2ad5783dbe6f291642d4906f"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37001e5d4621cef710c8dc1429ca04e189e572f128ab12312eab4e04cf007132"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f4f4547944d4f5cfcdc03f3f097d6f05bbbc915eaaf80a2ee120d0e756de377d"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ff4c819757f9bdb35de049a509814d6ce851fe26f06eb95a392a5640052482"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ac1a09392ed6e3fd14be880d39b951d7b981fd135416db7d18a6208c536561"}, - {file = "yarl-1.14.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96952f642ac69075e44c7d0284528938fdff39422a1d90d3e45ce40b72e5e2d9"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a56fbe3d7f3bce1d060ea18d2413a2ca9ca814eea7cedc4d247b5f338d54844e"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7e2637d75e92763d1322cb5041573279ec43a80c0f7fbbd2d64f5aee98447b17"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:9abe80ae2c9d37c17599557b712e6515f4100a80efb2cda15f5f070306477cd2"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:217a782020b875538eebf3948fac3a7f9bbbd0fd9bf8538f7c2ad7489e80f4e8"}, - {file = "yarl-1.14.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b9cfef3f14f75bf6aba73a76caf61f9d00865912a04a4393c468a7ce0981b519"}, - {file = "yarl-1.14.0-cp313-cp313-win32.whl", hash = "sha256:d8361c7d04e6a264481f0b802e395f647cd3f8bbe27acfa7c12049efea675bd1"}, - {file = "yarl-1.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:bc24f968b82455f336b79bf37dbb243b7d76cd40897489888d663d4e028f5069"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:91d875f75fabf76b3018c5f196bf3d308ed2b49ddcb46c1576d6b075754a1393"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4009def9be3a7e5175db20aa2d7307ecd00bbf50f7f0f989300710eee1d0b0b9"}, - {file = "yarl-1.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:582cedde49603f139be572252a318b30dc41039bc0b8165f070f279e5d12187f"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dbd9ff43a04f8ffe8a959a944c2dca10d22f5f99fc6a459f49c3ebfb409309d9"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9f805e37ed16cc212fdc538a608422d7517e7faf539bedea4fe69425bc55d76"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:95e16e9eaa2d7f5d87421b8fe694dd71606aa61d74b824c8d17fc85cc51983d1"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:816d24f584edefcc5ca63428f0b38fee00b39fe64e3c5e558f895a18983efe96"}, - {file = "yarl-1.14.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd2660c01367eb3ef081b8fa0a5da7fe767f9427aa82023a961a5f28f0d4af6c"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:94b2bb9bcfd5be9d27004ea4398fb640373dd0c1a9e219084f42c08f77a720ab"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c2089a9afef887664115f7fa6d3c0edd6454adaca5488dba836ca91f60401075"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:2192f718db4a8509f63dd6d950f143279211fa7e6a2c612edc17d85bf043d36e"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:8385ab36bf812e9d37cf7613999a87715f27ef67a53f0687d28c44b819df7cb0"}, - {file = "yarl-1.14.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b4c1ecba93e7826dc71ddba75fb7740cdb52e7bd0be9f03136b83f54e6a1f511"}, - {file = "yarl-1.14.0-cp38-cp38-win32.whl", hash = "sha256:e749af6c912a7bb441d105c50c1a3da720474e8acb91c89350080dd600228f0e"}, - {file = "yarl-1.14.0-cp38-cp38-win_amd64.whl", hash = "sha256:147e36331f6f63e08a14640acf12369e041e0751bb70d9362df68c2d9dcf0c87"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a9f917966d27f7ce30039fe8d900f913c5304134096554fd9bea0774bcda6d1"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a2f8fb7f944bcdfecd4e8d855f84c703804a594da5123dd206f75036e536d4d"}, - {file = "yarl-1.14.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f4e475f29a9122f908d0f1f706e1f2fc3656536ffd21014ff8a6f2e1b14d1d8"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8089d4634d8fa2b1806ce44fefa4979b1ab2c12c0bc7ef3dfa45c8a374811348"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1b16f6c75cffc2dc0616ea295abb0e1967601bd1fb1e0af6a1de1c6c887f3439"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498b3c55087b9d762636bca9b45f60d37e51d24341786dc01b81253f9552a607"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3f8bfc1db82589ef965ed234b87de30d140db8b6dc50ada9e33951ccd8ec07a"}, - {file = "yarl-1.14.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:625f207b1799e95e7c823f42f473c1e9dbfb6192bd56bba8695656d92be4535f"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:781e2495e408a81e4eaeedeb41ba32b63b1980dddf8b60dbbeff6036bcd35049"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:659603d26d40dd4463200df9bfbc339fbfaed3fe32e5c432fe1dc2b5d4aa94b4"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:4e0d45ebf975634468682c8bec021618b3ad52c37619e5c938f8f831fa1ac5c0"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a2e4725a08cb2b4794db09e350c86dee18202bb8286527210e13a1514dc9a59a"}, - {file = "yarl-1.14.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:19268b4fec1d7760134f2de46ef2608c2920134fb1fa61e451f679e41356dc55"}, - {file = "yarl-1.14.0-cp39-cp39-win32.whl", hash = "sha256:337912bcdcf193ade64b9aae5a4017a0a1950caf8ca140362e361543c6773f21"}, - {file = "yarl-1.14.0-cp39-cp39-win_amd64.whl", hash = "sha256:b6d0147574ce2e7b812c989e50fa72bbc5338045411a836bd066ce5fc8ac0bce"}, - {file = "yarl-1.14.0-py3-none-any.whl", hash = "sha256:c8ed4034f0765f8861620c1f2f2364d2e58520ea288497084dae880424fc0d9f"}, - {file = "yarl-1.14.0.tar.gz", hash = "sha256:88c7d9d58aab0724b979ab5617330acb1c7030b79379c8138c1c8c94e121d1b3"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e4ee8b8639070ff246ad3649294336b06db37a94bdea0d09ea491603e0be73b8"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a7cf963a357c5f00cb55b1955df8bbe68d2f2f65de065160a1c26b85a1e44172"}, + {file = "yarl-1.15.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:43ebdcc120e2ca679dba01a779333a8ea76b50547b55e812b8b92818d604662c"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3433da95b51a75692dcf6cc8117a31410447c75a9a8187888f02ad45c0a86c50"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:38d0124fa992dbacd0c48b1b755d3ee0a9f924f427f95b0ef376556a24debf01"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ded1b1803151dd0f20a8945508786d57c2f97a50289b16f2629f85433e546d47"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace4cad790f3bf872c082366c9edd7f8f8f77afe3992b134cfc810332206884f"}, + {file = "yarl-1.15.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c77494a2f2282d9bbbbcab7c227a4d1b4bb829875c96251f66fb5f3bae4fb053"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b7f227ca6db5a9fda0a2b935a2ea34a7267589ffc63c8045f0e4edb8d8dcf956"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:31561a5b4d8dbef1559b3600b045607cf804bae040f64b5f5bca77da38084a8a"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3e52474256a7db9dcf3c5f4ca0b300fdea6c21cca0148c8891d03a025649d935"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0e1af74a9529a1137c67c887ed9cde62cff53aa4d84a3adbec329f9ec47a3936"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:15c87339490100c63472a76d87fe7097a0835c705eb5ae79fd96e343473629ed"}, + {file = "yarl-1.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:74abb8709ea54cc483c4fb57fb17bb66f8e0f04438cff6ded322074dbd17c7ec"}, + {file = "yarl-1.15.2-cp310-cp310-win32.whl", hash = "sha256:ffd591e22b22f9cb48e472529db6a47203c41c2c5911ff0a52e85723196c0d75"}, + {file = "yarl-1.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:1695497bb2a02a6de60064c9f077a4ae9c25c73624e0d43e3aa9d16d983073c2"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9fcda20b2de7042cc35cf911702fa3d8311bd40055a14446c1e62403684afdc5"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0545de8c688fbbf3088f9e8b801157923be4bf8e7b03e97c2ecd4dfa39e48e0e"}, + {file = "yarl-1.15.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fbda058a9a68bec347962595f50546a8a4a34fd7b0654a7b9697917dc2bf810d"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1ac2bc069f4a458634c26b101c2341b18da85cb96afe0015990507efec2e417"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd126498171f752dd85737ab1544329a4520c53eed3997f9b08aefbafb1cc53b"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3db817b4e95eb05c362e3b45dafe7144b18603e1211f4a5b36eb9522ecc62bcf"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:076b1ed2ac819933895b1a000904f62d615fe4533a5cf3e052ff9a1da560575c"}, + {file = "yarl-1.15.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f8cfd847e6b9ecf9f2f2531c8427035f291ec286c0a4944b0a9fce58c6446046"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:32b66be100ac5739065496c74c4b7f3015cef792c3174982809274d7e51b3e04"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:34a2d76a1984cac04ff8b1bfc939ec9dc0914821264d4a9c8fd0ed6aa8d4cfd2"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0afad2cd484908f472c8fe2e8ef499facee54a0a6978be0e0cff67b1254fd747"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c68e820879ff39992c7f148113b46efcd6ec765a4865581f2902b3c43a5f4bbb"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:98f68df80ec6ca3015186b2677c208c096d646ef37bbf8b49764ab4a38183931"}, + {file = "yarl-1.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c56ec1eacd0a5d35b8a29f468659c47f4fe61b2cab948ca756c39b7617f0aa5"}, + {file = "yarl-1.15.2-cp311-cp311-win32.whl", hash = "sha256:eedc3f247ee7b3808ea07205f3e7d7879bc19ad3e6222195cd5fbf9988853e4d"}, + {file = "yarl-1.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:0ccaa1bc98751fbfcf53dc8dfdb90d96e98838010fc254180dd6707a6e8bb179"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:82d5161e8cb8f36ec778fd7ac4d740415d84030f5b9ef8fe4da54784a1f46c94"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa2bea05ff0a8fb4d8124498e00e02398f06d23cdadd0fe027d84a3f7afde31e"}, + {file = "yarl-1.15.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:99e12d2bf587b44deb74e0d6170fec37adb489964dbca656ec41a7cd8f2ff178"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:243fbbbf003754fe41b5bdf10ce1e7f80bcc70732b5b54222c124d6b4c2ab31c"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:856b7f1a7b98a8c31823285786bd566cf06226ac4f38b3ef462f593c608a9bd6"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:553dad9af802a9ad1a6525e7528152a015b85fb8dbf764ebfc755c695f488367"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:30c3ff305f6e06650a761c4393666f77384f1cc6c5c0251965d6bfa5fbc88f7f"}, + {file = "yarl-1.15.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:353665775be69bbfc6d54c8d134bfc533e332149faeddd631b0bc79df0897f46"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f4fe99ce44128c71233d0d72152db31ca119711dfc5f2c82385ad611d8d7f897"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:9c1e3ff4b89cdd2e1a24c214f141e848b9e0451f08d7d4963cb4108d4d798f1f"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:711bdfae4e699a6d4f371137cbe9e740dc958530cb920eb6f43ff9551e17cfbc"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4388c72174868884f76affcdd3656544c426407e0043c89b684d22fb265e04a5"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f0e1844ad47c7bd5d6fa784f1d4accc5f4168b48999303a868fe0f8597bde715"}, + {file = "yarl-1.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a5cafb02cf097a82d74403f7e0b6b9df3ffbfe8edf9415ea816314711764a27b"}, + {file = "yarl-1.15.2-cp312-cp312-win32.whl", hash = "sha256:156ececdf636143f508770bf8a3a0498de64da5abd890c7dbb42ca9e3b6c05b8"}, + {file = "yarl-1.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:435aca062444a7f0c884861d2e3ea79883bd1cd19d0a381928b69ae1b85bc51d"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:416f2e3beaeae81e2f7a45dc711258be5bdc79c940a9a270b266c0bec038fb84"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:173563f3696124372831007e3d4b9821746964a95968628f7075d9231ac6bb33"}, + {file = "yarl-1.15.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9ce2e0f6123a60bd1a7f5ae3b2c49b240c12c132847f17aa990b841a417598a2"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaea112aed589131f73d50d570a6864728bd7c0c66ef6c9154ed7b59f24da611"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4ca3b9f370f218cc2a0309542cab8d0acdfd66667e7c37d04d617012485f904"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23ec1d3c31882b2a8a69c801ef58ebf7bae2553211ebbddf04235be275a38548"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75119badf45f7183e10e348edff5a76a94dc19ba9287d94001ff05e81475967b"}, + {file = "yarl-1.15.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78e6fdc976ec966b99e4daa3812fac0274cc28cd2b24b0d92462e2e5ef90d368"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8657d3f37f781d987037f9cc20bbc8b40425fa14380c87da0cb8dfce7c92d0fb"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:93bed8a8084544c6efe8856c362af08a23e959340c87a95687fdbe9c9f280c8b"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:69d5856d526802cbda768d3e6246cd0d77450fa2a4bc2ea0ea14f0d972c2894b"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ccad2800dfdff34392448c4bf834be124f10a5bc102f254521d931c1c53c455a"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:a880372e2e5dbb9258a4e8ff43f13888039abb9dd6d515f28611c54361bc5644"}, + {file = "yarl-1.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c998d0558805860503bc3a595994895ca0f7835e00668dadc673bbf7f5fbfcbe"}, + {file = "yarl-1.15.2-cp313-cp313-win32.whl", hash = "sha256:533a28754e7f7439f217550a497bb026c54072dbe16402b183fdbca2431935a9"}, + {file = "yarl-1.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:5838f2b79dc8f96fdc44077c9e4e2e33d7089b10788464609df788eb97d03aad"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:fbbb63bed5fcd70cd3dd23a087cd78e4675fb5a2963b8af53f945cbbca79ae16"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e2e93b88ecc8f74074012e18d679fb2e9c746f2a56f79cd5e2b1afcf2a8a786b"}, + {file = "yarl-1.15.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af8ff8d7dc07ce873f643de6dfbcd45dc3db2c87462e5c387267197f59e6d776"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:66f629632220a4e7858b58e4857927dd01a850a4cef2fb4044c8662787165cf7"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:833547179c31f9bec39b49601d282d6f0ea1633620701288934c5f66d88c3e50"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2aa738e0282be54eede1e3f36b81f1e46aee7ec7602aa563e81e0e8d7b67963f"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a13a07532e8e1c4a5a3afff0ca4553da23409fad65def1b71186fb867eeae8d"}, + {file = "yarl-1.15.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c45817e3e6972109d1a2c65091504a537e257bc3c885b4e78a95baa96df6a3f8"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:670eb11325ed3a6209339974b276811867defe52f4188fe18dc49855774fa9cf"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:d417a4f6943112fae3924bae2af7112562285848d9bcee737fc4ff7cbd450e6c"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bc8936d06cd53fddd4892677d65e98af514c8d78c79864f418bbf78a4a2edde4"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:954dde77c404084c2544e572f342aef384240b3e434e06cecc71597e95fd1ce7"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5bc0df728e4def5e15a754521e8882ba5a5121bd6b5a3a0ff7efda5d6558ab3d"}, + {file = "yarl-1.15.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:b71862a652f50babab4a43a487f157d26b464b1dedbcc0afda02fd64f3809d04"}, + {file = "yarl-1.15.2-cp38-cp38-win32.whl", hash = "sha256:63eab904f8630aed5a68f2d0aeab565dcfc595dc1bf0b91b71d9ddd43dea3aea"}, + {file = "yarl-1.15.2-cp38-cp38-win_amd64.whl", hash = "sha256:2cf441c4b6e538ba0d2591574f95d3fdd33f1efafa864faa077d9636ecc0c4e9"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a32d58f4b521bb98b2c0aa9da407f8bd57ca81f34362bcb090e4a79e9924fefc"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:766dcc00b943c089349d4060b935c76281f6be225e39994c2ccec3a2a36ad627"}, + {file = "yarl-1.15.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bed1b5dbf90bad3bfc19439258c97873eab453c71d8b6869c136346acfe497e7"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed20a4bdc635f36cb19e630bfc644181dd075839b6fc84cac51c0f381ac472e2"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d538df442c0d9665664ab6dd5fccd0110fa3b364914f9c85b3ef9b7b2e157980"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c6cf1d92edf936ceedc7afa61b07e9d78a27b15244aa46bbcd534c7458ee1b"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce44217ad99ffad8027d2fde0269ae368c86db66ea0571c62a000798d69401fb"}, + {file = "yarl-1.15.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47a6000a7e833ebfe5886b56a31cb2ff12120b1efd4578a6fcc38df16cc77bd"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e52f77a0cd246086afde8815039f3e16f8d2be51786c0a39b57104c563c5cbb0"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:f9ca0e6ce7774dc7830dc0cc4bb6b3eec769db667f230e7c770a628c1aa5681b"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:136f9db0f53c0206db38b8cd0c985c78ded5fd596c9a86ce5c0b92afb91c3a19"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:173866d9f7409c0fb514cf6e78952e65816600cb888c68b37b41147349fe0057"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:6e840553c9c494a35e449a987ca2c4f8372668ee954a03a9a9685075228e5036"}, + {file = "yarl-1.15.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:458c0c65802d816a6b955cf3603186de79e8fdb46d4f19abaec4ef0a906f50a7"}, + {file = "yarl-1.15.2-cp39-cp39-win32.whl", hash = "sha256:5b48388ded01f6f2429a8c55012bdbd1c2a0c3735b3e73e221649e524c34a58d"}, + {file = "yarl-1.15.2-cp39-cp39-win_amd64.whl", hash = "sha256:81dadafb3aa124f86dc267a2168f71bbd2bfb163663661ab0038f6e4b8edb810"}, + {file = "yarl-1.15.2-py3-none-any.whl", hash = "sha256:0d3105efab7c5c091609abacad33afff33bdff0035bece164c98bcf5a85ef90a"}, + {file = "yarl-1.15.2.tar.gz", hash = "sha256:a39c36f4218a5bb668b4f06874d676d35a035ee668e6e7e3538835c703634b84"}, ] [package.dependencies] @@ -5042,4 +5125,4 @@ type = ["pytest-mypy"] [metadata] lock-version = "2.0" python-versions = ">=3.12,<3.13" -content-hash = "5e2b7b0525a2378b4df6aba6ed141835aa9ed61bf803c16e6b99621069723b92" +content-hash = "d314acb39fa48742da35437160d180810ec9edcedbb11ac783a858ccb5ebbbd6" diff --git a/agents-api/pyproject.toml b/agents-api/pyproject.toml index f22c25bd8..25ca4ee7e 100644 --- a/agents-api/pyproject.toml +++ b/agents-api/pyproject.toml @@ -32,7 +32,6 @@ pydantic-partial = "^0.5.5" simpleeval = "^0.9.13" lz4 = "^4.3.3" -pyyaml = "^6.0.2" google-re2 = "^1.1.20240702" scalar-fastapi = "^1.0.3" sse-starlette = "^2.1.3" @@ -41,6 +40,8 @@ python-box = {extras = ["toml"], version = "^7.2.0"} prometheus-fastapi-instrumentator = "^7.0.0" boto3 = "^1.35.39" xxhash = "^3.5.0" +ruamel-yaml = "^0.18.6" + [tool.poetry.group.dev.dependencies] ipython = "^8.26.0" ruff = "^0.5.5" diff --git a/agents-api/tests/test_execution_workflow.py b/agents-api/tests/test_execution_workflow.py index f8a89cb62..f4fe00b0e 100644 --- a/agents-api/tests/test_execution_workflow.py +++ b/agents-api/tests/test_execution_workflow.py @@ -1,6 +1,7 @@ # Tests for task queries import asyncio +import json from unittest.mock import patch import yaml @@ -559,6 +560,79 @@ async def _( assert result["hello"] == data.input["test"] +@test("workflow: tool call api_call test retry") +async def _( + client=cozo_client, + developer_id=test_developer_id, + agent=test_agent, +): + data = CreateExecutionRequest(input={"test": "input"}) + status_codes_to_retry = ",".join(str(code) for code in (408, 429, 503, 504)) + + task = create_task( + developer_id=developer_id, + agent_id=agent.id, + data=CreateTaskRequest( + **{ + "name": "test task", + "description": "test task about", + "input_schema": {"type": "object", "additionalProperties": True}, + "tools": [ + { + "type": "api_call", + "name": "hello", + "api_call": { + "method": "GET", + "url": f"https://httpbin.org/status/{status_codes_to_retry}", + }, + } + ], + "main": [ + { + "tool": "hello", + "arguments": { + "params": {"test": "_.test"}, + }, + }, + ], + } + ), + client=client, + ) + + async with patch_testing_temporal() as (_, mock_run_task_execution_workflow): + execution, handle = await start_execution( + developer_id=developer_id, + task_id=task.id, + data=data, + client=client, + ) + + assert handle is not None + mock_run_task_execution_workflow.assert_called_once() + + # Let it run for a bit + result_coroutine = handle.result() + task = asyncio.create_task(result_coroutine) + try: + await asyncio.wait_for(task, timeout=3) + except BaseException: + task.cancel() + + # Get the history + history = await handle.fetch_history() + events = [MessageToDict(e) for e in history.events] + assert len(events) > 0 + + # NOTE: super janky but works + events_strings = [json.dumps(event) for event in events] + num_retries = len( + [event for event in events_strings if "execute_api_call" in event] + ) + + assert num_retries >= 2 + + @test("workflow: tool call integration dummy") async def _( client=cozo_client, diff --git a/cookbooks/E_commerce_Order_Processing_Workflow.ipynb b/cookbooks/E_commerce_Order_Processing_Workflow.ipynb new file mode 100644 index 000000000..bf4e741ca --- /dev/null +++ b/cookbooks/E_commerce_Order_Processing_Workflow.ipynb @@ -0,0 +1,381 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "code", + "source": [ + "import uuid\n", + "import yaml\n", + "import time\n", + "from julep import Client" + ], + "metadata": { + "id": "QIJXVEzBYrRv" + }, + "execution_count": 3, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "AGENT_UUID = uuid.uuid4()\n", + "ORDER_PLACEMENT_TASK_UUID = uuid.uuid4()\n", + "INVENTORY_CHECK_TASK_UUID = uuid.uuid4()\n", + "PAYMENT_PROCESSING_TASK_UUID = uuid.uuid4()\n", + "SHIPMENT_TRACKING_TASK_UUID = uuid.uuid4()" + ], + "metadata": { + "id": "tCqfsDHuYu4V" + }, + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "api_key = \"\" # Your API key here\n", + "client = Client(api_key=api_key, environment=\"dev\")" + ], + "metadata": { + "id": "mSBH1k6OYxUW" + }, + "execution_count": 5, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "agent = client.agents.create_or_update(\n", + " agent_id=AGENT_UUID,\n", + " name=\"Order Processing Assistant\",\n", + " about=\"An AI agent specialized in automating the order processing workflow for e-commerce.\",\n", + " model=\"gpt-4o\",\n", + ")" + ], + "metadata": { + "id": "loTLYbQ8Y1i5" + }, + "execution_count": 6, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "order_placement_task_def = yaml.safe_load(\"\"\"\n", + "name: Order Placement\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_id:\n", + " type: string\n", + " order_details:\n", + " type: object\n", + " properties:\n", + " item_id:\n", + " type: integer\n", + " quantity:\n", + " type: integer\n", + "\n", + "main:\n", + "- prompt:\n", + " - role: system\n", + " content: >-\n", + " You are an order placement assistant. Process the following order:\n", + " User ID: {{inputs[0].user_id}}\n", + " Order Details: {{inputs[0].order_details}}\n", + "\n", + " Confirm the order placement and return the order ID.\n", + " unwrap: true\n", + "\n", + "- evaluate:\n", + " order_id: _.uuid()\n", + "\n", + "- return:\n", + " order_id: _\n", + "\"\"\")" + ], + "metadata": { + "id": "UDsmzc_pY4Dx" + }, + "execution_count": 7, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "order_placement_task = client.tasks.create_or_update(\n", + " task_id=ORDER_PLACEMENT_TASK_UUID,\n", + " agent_id=AGENT_UUID,\n", + " **order_placement_task_def\n", + ")\n" + ], + "metadata": { + "id": "cc76A2UxY-Z7" + }, + "execution_count": 8, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "inventory_check_task_def = yaml.safe_load(\"\"\"\n", + "name: Inventory Check\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " item_id:\n", + " type: integer\n", + " quantity:\n", + " type: integer\n", + "\n", + "main:\n", + "- prompt:\n", + " - role: system\n", + " content: >-\n", + " You are an inventory checker. Check the availability of the following item:\n", + " Item ID: {{inputs[0].item_id}}\n", + " Quantity Requested: {{inputs[0].quantity}}\n", + "\n", + " Return true if available, otherwise return false.\n", + " unwrap: true\n", + "\"\"\")\n", + "\n" + ], + "metadata": { + "id": "uCdVhA98ZBPB" + }, + "execution_count": 9, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "inventory_check_task = client.tasks.create_or_update(\n", + " task_id=INVENTORY_CHECK_TASK_UUID,\n", + " agent_id=AGENT_UUID,\n", + " **inventory_check_task_def\n", + ")\n" + ], + "metadata": { + "id": "ZICp9jXiZEgO" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "payment_processing_task_def = yaml.safe_load(\"\"\"\n", + "name: Payment Processing\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " user_id:\n", + " type: string\n", + " order_id:\n", + " type: string\n", + " amount:\n", + " type: number\n", + "\n", + "main:\n", + "- prompt:\n", + " - role: system\n", + " content: >-\n", + " You are a payment processor. Process payment for the following order:\n", + " User ID: {{inputs[0].user_id}}\n", + " Order ID: {{inputs[0].order_id}}\n", + " Amount: {{inputs[0].amount}}\n", + "\n", + " Confirm payment status (success or failure).\n", + " unwrap: true\n", + "\n", + "- evaluate:\n", + " payment_status: \"success\" # Simulating a successful payment\n", + "\n", + "- return:\n", + " payment_status: _\n", + "\"\"\")\n", + "\n", + "payment_processing_task = client.tasks.create_or_update(\n", + " task_id=PAYMENT_PROCESSING_TASK_UUID,\n", + " agent_id=AGENT_UUID,\n", + " **payment_processing_task_def\n", + ")\n", + "\n", + "shipment_tracking_task_def = yaml.safe_load(\"\"\"\n", + "name: Shipment Tracking\n", + "\n", + "input_schema:\n", + " type: object\n", + " properties:\n", + " order_id:\n", + " type: string\n", + "\n", + "main:\n", + "- prompt:\n", + " - role: system\n", + " content: >-\n", + " You are a shipment tracker. Track the shipment for the following order:\n", + " Order ID: {{inputs[0].order_id}}\n", + "\n", + " Return the current status of the shipment.\n", + " unwrap: true\n", + "\"\"\")\n" + ], + "metadata": { + "id": "lr0M9XWKZG9N" + }, + "execution_count": 11, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "shipment_tracking_task = client.tasks.create_or_update(\n", + " task_id=SHIPMENT_TRACKING_TASK_UUID,\n", + " agent_id=AGENT_UUID,\n", + " **shipment_tracking_task_def\n", + ")" + ], + "metadata": { + "id": "-k0Wl-o8ZJw7" + }, + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "def place_order(user_id, item_id, quantity):\n", + " execution = client.executions.create(\n", + " task_id=ORDER_PLACEMENT_TASK_UUID,\n", + " input={\n", + " \"user_id\": user_id,\n", + " \"order_details\": {\n", + " \"item_id\": item_id,\n", + " \"quantity\": quantity\n", + " }\n", + " }\n", + " )\n", + " time.sleep(2)\n", + " result = client.executions.get(execution.id)\n", + " output = client.executions.transitions.list(execution_id=result.id).items[0].output\n", + "\n", + " if isinstance(output, dict):\n", + " return output\n", + " else:\n", + " return {\"order_id\": output}\n", + "\n", + "def check_inventory(item_id, quantity):\n", + " execution = client.executions.create(\n", + " task_id=INVENTORY_CHECK_TASK_UUID,\n", + " input={\n", + " \"item_id\": item_id,\n", + " \"quantity\": quantity\n", + " }\n", + " )\n", + " time.sleep(2)\n", + " result = client.executions.get(execution.id)\n", + " return client.executions.transitions.list(execution_id=result.id).items[0].output\n", + "\n", + "def process_payment(user_id, order_id, amount):\n", + " execution = client.executions.create(\n", + " task_id=PAYMENT_PROCESSING_TASK_UUID,\n", + " input={\n", + " \"user_id\": user_id,\n", + " \"order_id\": order_id,\n", + " \"amount\": amount\n", + " }\n", + " )\n", + " time.sleep(2)\n", + " result = client.executions.get(execution.id)\n", + " return client.executions.transitions.list(execution_id=result.id).items[0].output\n", + "\n", + "def track_shipment(order_id):\n", + " execution = client.executions.create(\n", + " task_id=SHIPMENT_TRACKING_TASK_UUID,\n", + " input={\n", + " \"order_id\": order_id\n", + " }\n", + " )\n", + " time.sleep(2)\n", + " result = client.executions.get(execution.id)\n", + " return client.executions.transitions.list(execution_id=result.id).items[0].output\n" + ], + "metadata": { + "id": "6iM6NqwlZMTD" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "print(\"Demonstrating E-commerce Order Processing Workflow:\")\n", + "\n", + "user_id = \"user123\"\n", + "item_id = 1\n", + "quantity = 2\n", + "amount = 49.99\n", + "\n", + "is_available = check_inventory(item_id, quantity)\n", + "if is_available:\n", + " print(f\"Inventory Check: Item {item_id} is available.\")\n", + " order_result = place_order(user_id, item_id, quantity)\n", + " print(f\"Order Result: {order_result}\")\n", + " payment_result = process_payment(user_id, order_result[\"order_id\"], amount)\n", + " print(f\"Payment Status: {payment_result}\")\n", + " shipment_result = track_shipment(order_result[\"order_id\"])\n", + " print(f\"Shipment Status: {shipment_result}\")\n", + "else:\n", + " print(f\"Inventory Check: Item {item_id} is not available.\")\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "FTDf1VaMZQ3f", + "outputId": "a358feb6-2630-4a2c-d423-16d7f2937c07" + }, + "execution_count": 17, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Demonstrating E-commerce Order Processing Workflow:\n", + "Inventory Check: Item 1 is available.\n", + "Order Result: {'order_id': 'Order confirmed for User ID: user123. The order details are as follows: Item ID: 1, Quantity: 2. Your order ID is ORD456789.'}\n", + "Payment Status: Payment processed successfully for Order ID: ORD456789. The payment amount of $49.99 has been confirmed.\n", + "Shipment Status: The current status of the shipment for Order ID ORD456789 is \"In Transit.\" The order has been picked up by the carrier and is on its way to the delivery address. Estimated delivery is within 3-5 business days.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "0NaRffiYZXGf" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file diff --git a/cookbooks/e_commerce_order_processing_workflow.py b/cookbooks/e_commerce_order_processing_workflow.py new file mode 100644 index 000000000..e8db94556 --- /dev/null +++ b/cookbooks/e_commerce_order_processing_workflow.py @@ -0,0 +1,238 @@ +# -*- coding: utf-8 -*- +"""E-commerce_Order_Processing_Workflow.ipynb + +Automatically generated by Colab. + +Original file is located at + https://colab.research.google.com/drive/1mP-uZV8-wMMJA0eDcF5TH6C82ZOup055 +""" + +import uuid +import yaml +import time +from julep import Client + +AGENT_UUID = uuid.uuid4() +ORDER_PLACEMENT_TASK_UUID = uuid.uuid4() +INVENTORY_CHECK_TASK_UUID = uuid.uuid4() +PAYMENT_PROCESSING_TASK_UUID = uuid.uuid4() +SHIPMENT_TRACKING_TASK_UUID = uuid.uuid4() + +api_key = "" # Your API key here +client = Client(api_key=api_key, environment="dev") + +agent = client.agents.create_or_update( + agent_id=AGENT_UUID, + name="Order Processing Assistant", + about="An AI agent specialized in automating the order processing workflow for e-commerce.", + model="gpt-4o", +) + +order_placement_task_def = yaml.safe_load(""" +name: Order Placement + +input_schema: + type: object + properties: + user_id: + type: string + order_details: + type: object + properties: + item_id: + type: integer + quantity: + type: integer + +main: +- prompt: + - role: system + content: >- + You are an order placement assistant. Process the following order: + User ID: {{inputs[0].user_id}} + Order Details: {{inputs[0].order_details}} + + Confirm the order placement and return the order ID. + unwrap: true + +- evaluate: + order_id: _.uuid() + +- return: + order_id: _ +""") + +order_placement_task = client.tasks.create_or_update( + task_id=ORDER_PLACEMENT_TASK_UUID, + agent_id=AGENT_UUID, + **order_placement_task_def +) + +inventory_check_task_def = yaml.safe_load(""" +name: Inventory Check + +input_schema: + type: object + properties: + item_id: + type: integer + quantity: + type: integer + +main: +- prompt: + - role: system + content: >- + You are an inventory checker. Check the availability of the following item: + Item ID: {{inputs[0].item_id}} + Quantity Requested: {{inputs[0].quantity}} + + Return true if available, otherwise return false. + unwrap: true +""") + +inventory_check_task = client.tasks.create_or_update( + task_id=INVENTORY_CHECK_TASK_UUID, + agent_id=AGENT_UUID, + **inventory_check_task_def +) + +payment_processing_task_def = yaml.safe_load(""" +name: Payment Processing + +input_schema: + type: object + properties: + user_id: + type: string + order_id: + type: string + amount: + type: number + +main: +- prompt: + - role: system + content: >- + You are a payment processor. Process payment for the following order: + User ID: {{inputs[0].user_id}} + Order ID: {{inputs[0].order_id}} + Amount: {{inputs[0].amount}} + + Confirm payment status (success or failure). + unwrap: true + +- evaluate: + payment_status: "success" # Simulating a successful payment + +- return: + payment_status: _ +""") + +payment_processing_task = client.tasks.create_or_update( + task_id=PAYMENT_PROCESSING_TASK_UUID, + agent_id=AGENT_UUID, + **payment_processing_task_def +) + +shipment_tracking_task_def = yaml.safe_load(""" +name: Shipment Tracking + +input_schema: + type: object + properties: + order_id: + type: string + +main: +- prompt: + - role: system + content: >- + You are a shipment tracker. Track the shipment for the following order: + Order ID: {{inputs[0].order_id}} + + Return the current status of the shipment. + unwrap: true +""") + +shipment_tracking_task = client.tasks.create_or_update( + task_id=SHIPMENT_TRACKING_TASK_UUID, + agent_id=AGENT_UUID, + **shipment_tracking_task_def +) + +def place_order(user_id, item_id, quantity): + execution = client.executions.create( + task_id=ORDER_PLACEMENT_TASK_UUID, + input={ + "user_id": user_id, + "order_details": { + "item_id": item_id, + "quantity": quantity + } + } + ) + time.sleep(2) + result = client.executions.get(execution.id) + output = client.executions.transitions.list(execution_id=result.id).items[0].output + + if isinstance(output, dict): + return output + else: + return {"order_id": output} + +def check_inventory(item_id, quantity): + execution = client.executions.create( + task_id=INVENTORY_CHECK_TASK_UUID, + input={ + "item_id": item_id, + "quantity": quantity + } + ) + time.sleep(2) + result = client.executions.get(execution.id) + return client.executions.transitions.list(execution_id=result.id).items[0].output + +def process_payment(user_id, order_id, amount): + execution = client.executions.create( + task_id=PAYMENT_PROCESSING_TASK_UUID, + input={ + "user_id": user_id, + "order_id": order_id, + "amount": amount + } + ) + time.sleep(2) + result = client.executions.get(execution.id) + return client.executions.transitions.list(execution_id=result.id).items[0].output + +def track_shipment(order_id): + execution = client.executions.create( + task_id=SHIPMENT_TRACKING_TASK_UUID, + input={ + "order_id": order_id + } + ) + time.sleep(2) + result = client.executions.get(execution.id) + return client.executions.transitions.list(execution_id=result.id).items[0].output + +print("Demonstrating E-commerce Order Processing Workflow:") + +user_id = "user123" +item_id = 1 +quantity = 2 +amount = 49.99 + +is_available = check_inventory(item_id, quantity) +if is_available: + print(f"Inventory Check: Item {item_id} is available.") + order_result = place_order(user_id, item_id, quantity) + print(f"Order Result: {order_result}") + payment_result = process_payment(user_id, order_result["order_id"], amount) + print(f"Payment Status: {payment_result}") + shipment_result = track_shipment(order_result["order_id"]) + print(f"Shipment Status: {shipment_result}") +else: + print(f"Inventory Check: Item {item_id} is not available.") + diff --git a/docker-compose.yml b/docker-compose.yml index 350adf626..364eb170c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -12,8 +12,7 @@ include: - ./scheduler/docker-compose.yml - ./llm-proxy/docker-compose.yml - ./integrations-service/docker-compose.yml - - ./prometheus/docker-compose.yml - - ./grafana/docker-compose.yml + - ./monitoring/docker-compose.yml - ./blob-store/docker-compose.yml # TODO: Enable after testing diff --git a/docs/README.md b/docs/README.md index 5359f6c38..8a994860c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -15,7 +15,6 @@ LinkedIn

-

NPM Version   @@ -26,7 +25,7 @@ GitHub License

-***** +--- > [!NOTE] > πŸ‘¨β€πŸ’» Here for the devfest.ai event? Join our [Discord](https://discord.com/invite/JTSBGRZrzj) and check out the details below. @@ -125,6 +124,7 @@ Julep enables the creation of multi-step tasks incorporating decision-making, lo While many AI applications are limited to simple, linear chains of prompts and API calls with minimal branching, Julep is built to handle more complex scenarios. It supports: + - Intricate, multi-step processes - Dynamic decision-making - Parallel execution @@ -135,11 +135,12 @@ It supports: ## Quick Example Imagine a Research AI agent that can do the following: - 1. Take a topic, - 2. Come up with 100 search queries for that topic, - 3. Perform those web searches in parallel, - 4. Summarize the results, - 5. Send the summary to Discord + +1. Take a topic, +2. Come up with 100 search queries for that topic, +3. Perform those web searches in parallel, +4. Summarize the results, +5. Send the summary to Discord In Julep, this would be a single task under 80 lines of code and run fully managed all on its own. All of the steps are executed on Julep's own servers and you don't need to lift a finger. Here's a working example: @@ -156,20 +157,20 @@ input_schema: # Define the tools that the agent can use tools: -- name: web_search - type: integration - integration: - provider: brave - setup: - api_key: "YOUR_BRAVE_API_KEY" - -- name: discord_webhook - type: api_call - api_call: - url: "YOUR_DISCORD_WEBHOOK_URL" - method: POST - headers: - Content-Type: application/json + - name: web_search + type: integration + integration: + provider: brave + setup: + api_key: "YOUR_BRAVE_API_KEY" + + - name: discord_webhook + type: api_call + api_call: + url: "YOUR_DISCORD_WEBHOOK_URL" + method: POST + headers: + Content-Type: application/json # Special variables: # - inputs: for accessing the input to the task @@ -178,48 +179,48 @@ tools: # Define the main workflow main: -- prompt: - - role: system - content: >- - You are a research assistant. - Generate 100 diverse search queries related to the topic: - {{inputs[0].topic}} - - Write one query per line. - unwrap: true - -# Evaluate the search queries using a simple python expression -- evaluate: - search_queries: "_.split('\n')" - -# Run the web search in parallel for each query -- over: "_.search_queries" - map: - tool: web_search - arguments: - query: "_" - parallelism: 100 + - prompt: + - role: system + content: >- + You are a research assistant. + Generate 100 diverse search queries related to the topic: + {{inputs[0].topic}} + + Write one query per line. + unwrap: true -# Collect the results from the web search -- evaluate: - results: "'\n'.join([item.result for item in _])" + # Evaluate the search queries using a simple python expression + - evaluate: + search_queries: "_.split('\n')" + + # Run the web search in parallel for each query + - over: "_.search_queries" + map: + tool: web_search + arguments: + query: "_" + parallelism: 100 + + # Collect the results from the web search + - evaluate: + results: "'\n'.join([item.result for item in _])" + + # Summarize the results + - prompt: + - role: system + content: > + You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}. + The summary should be well-structured, informative, and highlight key findings and insights: + {{_.results}} + unwrap: true -# Summarize the results -- prompt: - - role: system + # Send the summary to Discord + - tool: discord_webhook + arguments: content: > - You are a research summarizer. Create a comprehensive summary of the following research results on the topic {{inputs[0].topic}}. - The summary should be well-structured, informative, and highlight key findings and insights: - {{_.results}} - unwrap: true - -# Send the summary to Discord -- tool: discord_webhook - arguments: - content: > - **Research Summary for {{inputs[0].topic}}** - - {{_}} + **Research Summary for {{inputs[0].topic}}** + + {{_}} ``` > [!TIP] @@ -425,22 +426,22 @@ while (message := input("Enter a message: ")) != "quit": > [!TIP] > You can find the full python example [here](example.py). - ## Node.js Quick Start 🟩 ### Step 1: Create an Agent ```javascript -import { Julep } from '@julep/sdk'; -import yaml from 'js-yaml'; +import { Julep } from "@julep/sdk"; +import yaml from "js-yaml"; -const client = new Julep({ apiKey: 'your_julep_api_key' }); +const client = new Julep({ apiKey: "your_julep_api_key" }); async function createAgent() { const agent = await client.agents.create({ name: "Storytelling Agent", model: "gpt-4", - about: "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.", + about: + "You are a creative storytelling agent that can craft engaging stories and generate comic panels based on ideas.", }); // πŸ› οΈ Add an image generation tool (DALLΒ·E) to the agent @@ -520,11 +521,13 @@ async function createTask(agent) { ```javascript async function executeTask(task) { const execution = await client.executions.create(task.id, { - input: { idea: "A cat who learns to fly" } + input: { idea: "A cat who learns to fly" }, }); // πŸŽ‰ Watch as the story and comic panels are generated - for await (const transition of client.executions.transitions.stream(execution.id)) { + for await (const transition of client.executions.transitions.stream( + execution.id + )) { console.log(transition); } @@ -543,12 +546,12 @@ async function chatWithAgent(agent) { // πŸ’¬ Send messages to the agent const rl = readline.createInterface({ input: process.stdin, - output: process.stdout + output: process.stdout, }); const chat = async () => { rl.question("Enter a message (or 'quit' to exit): ", async (message) => { - if (message.toLowerCase() === 'quit') { + if (message.toLowerCase() === "quit") { rl.close(); return; } @@ -594,10 +597,12 @@ Julep is made up of the following components: Think of Julep as a platform that combines both client-side and server-side components to help you build advanced AI agents. Here's how to visualize it: 1. **Your Application Code:** + - You use the Julep SDK in your application to define agents, tasks, and workflows. - The SDK provides functions and classes that make it easy to set up and manage these components. 2. **Julep Backend Service:** + - The SDK communicates with the Julep backend over the network. - The backend handles execution of tasks, maintains session state, stores documents, and orchestrates workflows. @@ -606,6 +611,7 @@ Think of Julep as a platform that combines both client-side and server-side comp - The backend facilitates these integrations, so your agents can, for example, perform web searches, access databases, or call third-party APIs. In simpler terms: + - Julep is a platform for building stateful AI agents. - You use the SDK (like a toolkit) in your code to define what your agents do. - The backend service (which you can think of as the engine) runs these definitions, manages state, and handles complexity. @@ -657,11 +663,13 @@ Tasks in Julep can include various types of steps, allowing you to create comple #### Common Steps 1. **Prompt**: Send a message to the AI model and receive a response. + ```yaml - prompt: "Analyze the following data: {{data}}" ``` 2. **Tool Call**: Execute an integrated tool or API. + ```yaml - tool: web_search arguments: @@ -669,12 +677,14 @@ Tasks in Julep can include various types of steps, allowing you to create comple ``` 3. **Evaluate**: Perform calculations or manipulate data. + ```yaml - evaluate: average_score: "sum(scores) / len(scores)" ``` 4. **Wait for Input**: Pause workflow until input is received. + ```yaml - wait_for_input: info: @@ -689,6 +699,7 @@ Tasks in Julep can include various types of steps, allowing you to create comple #### Key-Value Steps 6. **Get**: Retrieve a value from a key-value store. + ```yaml - get: "user_preference" ``` @@ -702,6 +713,7 @@ Tasks in Julep can include various types of steps, allowing you to create comple #### Iteration Steps 8. **Foreach**: Iterate over a collection and perform steps for each item. + ```yaml - foreach: in: "data_list" @@ -710,6 +722,7 @@ Tasks in Julep can include various types of steps, allowing you to create comple ``` 9. **Map-Reduce**: Map over a collection and reduce the results. + ```yaml - map_reduce: over: "numbers" @@ -733,6 +746,7 @@ Tasks in Julep can include various types of steps, allowing you to create comple #### Conditional Steps 11. **If-Else**: Conditional execution of steps. + ```yaml - if: "score > 0.8" then: @@ -750,7 +764,7 @@ Tasks in Julep can include various types of steps, allowing you to create comple - case: "category == 'B'" then: - log: "Category B processing" - - case: "_" # Default case + - case: "_" # Default case then: - log: "Unknown category" ``` @@ -758,18 +772,21 @@ Tasks in Julep can include various types of steps, allowing you to create comple #### Other Control Flow 13. **Sleep**: Pause the workflow for a specified duration. + ```yaml - sleep: seconds: 30 ``` 14. **Return**: Return a value from the workflow. + ```yaml - return: result: "Task completed successfully" ``` 15. **Yield**: Run a subworkflow and await its completion. + ```yaml - yield: workflow: "data_processing_subflow" @@ -857,86 +874,86 @@ Julep supports various integrations that extend the capabilities of your AI agen ```yaml setup: - api_key: string # The API key for Brave Search + api_key: string # The API key for Brave Search arguments: - query: string # The search query for searching with Brave + query: string # The search query for searching with Brave output: - result: string # The result of the Brave Search + result: string # The result of the Brave Search ``` ### BrowserBase ```yaml setup: - api_key: string # The API key for BrowserBase - project_id: string # The project ID for BrowserBase - session_id: string # (Optional) The session ID for BrowserBase + api_key: string # The API key for BrowserBase + project_id: string # The project ID for BrowserBase + session_id: string # (Optional) The session ID for BrowserBase arguments: - urls: list[string] # The URLs for loading with BrowserBase + urls: list[string] # The URLs for loading with BrowserBase output: - documents: list # The documents loaded from the URLs + documents: list # The documents loaded from the URLs ``` ### Email ```yaml setup: - host: string # The host of the email server - port: integer # The port of the email server - user: string # The username of the email server - password: string # The password of the email server + host: string # The host of the email server + port: integer # The port of the email server + user: string # The username of the email server + password: string # The password of the email server arguments: - to: string # The email address to send the email to - from: string # The email address to send the email from - subject: string # The subject of the email - body: string # The body of the email + to: string # The email address to send the email to + from: string # The email address to send the email from + subject: string # The subject of the email + body: string # The body of the email output: - success: boolean # Whether the email was sent successfully + success: boolean # Whether the email was sent successfully ``` ### Spider ```yaml setup: - spider_api_key: string # The API key for Spider + spider_api_key: string # The API key for Spider arguments: - url: string # The URL for which to fetch data - mode: string # The type of crawlers (default: "scrape") - params: dict # (Optional) The parameters for the Spider API + url: string # The URL for which to fetch data + mode: string # The type of crawlers (default: "scrape") + params: dict # (Optional) The parameters for the Spider API output: - documents: list # The documents returned from the spider + documents: list # The documents returned from the spider ``` ### Weather ```yaml setup: - openweathermap_api_key: string # The API key for OpenWeatherMap + openweathermap_api_key: string # The API key for OpenWeatherMap arguments: - location: string # The location for which to fetch weather data + location: string # The location for which to fetch weather data output: - result: string # The weather data for the specified location + result: string # The weather data for the specified location ``` ### Wikipedia ```yaml arguments: - query: string # The search query string - load_max_docs: integer # Maximum number of documents to load (default: 2) + query: string # The search query string + load_max_docs: integer # Maximum number of documents to load (default: 2) output: - documents: list # The documents returned from the Wikipedia search + documents: list # The documents returned from the Wikipedia search ``` These integrations can be used within your tasks to extend the capabilities of your AI agents. For more detailed information on how to use these integrations in your workflows, please refer to our [Integrations Documentation](https://docs.julep.ai/integrations). diff --git a/grafana/docker-compose.yml b/grafana/docker-compose.yml deleted file mode 100644 index 86723774c..000000000 --- a/grafana/docker-compose.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: grafana - -services: - grafana: - image: grafana/grafana - environment: - - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD} - - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER} - container_name: grafana - ports: - - 3000:3000 - volumes: - - grafana_data:/var/lib/grafana - - ./provisioning:/etc/grafana/provisioning - profiles: - - multi-tenant - -volumes: - grafana_data: - external: true diff --git a/monitoring/README.md b/monitoring/README.md index 9702bf6ff..3366abcd7 100644 --- a/monitoring/README.md +++ b/monitoring/README.md @@ -1,41 +1,28 @@ -# TODO: Fix monitoring services -# SCRUM-25 - # Compose sample ### Prometheus & Grafana Project structure: ``` -. -β”œβ”€β”€ compose.yaml +β”œβ”€β”€ README.md +β”œβ”€β”€ docker-compose.yml β”œβ”€β”€ grafana -β”‚Β Β  └── datasource.yml -β”œβ”€β”€ prometheus -β”‚Β Β  └── prometheus.yml -└── README.md +β”‚ └── provisioning +β”‚ └── datasources +β”‚ └── datasource.yml +└── prometheus + └── config + └── prometheus.yml ``` -[_compose.yaml_](compose.yaml) -``` -services: - prometheus: - image: prom/prometheus - ... - ports: - - 9090:9090 - grafana: - image: grafana/grafana - ... - ports: - - 3000:3000 -``` -The compose file defines a stack with two services `prometheus` and `grafana`. +The docker compose file defines a stack with two services `prometheus` and `grafana`. When deploying the stack, docker compose maps port the default ports for each service to the equivalent ports on the host in order to inspect easier the web interface of each service. Make sure the ports 9090 and 3000 on the host are not already in use. ## Deploy with docker compose ``` +$ docker volume create grafana_data +$ docker volume create prometheus_data $ docker compose up -d Creating network "prometheus-grafana_default" with the default driver Creating volume "prometheus-grafana_prom_data" with default driver diff --git a/monitoring/docker-compose.yml b/monitoring/docker-compose.yml index 51cb60f67..72edabf48 100644 --- a/monitoring/docker-compose.yml +++ b/monitoring/docker-compose.yml @@ -1,39 +1,39 @@ name: julep-monitoring services: - portainer: - image: portainer/portainer-ce:latest - container_name: portainer - restart: unless-stopped - ports: - - "9000:8000" - - "9443:9443" - volumes: - - portainer_data:/data - - /var/run/docker.sock:/var/run/docker.sock - prometheus: image: prom/prometheus container_name: prometheus - command: - - "--config.file=/etc/prometheus/prometheus.yml" - restart: unless-stopped + profiles: + - multi-tenant + volumes: - - ./prometheus:/etc/prometheus - - prom_data:/prometheus + - ./prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus + + depends_on: + agents-api-multi-tenant: + condition: service_started + + command: + - '--config.file=/etc/prometheus/prometheus.yml' grafana: image: grafana/grafana + environment: + - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD} + - GF_SECURITY_ADMIN_USER=${GRAFANA_ADMIN_USER} container_name: grafana ports: - 3000:3000 - restart: unless-stopped - environment: - - GF_SECURITY_ADMIN_USER=admin - - GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD} volumes: - - ./grafana:/etc/grafana/provisioning/datasources + - grafana_data:/var/lib/grafana + - ./grafana/provisioning:/etc/grafana/provisioning + profiles: + - multi-tenant volumes: - prom_data: - portainer_data: + prometheus_data: + external: true + grafana_data: + external: true diff --git a/monitoring/grafana/datasource.yml b/monitoring/grafana/datasource.yml deleted file mode 100644 index d7b828686..000000000 --- a/monitoring/grafana/datasource.yml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: 1 - -datasources: -- name: Prometheus - type: prometheus - url: http://prometheus:9090 - isDefault: true - access: proxy - editable: true diff --git a/grafana/provisioning/datasources/datasource.yml b/monitoring/grafana/provisioning/datasources/datasource.yml similarity index 100% rename from grafana/provisioning/datasources/datasource.yml rename to monitoring/grafana/provisioning/datasources/datasource.yml diff --git a/prometheus/config/prometheus.yml b/monitoring/prometheus/config/prometheus.yml similarity index 100% rename from prometheus/config/prometheus.yml rename to monitoring/prometheus/config/prometheus.yml diff --git a/monitoring/prometheus/prometheus.yml b/monitoring/prometheus/prometheus.yml deleted file mode 100644 index dec073bbb..000000000 --- a/monitoring/prometheus/prometheus.yml +++ /dev/null @@ -1,21 +0,0 @@ -global: - scrape_interval: 5s - scrape_timeout: 3s - evaluation_interval: 5s -alerting: - alertmanagers: - - static_configs: - - targets: [] - scheme: http - timeout: 3s - api_version: v1 -scrape_configs: - - job_name: traefik - honor_timestamps: true - scrape_interval: 5s - scrape_timeout: 3s - metrics_path: /metrics - scheme: http - static_configs: - - targets: - - gateway:8082 diff --git a/prometheus/docker-compose.yml b/prometheus/docker-compose.yml deleted file mode 100644 index f3c53d966..000000000 --- a/prometheus/docker-compose.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: prometheus - -services: - prometheus: - image: prom/prometheus - container_name: prometheus - profiles: - - multi-tenant - - volumes: - - ./config/prometheus.yml:/etc/prometheus/prometheus.yml - - prometheus_data:/prometheus - - depends_on: - agents-api-multi-tenant: - condition: service_started - - command: - - '--config.file=/etc/prometheus/prometheus.yml' - -volumes: - prometheus_data: - external: true diff --git a/sdks/node-sdk b/sdks/node-sdk index 6ff96ce85..6fee6c28d 160000 --- a/sdks/node-sdk +++ b/sdks/node-sdk @@ -1 +1 @@ -Subproject commit 6ff96ce8599538291aeb242e6d11650f2c490616 +Subproject commit 6fee6c28ddafc0fae4cab1d821139c02a097e21f diff --git a/sdks/python-sdk b/sdks/python-sdk index 3d763379e..0f90b5fce 160000 --- a/sdks/python-sdk +++ b/sdks/python-sdk @@ -1 +1 @@ -Subproject commit 3d763379e986b38a9d7f24b99f7f6211f19591a0 +Subproject commit 0f90b5fce974eab9141904d974bc0b0f5e998eab