Compare commits

...

35 Commits

Author SHA1 Message Date
theCyberTech
2482c7ab68 Addded feature request template in YAML format
Added config .yml to remove blank template
2024-08-14 15:49:55 +08:00
theCyberTech
7fdabda97e updated bug report template to yml for more control 2024-08-14 15:08:59 +08:00
Eduardo Chiarotti
7306414de7 docs: fix references to annotations (#1176) 2024-08-13 12:58:12 -03:00
Eduardo Chiarotti
97d7bfb52a docs: Update Dalle, FileWrite, Nl2Sql and Side menu Tools (#1175)
* docs: Update Dalle, FileWrite, Nl2Sql and Side menu Tools

* docs: remove unused phrase

* docs: fix identation
2024-08-13 12:29:34 -03:00
Rafael Miller
9f85a2a011 Added Firecrawl tools to docs (#628) 2024-08-13 12:09:11 -03:00
João Moura
ab47d276db preparing new version 2024-08-11 22:07:54 -03:00
João Moura
44e38b1d5e Fixing telemetry condition that was missing 2024-08-11 22:07:45 -03:00
João Moura
e9fa2bb556 fix broken link 2024-08-11 15:52:25 -03:00
João Moura
183f466ac4 adding new docs 2024-08-11 15:50:42 -03:00
João Moura
cc7b7e2b79 adding testing link 2024-08-11 15:39:30 -03:00
João Moura
a17fa70b1b Updating docs 2024-08-11 15:04:45 -03:00
João Moura
7b63b6f485 preparing new version 2024-08-11 01:33:20 -03:00
João Moura
ed5d81fa1a Fixing evaluator reporter 2024-08-11 01:32:40 -03:00
João Moura
c2d12b2de2 Updating templates to new versions 2024-08-11 01:02:47 -03:00
João Moura
8966dc2f2f Preparing new version 2024-08-11 00:58:41 -03:00
João Moura
59ab1ef9f4 adding docs for new tools 2024-08-11 00:07:00 -03:00
João Moura
227cca00a2 preparing new verion 2024-08-10 17:59:17 -03:00
João Moura
16dab8e583 missing arg 2024-08-10 17:58:54 -03:00
João Moura
1c97b916d9 fixing mock_agent_ops_provider 2024-08-10 17:26:45 -03:00
João Moura
94b52cfd87 fixing mock_agent_ops_provider 2024-08-10 17:21:21 -03:00
Abebe M.
82b1db1711 Handle minor issue: tools name shouldn't contain space for openai (#961)
As per (https://github.com/langchain-ai/langchain/pull/16395), OpenAI functions don't accept tool names with space. Therefore, I added an exception handling snippet to raise an issue if a custom tool name has a space.
2024-08-10 16:51:08 -03:00
Joshua Harper
638a8f03f0 Sanitize agent roles to ensure valid directory names (#1037) 2024-08-10 09:50:38 -03:00
Vikram Guhan Subbiah
dbce944934 AgentOps ENG-525: Decouple CrewAI and AgentOps (#1033)
* Make AgentOps import optional upon AGENTOPS_API_KEY
    being set

Co-authored-by: João Moura <joaomdmoura@gmail.com>
2024-08-10 09:47:13 -03:00
David
f1ad137fb7 remove broken links (#1043) 2024-08-10 09:45:21 -03:00
Jason Wu
5eb1cff9b5 Update AgentOps-Observability.md (#1044)
Fix the incorrectly formatted external link
2024-08-10 09:43:22 -03:00
Thiago Moretto
b074138e39 Increase test coverage for output to file (#1049) 2024-08-10 09:42:47 -03:00
Constantin Schreiber
6ca051e5f3 Update Start-a-New-CrewAI-Project-Template-Method.md (#1054)
Fixed grammar and typo

Co-authored-by: João Moura <joaomdmoura@gmail.com>
2024-08-10 09:39:49 -03:00
fastali
fd87d930a7 Update LLM-Connections.md (#1071)
ollama integration example code bug fixed.
2024-08-10 08:56:30 -03:00
Chris Johnston
95a9691a8b Update Start-a-New-CrewAI-Project-Template-Method.md (#1081)
I helped 💚
2024-08-10 08:55:39 -03:00
maf-rnmourao
e2d6e2649e Fix misplaced task info from process doc (#1098)
Co-authored-by: rnmourao <robertonunesmourao@yahoo.com.br>
2024-08-10 08:55:18 -03:00
Giulio De Luise
d3ff1bf01d Fix documentation typo. (#1153) 2024-08-10 08:54:40 -03:00
Muhammad Hakim Asy'ari
d68b8cf6e4 Remove orphan links (#1163)
Remove deprecated links, related to #1019
2024-08-10 08:54:12 -03:00
João Moura
6615ab2fba preparing new verison 2024-08-10 03:28:53 -07:00
João Moura
5e83a36009 adding test results telemetry 2024-08-10 03:13:11 -07:00
Eduardo Chiarotti
51ee483e9d feat: add ability to train on custom file (#1161)
* feat: add ability to train on custom file

* feat: add pkl file validation

* feat: fix tests

* feat: fix tests

* feat: fix tests
2024-08-09 19:41:58 -03:00
68 changed files with 13262 additions and 216020 deletions

116
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,116 @@
name: Bug report
description: Create a report to help us improve CrewAI
title: "[BUG]"
labels: ["bug"]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Description
description: Provide a clear and concise description of what the bug is.
validations:
required: true
- type: textarea
id: steps-to-reproduce
attributes:
label: Steps to Reproduce
description: Provide a step-by-step process to reproduce the behavior.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: screenshots-code
attributes:
label: Screenshots/Code snippets
description: If applicable, add screenshots or code snippets to help explain your problem.
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating System
description: Select the operating system you're using
options:
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- macOS Catalina
- macOS Big Sur
- macOS Monterey
- macOS Ventura
- macOS Sonoma
- Windows 10
- Windows 11
- Other (specify in additional context)
validations:
required: true
- type: dropdown
id: python-version
attributes:
label: Python Version
description: Version of Python your Crew is running on
options:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
validations:
required: true
- type: input
id: crewai-version
attributes:
label: crewAI Version
description: What version of CrewAI are you using
validations:
required: true
- type: input
id: crewai-tools-version
attributes:
label: crewAI Tools Version
description: What version of CrewAI Tools are you using
validations:
required: true
- type: dropdown
id: virtual-environment
attributes:
label: Virtual Environment
description: What Virtual Environment are you running your crew in.
options:
- Venv
- Conda
- Poetry
validations:
required: true
- type: textarea
id: evidence
attributes:
label: Evidence
description: Include relevant information, logs or error messages. These can be screenshots.
validations:
required: true
- type: textarea
id: possible-solution
attributes:
label: Possible Solution
description: Have a solution in mind? Please suggest it here, or write "None".
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: Additional context
description: Add any other context about the problem here.
validations:
required: true

0
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

View File

@@ -0,0 +1,65 @@
name: Feature request
description: Suggest a new feature for CrewAI
title: "[FEATURE]"
labels: ["feature-request"]
assignees: []
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: dropdown
id: feature-area
attributes:
label: Feature Area
description: Which area of CrewAI does this feature primarily relate to?
options:
- Core functionality
- Agent capabilities
- Task management
- Integration with external tools
- Performance optimization
- Documentation
- Other (please specify in additional context)
validations:
required: true
- type: textarea
id: problem
attributes:
label: Is your feature request related to a an existing bug? Please link it here.
description: A link to the bug or NA if not related to an existing bug.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional context
description: Add any other context, screenshots, or examples about the feature request here.
validations:
required: false
- type: dropdown
id: willingness-to-contribute
attributes:
label: Willingness to Contribute
description: Would you be willing to contribute to the implementation of this feature?
options:
- Yes, I'd be happy to submit a pull request
- I could provide more detailed specifications
- I can test the feature once it's implemented
- No, I'm just suggesting the idea
validations:
required: true

View File

@@ -26,7 +26,7 @@ description: What are crewAI Agents and how to use them.
| **Function Calling LLM** *(optional)* | `function_calling_llm` | Specifies the language model that will handle the tool calling for this agent, overriding the crew function calling LLM if passed. Default is `None`. |
| **Max Iter** *(optional)* | `max_iter` | Max Iter is the maximum number of iterations the agent can perform before being forced to give its best answer. Default is `25`. |
| **Max RPM** *(optional)* | `max_rpm` | Max RPM is the maximum number of requests per minute the agent can perform to avoid rate limits. It's optional and can be left unspecified, with a default value of `None`. |
| **Max Execution Time** *(optional)* | `max_execution_time` | Max Execution Time is the Maximum execution time for an agent to execute a task. It's optional and can be left unspecified, with a default value of `None`, meaning no max execution time. |
| **Max Execution Time** *(optional)* | `max_execution_time` | Max Execution Time is the maximum execution time for an agent to execute a task. It's optional and can be left unspecified, with a default value of `None`, meaning no max execution time. |
| **Verbose** *(optional)* | `verbose` | Setting this to `True` configures the internal logger to provide detailed execution logs, aiding in debugging and monitoring. Default is `False`. |
| **Allow Delegation** *(optional)* | `allow_delegation` | Agents can delegate tasks or questions to one another, ensuring that each task is handled by the most suitable agent. Default is `True`. |
| **Step Callback** *(optional)* | `step_callback` | A function that is called after each step of the agent. This can be used to log the agent's actions or to perform other operations. It will overwrite the crew `step_callback`. |
@@ -34,6 +34,8 @@ description: What are crewAI Agents and how to use them.
| **System Template** *(optional)* | `system_template` | Specifies the system format for the agent. Default is `None`. |
| **Prompt Template** *(optional)* | `prompt_template` | Specifies the prompt format for the agent. Default is `None`. |
| **Response Template** *(optional)* | `response_template` | Specifies the response format for the agent. Default is `None`. |
| **Allow Code Execution** *(optional)* | `allow_code_execution` | Enable code execution for the agent. Default is `False`. |
| **Max Retry Limit** *(optional)* | `max_retry_limit` | Maximum number of retries for an agent to execute a task when an error occurs. Default is `2`. |
## Creating an Agent
@@ -72,7 +74,8 @@ agent = Agent(
tools_handler=my_tools_handler, # Optional
cache_handler=my_cache_handler, # Optional
callbacks=[callback1, callback2], # Optional
agent_executor=my_agent_executor # Optional
allow_code_execution=True, # Optiona
max_retry_limit=2, # Optional
)
```
@@ -144,6 +147,5 @@ my_crew = Crew(agents=[agent1, agent2], tasks=[task1, task2])
crew = my_crew.kickoff(inputs={"input": "Mark Twain"})
```
## Conclusion
Agents are the building blocks of the CrewAI framework. By understanding how to define and interact with agents, you can create sophisticated AI systems that leverage the power of collaborative intelligence.
Agents are the building blocks of the CrewAI framework. By understanding how to define and interact with agents, you can create sophisticated AI systems that leverage the power of collaborative intelligence.

View File

@@ -28,6 +28,8 @@ The `Crew` class has been enriched with several attributes to support advanced f
- **Embedder Configuration (`embedder`)**: Specifies the configuration for the embedder to be used by the crew for understanding and generating language. This attribute supports customization of the language model provider.
- **Cache Management (`cache`)**: Determines whether the crew should use a cache to store the results of tool executions, optimizing performance.
- **Output Logging (`output_log_file`)**: Specifies the file path for logging the output of the crew execution.
- **Planning Mode (`planning`)**: Allows crews to plan their actions before executing tasks by setting `planning=True` when creating the `Crew` instance. This feature enhances coordination and efficiency.
- **Replay Feature**: Introduces a new CLI for listing tasks from the last run and replaying from a specific task, enhancing task management and troubleshooting.
## Delegation: Dividing to Conquer
Delegation enhances functionality by allowing agents to intelligently assign tasks or seek help, thereby amplifying the crew's overall capability.

View File

@@ -32,8 +32,8 @@ A crew in crewAI represents a collaborative group of agents working together to
| **Manager Agent** _(optional)_ | `manager_agent` | `manager` sets a custom agent that will be used as a manager. |
| **Manager Callbacks** _(optional)_ | `manager_callbacks` | `manager_callbacks` takes a list of callback handlers to be executed by the manager agent when a hierarchical process is used. |
| **Prompt File** _(optional)_ | `prompt_file` | Path to the prompt JSON file to be used for the crew. |
| **Planning** *(optional)* | `planning` | Adds planning ability to the Crew. When activated before each Crew iteration, all Crew data is sent to an AgentPlanner that will plan the tasks and this plan will be added to each task description.
| **Planning LLM** *(optional)* | `planning_llm` | The language model used by the AgentPlanner in a planning process. |
| **Planning** *(optional)* | `planning` | Adds planning ability to the Crew. When activated before each Crew iteration, all Crew data is sent to an AgentPlanner that will plan the tasks and this plan will be added to each task description. |
| **Planning LLM** *(optional)* | `planning_llm` | The language model used by the AgentPlanner in a planning process. |
!!! note "Crew Max RPM"
The `max_rpm` attribute sets the maximum number of requests per minute the crew can perform to avoid rate limits and will override individual agents' `max_rpm` settings if you set it.
@@ -183,14 +183,14 @@ result = my_crew.kickoff()
print(result)
```
### Different ways to Kicking Off a Crew
### Different Ways to Kick Off a Crew
Once your crew is assembled, initiate the workflow with the appropriate kickoff method. CrewAI provides several methods for better control over the kickoff process: `kickoff()`, `kickoff_for_each()`, `kickoff_async()`, and `kickoff_for_each_async()`.
`kickoff()`: Starts the execution process according to the defined process flow.
`kickoff_for_each()`: Executes tasks for each agent individually.
`kickoff_async()`: Initiates the workflow asynchronously.
`kickoff_for_each_async()`: Executes tasks for each agent individually in an asynchronous manner.
- `kickoff()`: Starts the execution process according to the defined process flow.
- `kickoff_for_each()`: Executes tasks for each agent individually.
- `kickoff_async()`: Initiates the workflow asynchronously.
- `kickoff_for_each_async()`: Executes tasks for each agent individually in an asynchronous manner.
```python
# Start the crew's task execution
@@ -215,33 +215,34 @@ for async_result in async_results:
print(async_result)
```
These methods provide flexibility in how you manage and execute tasks within your crew, allowing for both synchronous and asynchronous workflows tailored to your needs
These methods provide flexibility in how you manage and execute tasks within your crew, allowing for both synchronous and asynchronous workflows tailored to your needs.
### Replaying from a Specific Task
### Replaying from specific task:
You can now replay from a specific task using our cli command replay.
You can now replay from a specific task using our CLI command `replay`.
The replay feature in CrewAI allows you to replay from a specific task using the command-line interface (CLI). By running the command `crewai replay -t <task_id>`, you can specify the `task_id` for the replay process.
Kickoffs will now save the latest kickoffs returned task outputs locally for you to be able to replay from.
### Replaying from a Specific Task Using the CLI
### Replaying from specific task Using the CLI
To use the replay feature, follow these steps:
1. Open your terminal or command prompt.
2. Navigate to the directory where your CrewAI project is located.
3. Run the following command:
To view latest kickoff task_ids use:
To view the latest kickoff task IDs, use:
```shell
crewai log-tasks-outputs
```
Then, to replay from a specific task, use:
```shell
crewai replay -t <task_id>
```
These commands let you replay from your latest kickoff tasks, still retaining context from previously executed tasks.
These commands let you replay from your latest kickoff tasks, still retaining context from previously executed tasks.

View File

@@ -29,9 +29,9 @@ description: Leveraging memory systems in the crewAI framework to enhance agent
When configuring a crew, you can enable and customize each memory component to suit the crew's objectives and the nature of tasks it will perform.
By default, the memory system is disabled, and you can ensure it is active by setting `memory=True` in the crew configuration. The memory will use OpenAI Embeddings by default, but you can change it by setting `embedder` to a different model.
The 'embedder' only applies to **Short-Term Memory** which uses Chroma for RAG using EmbedChain package.
The 'embedder' only applies to **Short-Term Memory** which uses Chroma for RAG using EmbedChain package.
The **Long-Term Memory** uses SQLLite3 to store task results. Currently, there is no way to override these storage implementations.
The data storage files are saved into a platform specific location found using the appdirs package
The data storage files are saved into a platform specific location found using the appdirs package
and the name of the project which can be overridden using the **CREWAI_STORAGE_DIR** environment variable.
### Example: Configuring Memory for a Crew
@@ -105,7 +105,7 @@ my_crew = Crew(
"provider": "azure_openai",
"config":{
"model": 'text-embedding-ada-002',
"deployment_name": "you_embedding_model_deployment_name"
"deployment_name": "your_embedding_model_deployment_name"
}
}
)
@@ -159,8 +159,8 @@ my_crew = Crew(
embedder={
"provider": "cohere",
"config":{
"model": "embed-english-v3.0"
"vector_dimension": 1024
"model": "embed-english-v3.0",
"vector_dimension": 1024
}
}
)
@@ -197,12 +197,10 @@ crewai reset_memories [OPTIONS]
- **Type:** Flag (boolean)
- **Default:** False
## Benefits of Using crewAI's Memory System
- **Adaptive Learning:** Crews become more efficient over time, adapting to new information and refining their approach to tasks.
- **Enhanced Personalization:** Memory enables agents to remember user preferences and historical interactions, leading to personalized experiences.
- **Improved Problem Solving:** Access to a rich memory store aids agents in making more informed decisions, drawing on past learnings and contextual insights.
## Getting Started
Integrating crewAI's memory system into your projects is straightforward. By leveraging the provided memory components and configurations, you can quickly empower your agents with the ability to remember, reason, and learn from their interactions, unlocking new levels of intelligence and capability.
Integrating crewAI's memory system into your projects is straightforward. By leveraging the provided memory components and configurations, you can quickly empower your agents with the ability to remember, reason, and learn from their interactions, unlocking new levels of intelligence and capability.

View File

@@ -34,7 +34,7 @@ Each input creates its own run, flowing through all stages of the pipeline. Mult
| Attribute | Parameters | Description |
| :--------- | :--------- | :------------------------------------------------------------------------------------ |
| **Stages** | `stages` | A list of crews or lists of crews representing the stages to be executed in sequence. |
| **Stages** | `stages` | A list of crews, lists of crews, or routers representing the stages to be executed in sequence. |
## Creating a Pipeline
@@ -79,7 +79,7 @@ my_pipeline = Pipeline(
## Pipeline Output
!!! note "Understanding Pipeline Outputs"
The output of a pipeline in the crewAI framework is encapsulated within two main classes: `PipelineOutput` and `PipelineRunResult`. These classes provide a structured way to access the results of the pipeline's execution, including various formats such as raw strings, JSON, and Pydantic models.
The output of a pipeline in the crewAI framework is encapsulated within the `PipelineKickoffResult` class. This class provides a structured way to access the results of the pipeline's execution, including various formats such as raw strings, JSON, and Pydantic models.
### Pipeline Output Attributes

View File

@@ -41,13 +41,11 @@ my_crew = Crew(
)
```
### Example
When running the base case example, you will see something like the following output, which represents the output of the AgentPlanner responsible for creating the step-by-step logic to add to the Agents tasks.
```bash
```
[2024-07-15 16:49:11][INFO]: Planning the crew execution
**Step-by-Step Plan for Task Execution**
@@ -133,6 +131,4 @@ A list with 10 bullet points of the most relevant information about AI LLMs.
**Expected Output:**
A fully-fledged report with the main topics, each with a full section of information. Formatted as markdown without '```'.
---
```
```

View File

@@ -55,10 +55,5 @@ Emulates a corporate hierarchy, CrewAI allows specifying a custom manager agent
## Process Class: Detailed Overview
The `Process` class is implemented as an enumeration (`Enum`), ensuring type safety and restricting process values to the defined types (`sequential`, `hierarchical`). The consensual process is planned for future inclusion, emphasizing our commitment to continuous development and innovation.
## Additional Task Features
- **Asynchronous Execution**: Tasks can now be executed asynchronously, allowing for parallel processing and efficiency improvements. This feature is designed to enable tasks to be carried out concurrently, enhancing the overall productivity of the crew.
- **Human Input Review**: An optional feature that enables the review of task outputs by humans to ensure quality and accuracy before finalization. This additional step introduces a layer of oversight, providing an opportunity for human intervention and validation.
- **Output Customization**: Tasks support various output formats, including JSON (`output_json`), Pydantic models (`output_pydantic`), and file outputs (`output_file`), providing flexibility in how task results are captured and utilized. This allows for a wide range of output possibilities, catering to different needs and requirements.
## Conclusion
The structured collaboration facilitated by processes within CrewAI is crucial for enabling systematic teamwork among agents. This documentation has been updated to reflect the latest features, enhancements, and the planned integration of the Consensual Process, ensuring users have access to the most current and comprehensive information.

View File

@@ -17,16 +17,17 @@ Tasks within crewAI can be collaborative, requiring multiple agents to work toge
| **Description** | `description` | A clear, concise statement of what the task entails. |
| **Agent** | `agent` | The agent responsible for the task, assigned either directly or by the crew's process. |
| **Expected Output** | `expected_output` | A detailed description of what the task's completion looks like. |
| **Tools** _(optional)_ | `tools` | The functions or capabilities the agent can utilize to perform the task. |
| **Async Execution** _(optional)_ | `async_execution` | If set, the task executes asynchronously, allowing progression without waiting for completion. |
| **Tools** _(optional)_ | `tools` | The functions or capabilities the agent can utilize to perform the task. Defaults to an empty list. |
| **Async Execution** _(optional)_ | `async_execution` | If set, the task executes asynchronously, allowing progression without waiting for completion. Defaults to False. |
| **Context** _(optional)_ | `context` | Specifies tasks whose outputs are used as context for this task. |
| **Config** _(optional)_ | `config` | Additional configuration details for the agent executing the task, allowing further customization. |
| **Config** _(optional)_ | `config` | Additional configuration details for the agent executing the task, allowing further customization. Defaults to None. |
| **Output JSON** _(optional)_ | `output_json` | Outputs a JSON object, requiring an OpenAI client. Only one output format can be set. |
| **Output Pydantic** _(optional)_ | `output_pydantic` | Outputs a Pydantic model object, requiring an OpenAI client. Only one output format can be set. |
| **Output File** _(optional)_ | `output_file` | Saves the task output to a file. If used with `Output JSON` or `Output Pydantic`, specifies how the output is saved. |
| **Output** _(optional)_ | `output` | The output of the task, containing the raw, JSON, and Pydantic output plus additional details. |
| **Callback** _(optional)_ | `callback` | A Python callable that is executed with the task's output upon completion. |
| **Human Input** _(optional)_ | `human_input` | Indicates if the task requires human feedback at the end, useful for tasks needing human oversight. |
| **Output** _(optional)_ | `output` | An instance of `TaskOutput`, containing the raw, JSON, and Pydantic output plus additional details. |
| **Callback** _(optional)_ | `callback` | A callable that is executed with the task's output upon completion. |
| **Human Input** _(optional)_ | `human_input` | Indicates if the task requires human feedback at the end, useful for tasks needing human oversight. Defaults to False.|
| **Converter Class** _(optional)_ | `converter_cls` | A converter class used to export structured output. Defaults to None. |
## Creating a Task
@@ -56,7 +57,7 @@ By default, the `TaskOutput` will only include the `raw` output. A `TaskOutput`
| Attribute | Parameters | Type | Description |
| :---------------- | :-------------- | :------------------------- | :------------------------------------------------------------------------------------------------- |
| **Description** | `description` | `str` | A brief description of the task. |
| **Summary** | `summary` | `Optional[str]` | A short summary of the task, auto-generated from the description. |
| **Summary** | `summary` | `Optional[str]` | A short summary of the task, auto-generated from the first 10 words of the description. |
| **Raw** | `raw` | `str` | The raw output of the task. This is the default format for the output. |
| **Pydantic** | `pydantic` | `Optional[BaseModel]` | A Pydantic model object representing the structured output of the task. |
| **JSON Dict** | `json_dict` | `Optional[Dict[str, Any]]` | A dictionary representing the JSON output of the task. |
@@ -311,4 +312,4 @@ save_output_task = Task(
## Conclusion
Tasks are the driving force behind the actions of agents in crewAI. By properly defining tasks and their outcomes, you set the stage for your AI agents to work effectively, either independently or as a collaborative unit. Equipping tasks with appropriate tools, understanding the execution process, and following robust validation practices are crucial for maximizing CrewAI's potential, ensuring agents are effectively prepared for their assignments and that tasks are executed as intended.
Tasks are the driving force behind the actions of agents in crewAI. By properly defining tasks and their outcomes, you set the stage for your AI agents to work effectively, either independently or as a collaborative unit. Equipping tasks with appropriate tools, understanding the execution process, and following robust validation practices are crucial for maximizing CrewAI's potential, ensuring agents are effectively prepared for their assignments and that tasks are executed as intended.

View File

@@ -5,12 +5,11 @@ description: Learn how to test your crewAI Crew and evaluate their performance.
## Introduction
Testing is a crucial part of the development process, and it is essential to ensure that your crew is performing as expected. And with crewAI, you can easily test your crew and evaluate its performance using the built-in testing capabilities.
Testing is a crucial part of the development process, and it is essential to ensure that your crew is performing as expected. With crewAI, you can easily test your crew and evaluate its performance using the built-in testing capabilities.
### Using the Testing Feature
We added the CLI command `crewai test` to make it easy to test your crew. This command will run your crew for a specified number of iterations and provide detailed performance metrics.
The parameters are `n_iterations` and `model` which are optional and default to 2 and `gpt-4o-mini` respectively. For now the only provider available is OpenAI.
We added the CLI command `crewai test` to make it easy to test your crew. This command will run your crew for a specified number of iterations and provide detailed performance metrics. The parameters are `n_iterations` and `model` which are optional and default to 2 and `gpt-4o-mini` respectively. For now, the only provider available is OpenAI.
```bash
crewai test
@@ -22,9 +21,10 @@ If you want to run more iterations or use a different model, you can specify the
crewai test --n_iterations 5 --model gpt-4o
```
What happens when you run the `crewai test` command is that the crew will be executed for the specified number of iterations, and the performance metrics will be displayed at the end of the run.
When you run the `crewai test` command, the crew will be executed for the specified number of iterations, and the performance metrics will be displayed at the end of the run.
A table of scores at the end will show the performance of the crew in terms of the following metrics:
```
Task Scores
(1-10 Higher is better)
@@ -38,4 +38,3 @@ A table of scores at the end will show the performance of the crew in terms of t
```
The example above shows the test results for two runs of the crew with two tasks, with the average total score for each task and the crew as a whole.

View File

@@ -80,11 +80,12 @@ write = Task(
output_file='blog-posts/new_post.md' # The final blog post will be saved here
)
# Assemble a crew
# Assemble a crew with planning enabled
crew = Crew(
agents=[researcher, writer],
tasks=[research, write],
verbose=True
verbose=True,
planning=True, # Enable planning feature
)
# Execute tasks
@@ -105,6 +106,7 @@ Here is a list of the available tools and their descriptions:
| **CodeInterpreterTool** | A tool for interpreting python code. |
| **ComposioTool** | Enables use of Composio tools. |
| **CSVSearchTool** | A RAG tool designed for searching within CSV files, tailored to handle structured data. |
| **DALL-E Tool** | A tool for generating images using the DALL-E API. |
| **DirectorySearchTool** | A RAG tool for searching within directories, useful for navigating through file systems. |
| **DOCXSearchTool** | A RAG tool aimed at searching within DOCX documents, ideal for processing Word files. |
| **DirectoryReadTool** | Facilitates reading and processing of directory structures and their contents. |
@@ -121,6 +123,7 @@ Here is a list of the available tools and their descriptions:
| **MDXSearchTool** | A RAG tool tailored for searching within Markdown (MDX) files, useful for documentation. |
| **PDFSearchTool** | A RAG tool aimed at searching within PDF documents, ideal for processing scanned documents. |
| **PGSearchTool** | A RAG tool optimized for searching within PostgreSQL databases, suitable for database queries. |
| **Vision Tool** | A tool for generating images using the DALL-E API. |
| **RagTool** | A general-purpose RAG tool capable of handling various data sources and types. |
| **ScrapeElementFromWebsiteTool** | Enables scraping specific elements from websites, useful for targeted data extraction. |
| **ScrapeWebsiteTool** | Facilitates scraping entire websites, ideal for comprehensive data collection. |
@@ -195,6 +198,5 @@ writer1 = Agent(
#...
```
## Conclusion
Tools are pivotal in extending the capabilities of CrewAI agents, enabling them to undertake a broad spectrum of tasks and collaborate effectively. When building solutions with CrewAI, leverage both custom and existing tools to empower your agents and enhance the AI ecosystem. Consider utilizing error handling, caching mechanisms, and the flexibility of tool arguments to optimize your agents' performance and capabilities.

View File

@@ -16,9 +16,11 @@ To use the training feature, follow these steps:
3. Run the following command:
```shell
crewai train -n <n_iterations>
crewai train -n <n_iterations> <filename>
```
!!! note "Replace `<n_iterations>` with the desired number of training iterations and `<filename>` with the appropriate filename ending with `.pkl`."
### Training Your Crew Programmatically
To train your crew programmatically, use the following steps:
@@ -27,21 +29,20 @@ To train your crew programmatically, use the following steps:
3. Execute the training command within a try-except block to handle potential errors.
```python
n_iterations = 2
inputs = {"topic": "CrewAI Training"}
n_iterations = 2
inputs = {"topic": "CrewAI Training"}
filename = "your_model.pkl"
try:
YourCrewName_Crew().crew().train(n_iterations= n_iterations, inputs=inputs)
try:
YourCrewName_Crew().crew().train(n_iterations=n_iterations, inputs=inputs, filename=filename)
except Exception as e:
raise Exception(f"An error occurred while training the crew: {e}")
except Exception as e:
raise Exception(f"An error occurred while training the crew: {e}")
```
!!! note "Replace `<n_iterations>` with the desired number of training iterations. This determines how many times the agents will go through the training process."
### Key Points to Note:
- **Positive Integer Requirement:** Ensure that the number of iterations (`n_iterations`) is a positive integer. The code will raise a `ValueError` if this condition is not met.
- **Filename Requirement:** Ensure that the filename ends with `.pkl`. The code will raise a `ValueError` if this condition is not met.
- **Error Handling:** The code handles subprocess errors and unexpected exceptions, providing error messages to the user.
It is important to note that the training process may take some time, depending on the complexity of your agents and will also require your feedback on each iteration.

View File

@@ -7,10 +7,10 @@ description: A comprehensive guide to starting a new CrewAI project, including t
Welcome to the ultimate guide for starting a new CrewAI project. This document will walk you through the steps to create, customize, and run your CrewAI project, ensuring you have everything you need to get started.
Beforre we start there are a couple of things to note:
Before we start, there are a couple of things to note:
1. CrewAI is a Python package and requires Python >=3.10 and <=3.13 to run.
2. The preferred way of setting up CrewAI is using the `crewai create` command.This will create a new project folder and install a skeleton template for you to work on.
2. The preferred way of setting up CrewAI is using the `crewai create crew` command. This will create a new project folder and install a skeleton template for you to work on.
## Prerequisites
@@ -35,11 +35,11 @@ It is highly recommended that you use virtual environments to ensure that your C
3. Use Poetry (A Python package manager and dependency management tool):
Poetry is an open-source Python package manager that simplifies the installation of packages and their dependencies. Poetry offers a convenient way to manage virtual environments and dependencies.
Poetry is CrewAI's prefered tool for package / dependancy management in CrewAI.
Poetry is CrewAI's preferred tool for package / dependency management in CrewAI.
### Code IDEs
Most users of CrewAI a Code Editor / Integrated Development Environment (IDE) for building there Crews. You can use any code IDE of your choice. Seee below for some popular options for Code Editors / Integrated Development Environments (IDE):
Most users of CrewAI use a Code Editor / Integrated Development Environment (IDE) for building their Crews. You can use any code IDE of your choice. See below for some popular options for Code Editors / Integrated Development Environments (IDE):
- [Visual Studio Code](https://code.visualstudio.com/) - Most popular
- [PyCharm](https://www.jetbrains.com/pycharm/)
@@ -48,24 +48,13 @@ Most users of CrewAI a Code Editor / Integrated Development Environment (IDE) fo
Pick one that suits your style and needs.
## Creating a New Project
In this example we will be using Venv as our virtual environment manager.
In this example, we will be using Venv as our virtual environment manager.
To setup a virtual environment, run the following CLI command:
To set up a virtual environment, run the following CLI command:
To create a new CrewAI project, run the following CLI command:
```shell
$ python3 -m venv <venv-name>
```
Activate your virtual environment by running the following CLI command:
```shell
$ source <venv-name>/bin/activate
```
Now, to create a new CrewAI project, run the following CLI command:
```shell
$ crewai create <project_name>
$ crewai create crew <project_name>
```
This command will create a new project folder with the following structure:
@@ -128,13 +117,13 @@ research_candidates_task:
{job_requirements}
expected_output: >
A list of 10 potential candidates with their contact information and brief profiles highlighting their suitability.
agent: researcher # THIS NEEDS TO MATCH THE AGENT NAME IN THE AGENTS.YAML FILE AND THE AGENT DEFINED IN THE Crew.PY FILE
context: # THESE NEED TO MATCH THE TASK NAMES DEFINED ABOVE AND THE TASKS.YAML FILE AND THE TASK DEFINED IN THE Crew.PY FILE
agent: researcher # THIS NEEDS TO MATCH THE AGENT NAME IN THE AGENTS.YAML FILE AND THE AGENT DEFINED IN THE crew.py FILE
context: # THESE NEED TO MATCH THE TASK NAMES DEFINED ABOVE AND THE TASKS.YAML FILE AND THE TASK DEFINED IN THE crew.py FILE
- researcher
```
### Referencing Variables:
Your defined functions with the same name will be used. For example, you can reference the agent for specific tasks from task.yaml file. Ensure your annotated agent and function name is the same otherwise your task wont recognize the reference properly.
Your defined functions with the same name will be used. For example, you can reference the agent for specific tasks from task.yaml file. Ensure your annotated agent and function name is the same otherwise your task won't recognize the reference properly.
#### Example References
agent.yaml
@@ -162,23 +151,22 @@ email_summarizer_task:
- research_task
```
Use the annotations are used to properly reference the agent and task in the crew.py file.
Use the annotations to properly reference the agent and task in the crew.py file.
### Annotations include:
* @agent
* @task
* @crew
* @llm
* @tool
* @callback
* @output_json
* @output_pydantic
* @cache_handler
* [@agent](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L17)
* [@task](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L4)
* [@crew](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L69)
* [@llm](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L23)
* [@tool](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L39)
* [@callback](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L44)
* [@output_json](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L29)
* [@output_pydantic](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L34)
* [@cache_handler](https://github.com/crewAIInc/crewAI/blob/97d7bfb52ad49a9f04db360e1b6612d98c91971e/src/crewai/project/annotations.py#L49)
crew.py
```py
...
# ...
@llm
def mixtal_llm(self):
return ChatGroq(temperature=0, model_name="mixtral-8x7b-32768")
@@ -194,11 +182,9 @@ crew.py
return Task(
config=self.tasks_config["email_summarizer_task"],
)
...
# ...
```
## Installing Dependencies
To install the dependencies for your project, you can use Poetry. First, navigate to your project directory:
@@ -254,6 +240,26 @@ $ poetry run my_project
This will initialize your crew of AI agents and begin task execution as defined in your configuration in the `main.py` file.
### Replay Tasks from Latest Crew Kickoff
CrewAI now includes a replay feature that allows you to list the tasks from the last run and replay from a specific one. To use this feature, run:
```shell
$ crewai replay <task_id>
```
Replace `<task_id>` with the ID of the task you want to replay.
### Reset Crew Memory
If you need to reset the memory of your crew before running it again, you can do so by calling the reset memory feature:
```shell
$ crewai reset-memory
```
This will clear the crew's memory, allowing for a fresh start.
## Deploying Your Project
The easiest way to deploy your crew is through [CrewAI+](https://www.crewai.com/crewaiplus), where you can deploy your crew in a few clicks.

View File

@@ -36,7 +36,7 @@ Additionally, AgentOps provides session drilldowns for viewing Crew agent intera
### Using AgentOps
1. **Create an API Key:**
Create a user API key here: [Create API Key](app.agentops.ai/account)
Create a user API key here: [Create API Key](https://app.agentops.ai/account)
2. **Configure Your Environment:**
Add your API key to your environment variables
@@ -83,4 +83,4 @@ For feature requests or bug reports, please reach out to the AgentOps team on th
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://app.agentops.ai/?=crew">🖇️ AgentOps Dashboard</a>
<span>&nbsp;&nbsp;•&nbsp;&nbsp;</span>
<a href="https://docs.agentops.ai/introduction">📙 Documentation</a>
<a href="https://docs.agentops.ai/introduction">📙 Documentation</a>

View File

@@ -22,11 +22,13 @@ coding_agent = Agent(
)
```
**Note**: The `allow_code_execution` parameter defaults to `False`.
## Important Considerations
1. **Model Selection**: It is strongly recommended to use more capable models like Claude 3.5 Sonnet and GPT-4 when enabling code execution. These models have a better understanding of programming concepts and are more likely to generate correct and efficient code.
2. **Error Handling**: The code execution feature includes error handling. If executed code raises an exception, the agent will receive the error message and can attempt to correct the code or provide alternative solutions.
2. **Error Handling**: The code execution feature includes error handling. If executed code raises an exception, the agent will receive the error message and can attempt to correct the code or provide alternative solutions. The `max_retry_limit` parameter, which defaults to 2, controls the maximum number of retries for a task.
3. **Dependencies**: To use the code execution feature, you need to install the `crewai_tools` package. If not installed, the agent will log an info message: "Coding tools not available. Install crewai_tools."
@@ -73,4 +75,4 @@ result = analysis_crew.kickoff()
print(result)
```
In this example, the `coding_agent` can write and execute Python code to perform data analysis tasks.
In this example, the `coding_agent` can write and execute Python code to perform data analysis tasks.

View File

@@ -7,9 +7,10 @@ description: Learn how to use conditional tasks in a crewAI kickoff
Conditional Tasks in crewAI allow for dynamic workflow adaptation based on the outcomes of previous tasks. This powerful feature enables crews to make decisions and execute tasks selectively, enhancing the flexibility and efficiency of your AI-driven processes.
## Example Usage
```python
from typing import List
from pydantic import BaseModel
from crewai import Agent, Crew
from crewai.tasks.conditional_task import ConditionalTask
@@ -17,11 +18,10 @@ from crewai.tasks.task_output import TaskOutput
from crewai.task import Task
from crewai_tools import SerperDevTool
# Define a condition function for the conditional task
# if false task will be skipped, true, then execute task
def is_data_missing(output: TaskOutput) -> bool:
return len(output.pydantic.events) < 10: # this will skip this task
return len(output.pydantic.events) < 10 # this will skip this task
# Define the agents
data_fetcher_agent = Agent(
@@ -46,11 +46,9 @@ summary_generator_agent = Agent(
verbose=True,
)
class EventOutput(BaseModel):
events: List[str]
task1 = Task(
description="Fetch data about events in San Francisco using Serper tool",
expected_output="List of 10 things to do in SF this week",
@@ -64,7 +62,7 @@ conditional_task = ConditionalTask(
fetch more events using Serper tool so that
we have a total of 10 events in SF this week..
""",
expected_output="List of 10 Things to do in SF this week ",
expected_output="List of 10 Things to do in SF this week",
condition=is_data_missing,
agent=data_processor_agent,
)
@@ -80,8 +78,10 @@ crew = Crew(
agents=[data_fetcher_agent, data_processor_agent, summary_generator_agent],
tasks=[task1, conditional_task, task3],
verbose=True,
planning=True # Enable planning feature
)
# Run the crew
result = crew.kickoff()
print("results", result)
```
```

View File

@@ -1,6 +1,6 @@
---
title: Forcing Tool Output as Result
description: Learn how to force tool output as the result in of an Agent's task in crewAI.
description: Learn how to force tool output as the result in of an Agent's task in CrewAI.
---
## Introduction
@@ -13,19 +13,20 @@ Here's an example of how to force the tool output as the result of an agent's ta
```python
# ...
from crewai.agent import Agent
# Define a custom tool that returns the result as the answer
coding_agent =Agent(
coding_agent = Agent(
role="Data Scientist",
goal="Product amazing reports on AI",
goal="Produce amazing reports on AI",
backstory="You work with data and AI",
tools=[MyCustomTool(result_as_answer=True)],
)
# ...
```
### Workflow in Action
## Workflow in Action
1. **Task Execution**: The agent executes the task using the tool provided.
2. **Tool Output**: The tool generates the output, which is captured as the task result.
3. **Agent Interaction**: The agent my reflect and take learnings from the tool but the output is not modified.
3. **Agent Interaction**: The agent may reflect and take learnings from the tool but the output is not modified.
4. **Result Return**: The tool output is returned as the task result without any modifications.

View File

@@ -56,6 +56,7 @@ project_crew = Crew(
process=Process.hierarchical, # Specifies the hierarchical management approach
memory=True, # Enable memory usage for enhanced task execution
manager_agent=None, # Optional: explicitly set a specific agent as manager instead of the manager_llm
planning=True, # Enable planning feature for pre-execution strategy
)
```

View File

@@ -83,6 +83,7 @@ crew = Crew(
tasks=[task1, task2],
verbose=True,
memory=True,
planning=True # Enable planning feature for the crew
)
# Get your crew to work!

View File

@@ -9,6 +9,21 @@ CrewAI provides the ability to kickoff a crew asynchronously, allowing you to st
## Asynchronous Crew Execution
To kickoff a crew asynchronously, use the `kickoff_async()` method. This method initiates the crew execution in a separate thread, allowing the main thread to continue executing other tasks.
### Method Signature
```python
def kickoff_async(self, inputs: dict) -> CrewOutput:
```
### Parameters
- `inputs` (dict): A dictionary containing the input data required for the tasks.
### Returns
- `CrewOutput`: An object representing the result of the crew execution.
## Example
Here's an example of how to kickoff a crew asynchronously:
```python
@@ -34,7 +49,6 @@ analysis_crew = Crew(
tasks=[data_analysis_task]
)
# Execute the crew
# Execute the crew asynchronously
result = analysis_crew.kickoff_async(inputs={"ages": [25, 30, 35, 40, 45]})
```
```

View File

@@ -9,7 +9,7 @@ description: Comprehensive guide on integrating CrewAI with various Large Langua
By default, CrewAI uses OpenAI's GPT-4o model (specifically, the model specified by the OPENAI_MODEL_NAME environment variable, defaulting to "gpt-4o") for language processing. You can configure your agents to use a different model or API as described in this guide.
By default, CrewAI uses OpenAI's GPT-4 model (specifically, the model specified by the OPENAI_MODEL_NAME environment variable, defaulting to "gpt-4") for language processing. You can configure your agents to use a different model or API as described in this guide.
CrewAI provides extensive versatility in integrating with various Language Models (LLMs), including local options through Ollama such as Llama and Mixtral to cloud-based solutions like Azure. Its compatibility extends to all [LangChain LLM components](https://python.langchain.com/v0.2/docs/integrations/llms/), offering a wide range of integration possibilities for customized AI applications.
CrewAI provides extensive versatility in integrating with various Language Models (LLMs), including local options through Ollama such as Llama and Mixtral to cloud-based solutions like Azure. Its compatibility extends to all [LangChain LLM components](https://python.langchain.com/v0.2/docs/integrations/llms/), offering a wide range of integration possibilities for customized AI applications.
The platform supports connections to an array of Generative AI models, including:
@@ -37,6 +37,7 @@ example_agent = Agent(
verbose=True
)
```
## Ollama Local Integration
Ollama is preferred for local LLM integration, offering customization and privacy benefits. To integrate Ollama with CrewAI, you will need the `langchain-ollama` package. You can then set the following environment variables to connect to your Ollama instance running locally on port 11434.
@@ -47,8 +48,8 @@ os.environ[OPENAI_API_KEY]='' # No API Key required for Ollama
```
## Ollama Integration Step by Step (ex. for using Llama 3.1 8B locally)
1. [Download and install Ollama](https://ollama.com/download).
2. After setting up the Ollama, Pull the Llama3.1 8B model by typing following lines into your terminal ```ollama run llama3.1```.
1. [Download and install Ollama](https://ollama.com/download).
2. After setting up the Ollama, Pull the Llama3.1 8B model by typing following lines into your terminal ```ollama run llama3.1```.
3. Llama3.1 should now be served locally on `http://localhost:11434`
```
from crewai import Agent, Task, Crew
@@ -56,7 +57,7 @@ from langchain_ollama import ChatOllama
import os
os.environ["OPENAI_API_KEY"] = "NA"
llm = Ollama(
llm = ChatOllama(
model = "llama3.1",
base_url = "http://localhost:11434")
@@ -165,7 +166,7 @@ llm = ChatCohere()
For Azure OpenAI API integration, set the following environment variables:
```sh
os.environ[AZURE_OPENAI_DEPLOYMENT] = "You deployment"
os.environ[AZURE_OPENAI_DEPLOYMENT] = "Your deployment"
os.environ["OPENAI_API_VERSION"] = "2023-12-01-preview"
os.environ["AZURE_OPENAI_ENDPOINT"] = "Your Endpoint"
os.environ["AZURE_OPENAI_API_KEY"] = "<Your API Key>"
@@ -191,5 +192,6 @@ azure_agent = Agent(
llm=azure_llm
)
```
## Conclusion
Integrating CrewAI with different LLMs expands the framework's versatility, allowing for customized, efficient AI solutions across various domains and platforms.
Integrating CrewAI with different LLMs expands the framework's versatility, allowing for customized, efficient AI solutions across various domains and platforms.

View File

@@ -11,14 +11,13 @@ You must run `crew.kickoff()` before you can replay a task. Currently, only the
Here's an example of how to replay from a task:
### Replaying from specific task Using the CLI
### Replaying from Specific Task Using the CLI
To use the replay feature, follow these steps:
1. Open your terminal or command prompt.
2. Navigate to the directory where your CrewAI project is located.
3. Run the following command:
To view latest kickoff task_ids use:
To view the latest kickoff task_ids use:
```shell
crewai log-tasks-outputs
```
@@ -29,21 +28,25 @@ crewai replay -t <task_id>
```
### Replaying from a task Programmatically
### Replaying from a Task Programmatically
To replay from a task programmatically, use the following steps:
1. Specify the task_id and input parameters for the replay process.
2. Execute the replay command within a try-except block to handle potential errors.
```python
def replay():
def replay():
"""
Replay the crew execution from a specific task.
"""
task_id = '<task_id>'
inputs = {"topic": "CrewAI Training"} # this is optional, you can pass in the inputs you want to replay otherwise uses the previous kickoffs inputs
inputs = {"topic": "CrewAI Training"} # This is optional; you can pass in the inputs you want to replay; otherwise, it uses the previous kickoff's inputs.
try:
YourCrewName_Crew().crew().replay(task_id=task_id, inputs=inputs)
except subprocess.CalledProcessError as e:
raise Exception(f"An error occurred while replaying the crew: {e}")
except Exception as e:
raise Exception(f"An error occurred while replaying the crew: {e}")
raise Exception(f"An unexpected error occurred: {e}")
```

View File

@@ -18,7 +18,7 @@ The sequential process ensures tasks are executed one after the other, following
To use the sequential process, assemble your crew and define tasks in the order they need to be executed.
```python
from crewai import Crew, Process, Agent, Task
from crewai import Crew, Process, Agent, Task, TaskOutput, CrewOutput
# Define your agents
researcher = Agent(
@@ -37,6 +37,7 @@ writer = Agent(
backstory='A skilled writer with a talent for crafting compelling narratives'
)
# Define your tasks
research_task = Task(description='Gather relevant data...', agent=researcher, expected_output='Raw Data')
analysis_task = Task(description='Analyze the data...', agent=analyst, expected_output='Data Insights')
writing_task = Task(description='Compose the report...', agent=writer, expected_output='Final Report')
@@ -50,6 +51,10 @@ report_crew = Crew(
# Execute the crew
result = report_crew.kickoff()
# Accessing the type safe output
task_output: TaskOutput = result.tasks[0].output
crew_output: CrewOutput = result.output
```
### Workflow in Action
@@ -82,4 +87,4 @@ CrewAI tracks token usage across all tasks and agents. You can access these metr
1. **Order Matters**: Arrange tasks in a logical sequence where each task builds upon the previous one.
2. **Clear Task Descriptions**: Provide detailed descriptions for each task to guide the agents effectively.
3. **Appropriate Agent Selection**: Match agents' skills and roles to the requirements of each task.
4. **Use Context**: Leverage the context from previous tasks to inform subsequent ones
4. **Use Context**: Leverage the context from previous tasks to inform subsequent ones.

View File

@@ -66,6 +66,11 @@ Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By
Planning
</a>
</li>
<li>
<a href="./core-concepts/Testing">
Testing
</a>
</li>
</ul>
</div>
<div style="width:30%">

41
docs/tools/DALL-ETool.md Normal file
View File

@@ -0,0 +1,41 @@
# DALL-E Tool
## Description
This tool is used to give the Agent the ability to generate images using the DALL-E model. It is a transformer-based model that generates images from textual descriptions. This tool allows the Agent to generate images based on the text input provided by the user.
## Installation
Install the crewai_tools package
```shell
pip install 'crewai[tools]'
```
## Example
Remember that when using this tool, the text must be generated by the Agent itself. The text must be a description of the image you want to generate.
```python
from crewai_tools import DallETool
Agent(
...
tools=[DallETool()],
)
```
If needed you can also tweak the parameters of the DALL-E model by passing them as arguments to the `DallETool` class. For example:
```python
from crewai_tools import DallETool
dalle_tool = DallETool(model="dall-e-3",
size="1024x1024",
quality="standard",
n=1)
Agent(
...
tools=[dalle_tool]
)
```
The parameters are based on the `client.images.generate` method from the OpenAI API. For more information on the parameters, please refer to the [OpenAI API documentation](https://platform.openai.com/docs/guides/images/introduction?lang=python).

View File

@@ -0,0 +1,33 @@
# FileWriterTool Documentation
## Description
The `FileWriterTool` is a component of the crewai_tools package, designed to simplify the process of writing content to files. It is particularly useful in scenarios such as generating reports, saving logs, creating configuration files, and more. This tool supports creating new directories if they don't exist, making it easier to organize your output.
## Installation
Install the crewai_tools package to use the `FileWriterTool` in your projects:
```shell
pip install 'crewai[tools]'
```
## Example
To get started with the `FileWriterTool`:
```python
from crewai_tools import FileWriterTool
# Initialize the tool
file_writer_tool = FileWriterTool()
# Write content to a file in a specified directory
result = file_writer_tool._run('example.txt', 'This is a test content.', 'test_directory')
print(result)
```
## Arguments
- `filename`: The name of the file you want to create or overwrite.
- `content`: The content to write into the file.
- `directory` (optional): The path to the directory where the file will be created. Defaults to the current directory (`.`). If the directory does not exist, it will be created.
## Conclusion
By integrating the `FileWriterTool` into your crews, the agents can execute the process of writing content to files and creating directories. This tool is essential for tasks that require saving output data, creating structured file systems, and more. By adhering to the setup and usage guidelines provided, incorporating this tool into projects is straightforward and efficient.

View File

@@ -0,0 +1,42 @@
# FirecrawlCrawlWebsiteTool
## Description
[Firecrawl](https://firecrawl.dev) is a platform for crawling and convert any website into clean markdown or structured data.
## Installation
- Get an API key from [firecrawl.dev](https://firecrawl.dev) and set it in environment variables (`FIRECRAWL_API_KEY`).
- Install the [Firecrawl SDK](https://github.com/mendableai/firecrawl) along with `crewai[tools]` package:
```
pip install firecrawl-py 'crewai[tools]'
```
## Example
Utilize the FirecrawlScrapeFromWebsiteTool as follows to allow your agent to load websites:
```python
from crewai_tools import FirecrawlCrawlWebsiteTool
tool = FirecrawlCrawlWebsiteTool(url='firecrawl.dev')
```
## Arguments
- `api_key`: Optional. Specifies Firecrawl API key. Defaults is the `FIRECRAWL_API_KEY` environment variable.
- `url`: The base URL to start crawling from.
- `page_options`: Optional.
- `onlyMainContent`: Optional. Only return the main content of the page excluding headers, navs, footers, etc.
- `includeHtml`: Optional. Include the raw HTML content of the page. Will output a html key in the response.
- `crawler_options`: Optional. Options for controlling the crawling behavior.
- `includes`: Optional. URL patterns to include in the crawl.
- `exclude`: Optional. URL patterns to exclude from the crawl.
- `generateImgAltText`: Optional. Generate alt text for images using LLMs (requires a paid plan).
- `returnOnlyUrls`: Optional. If true, returns only the URLs as a list in the crawl status. Note: the response will be a list of URLs inside the data, not a list of documents.
- `maxDepth`: Optional. Maximum depth to crawl. Depth 1 is the base URL, depth 2 includes the base URL and its direct children, and so on.
- `mode`: Optional. The crawling mode to use. Fast mode crawls 4x faster on websites without a sitemap but may not be as accurate and shouldn't be used on heavily JavaScript-rendered websites.
- `limit`: Optional. Maximum number of pages to crawl.
- `timeout`: Optional. Timeout in milliseconds for the crawling operation.

View File

@@ -0,0 +1,38 @@
# FirecrawlScrapeWebsiteTool
## Description
[Firecrawl](https://firecrawl.dev) is a platform for crawling and convert any website into clean markdown or structured data.
## Installation
- Get an API key from [firecrawl.dev](https://firecrawl.dev) and set it in environment variables (`FIRECRAWL_API_KEY`).
- Install the [Firecrawl SDK](https://github.com/mendableai/firecrawl) along with `crewai[tools]` package:
```
pip install firecrawl-py 'crewai[tools]'
```
## Example
Utilize the FirecrawlScrapeWebsiteTool as follows to allow your agent to load websites:
```python
from crewai_tools import FirecrawlScrapeWebsiteTool
tool = FirecrawlScrapeWebsiteTool(url='firecrawl.dev')
```
## Arguments
- `api_key`: Optional. Specifies Firecrawl API key. Defaults is the `FIRECRAWL_API_KEY` environment variable.
- `url`: The URL to scrape.
- `page_options`: Optional.
- `onlyMainContent`: Optional. Only return the main content of the page excluding headers, navs, footers, etc.
- `includeHtml`: Optional. Include the raw HTML content of the page. Will output a html key in the response.
- `extractor_options`: Optional. Options for LLM-based extraction of structured information from the page content
- `mode`: The extraction mode to use, currently supports 'llm-extraction'
- `extractionPrompt`: Optional. A prompt describing what information to extract from the page
- `extractionSchema`: Optional. The schema for the data to be extracted
- `timeout`: Optional. Timeout in milliseconds for the request

View File

@@ -0,0 +1,35 @@
# FirecrawlSearchTool
## Description
[Firecrawl](https://firecrawl.dev) is a platform for crawling and convert any website into clean markdown or structured data.
## Installation
- Get an API key from [firecrawl.dev](https://firecrawl.dev) and set it in environment variables (`FIRECRAWL_API_KEY`).
- Install the [Firecrawl SDK](https://github.com/mendableai/firecrawl) along with `crewai[tools]` package:
```
pip install firecrawl-py 'crewai[tools]'
```
## Example
Utilize the FirecrawlSearchTool as follows to allow your agent to load websites:
```python
from crewai_tools import FirecrawlSearchTool
tool = FirecrawlSearchTool(query='what is firecrawl?')
```
## Arguments
- `api_key`: Optional. Specifies Firecrawl API key. Defaults is the `FIRECRAWL_API_KEY` environment variable.
- `query`: The search query string to be used for searching.
- `page_options`: Optional. Options for result formatting.
- `onlyMainContent`: Optional. Only return the main content of the page excluding headers, navs, footers, etc.
- `includeHtml`: Optional. Include the raw HTML content of the page. Will output a html key in the response.
- `fetchPageContent`: Optional. Fetch the full content of the page.
- `search_options`: Optional. Options for controlling the crawling behavior.
- `limit`: Optional. Maximum number of pages to crawl.

56
docs/tools/MySQLTool.md Normal file
View File

@@ -0,0 +1,56 @@
# MySQLSearchTool
## Description
This tool is designed to facilitate semantic searches within MySQL database tables. Leveraging the RAG (Retrieve and Generate) technology, the MySQLSearchTool provides users with an efficient means of querying database table content, specifically tailored for MySQL databases. It simplifies the process of finding relevant data through semantic search queries, making it an invaluable resource for users needing to perform advanced queries on extensive datasets within a MySQL database.
## Installation
To install the `crewai_tools` package and utilize the MySQLSearchTool, execute the following command in your terminal:
```shell
pip install 'crewai[tools]'
```
## Example
Below is an example showcasing how to use the MySQLSearchTool to conduct a semantic search on a table within a MySQL database:
```python
from crewai_tools import MySQLSearchTool
# Initialize the tool with the database URI and the target table name
tool = MySQLSearchTool(db_uri='mysql://user:password@localhost:3306/mydatabase', table_name='employees')
```
## Arguments
The MySQLSearchTool requires the following arguments for its operation:
- `db_uri`: A string representing the URI of the MySQL database to be queried. This argument is mandatory and must include the necessary authentication details and the location of the database.
- `table_name`: A string specifying the name of the table within the database on which the semantic search will be performed. This argument is mandatory.
## Custom model and embeddings
By default, the tool uses OpenAI for both embeddings and summarization. To customize the model, you can use a config dictionary as follows:
```python
tool = MySQLSearchTool(
config=dict(
llm=dict(
provider="ollama", # or google, openai, anthropic, llama2, ...
config=dict(
model="llama2",
# temperature=0.5,
# top_p=1,
# stream=true,
),
),
embedder=dict(
provider="google",
config=dict(
model="models/embedding-001",
task_type="retrieval_document",
# title="Embeddings",
),
),
)
)
```

74
docs/tools/NL2SQLTool.md Normal file
View File

@@ -0,0 +1,74 @@
# NL2SQL Tool
## Description
This tool is used to convert natural language to SQL queries. When passsed to the agent it will generate queries and then use them to interact with the database.
This enables multiple workflows like having an Agent to access the database fetch information based on the goal and then use the information to generate a response, report or any other output. Along with that proivdes the ability for the Agent to update the database based on its goal.
**Attention**: Make sure that the Agent has access to a Read-Replica or that is okay for the Agent to run insert/update queries on the database.
## Requirements
- SqlAlchemy
- Any DB compatible library (e.g. psycopg2, mysql-connector-python)
## Installation
Install the crewai_tools package
```shell
pip install 'crewai[tools]'
```
## Usage
In order to use the NL2SQLTool, you need to pass the database URI to the tool. The URI should be in the format `dialect+driver://username:password@host:port/database`.
```python
from crewai_tools import NL2SQLTool
# psycopg2 was installed to run this example with PostgreSQL
nl2sql = NL2SQLTool(db_uri="postgresql://example@localhost:5432/test_db")
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config["researcher"],
allow_delegation=False,
tools=[nl2sql]
)
```
## Example
The primary task goal was:
"Retrieve the average, maximum, and minimum monthly revenue for each city, but only include cities that have more than one user. Also, count the number of user in each city and sort the results by the average monthly revenue in descending order"
So the Agent tried to get information from the DB, the first one is wrong so the Agent tries again and gets the correct information and passes to the next agent.
![alt text](https://github.com/crewAIInc/crewAI-tools/blob/main/crewai_tools/tools/nl2sql/images/image-2.png?raw=true)
![alt text](https://github.com/crewAIInc/crewAI-tools/raw/main/crewai_tools/tools/nl2sql/images/image-3.png)
The second task goal was:
"Review the data and create a detailed report, and then create the table on the database with the fields based on the data provided.
Include information on the average, maximum, and minimum monthly revenue for each city, but only include cities that have more than one user. Also, count the number of users in each city and sort the results by the average monthly revenue in descending order."
Now things start to get interesting, the Agent generates the SQL query to not only create the table but also insert the data into the table. And in the end the Agent still returns the final report which is exactly what was in the database.
![alt text](https://github.com/crewAIInc/crewAI-tools/raw/main/crewai_tools/tools/nl2sql/images/image-4.png)
![alt text](https://github.com/crewAIInc/crewAI-tools/raw/main/crewai_tools/tools/nl2sql/images/image-5.png)
![alt text](https://github.com/crewAIInc/crewAI-tools/raw/main/crewai_tools/tools/nl2sql/images/image-9.png)
![alt text](https://github.com/crewAIInc/crewAI-tools/raw/main/crewai_tools/tools/nl2sql/images/image-7.png)
This is a simple example of how the NL2SQLTool can be used to interact with the database and generate reports based on the data in the database.
The Tool provides endless possibilities on the logic of the Agent and how it can interact with the database.
```
DB -> Agent -> ... -> Agent -> DB
```

30
docs/tools/VisionTool.md Normal file
View File

@@ -0,0 +1,30 @@
# Vision Tool
## Description
This tool is used to extract text from images. When passed to the agent it will extract the text from the image and then use it to generate a response, report or any other output. The URL or the PATH of the image should be passed to the Agent.
## Installation
Install the crewai_tools package
```shell
pip install 'crewai[tools]'
```
## Usage
In order to use the VisionTool, the OpenAI API key should be set in the environment variable `OPENAI_API_KEY`.
```python
from crewai_tools import VisionTool
vision_tool = VisionTool()
@agent
def researcher(self) -> Agent:
return Agent(
config=self.agents_config["researcher"],
allow_delegation=False,
tools=[vision_tool]
)
```

View File

@@ -136,9 +136,6 @@ nav:
- Using LangChain Tools: 'core-concepts/Using-LangChain-Tools.md'
- Using LlamaIndex Tools: 'core-concepts/Using-LlamaIndex-Tools.md'
- How to Guides:
- Starting Your crewAI Project: 'how-to/Start-a-New-CrewAI-Project.md'
- Installing CrewAI: 'how-to/Installing-CrewAI.md'
- Getting Started: 'how-to/Creating-a-Crew-and-kick-it-off.md'
- Create Custom Tools: 'how-to/Create-Custom-Tools.md'
- Using Sequential Process: 'how-to/Sequential.md'
- Using Hierarchical Process: 'how-to/Hierarchical.md'
@@ -155,29 +152,37 @@ nav:
- Agent Monitoring with AgentOps: 'how-to/AgentOps-Observability.md'
- Agent Monitoring with LangTrace: 'how-to/Langtrace-Observability.md'
- Tools Docs:
- Google Serper Search: 'tools/SerperDevTool.md'
- Browserbase Web Loader: 'tools/BrowserbaseLoadTool.md'
- Composio Tools: 'tools/ComposioTool.md'
- Code Interpreter: 'tools/CodeInterpreterTool.md'
- Scrape Website: 'tools/ScrapeWebsiteTool.md'
- Directory Read: 'tools/DirectoryReadTool.md'
- Exa Serch Web Loader: 'tools/EXASearchTool.md'
- File Read: 'tools/FileReadTool.md'
- Selenium Scraper: 'tools/SeleniumScrapingTool.md'
- Directory RAG Search: 'tools/DirectorySearchTool.md'
- PDF RAG Search: 'tools/PDFSearchTool.md'
- TXT RAG Search: 'tools/TXTSearchTool.md'
- CSV RAG Search: 'tools/CSVSearchTool.md'
- XML RAG Search: 'tools/XMLSearchTool.md'
- JSON RAG Search: 'tools/JSONSearchTool.md'
- Docx Rag Search: 'tools/DOCXSearchTool.md'
- MDX RAG Search: 'tools/MDXSearchTool.md'
- PG RAG Search: 'tools/PGSearchTool.md'
- Website RAG Search: 'tools/WebsiteSearchTool.md'
- Github RAG Search: 'tools/GitHubSearchTool.md'
- Code Docs RAG Search: 'tools/CodeDocsSearchTool.md'
- Youtube Video RAG Search: 'tools/YoutubeVideoSearchTool.md'
- Code Interpreter: 'tools/CodeInterpreterTool.md'
- Composio Tools: 'tools/ComposioTool.md'
- CSV RAG Search: 'tools/CSVSearchTool.md'
- DALL-E Tool: 'tools/DALL-ETool.md'
- Directory RAG Search: 'tools/DirectorySearchTool.md'
- Directory Read: 'tools/DirectoryReadTool.md'
- Docx Rag Search: 'tools/DOCXSearchTool.md'
- EXA Serch Web Loader: 'tools/EXASearchTool.md'
- File Read: 'tools/FileReadTool.md'
- File Write: 'tools/FileWriteTool.md'
- Firecrawl Crawl Website Tool: 'tools/FirecrawlCrawlWebsiteTool.md'
- Firecrawl Scrape Website Tool: 'tools/FirecrawlScrapeWebsiteTool.md'
- Firecrawl Search Tool: 'tools/FirecrgstawlSearchTool.md'
- Github RAG Search: 'tools/GitHubSearchTool.md'
- Google Serper Search: 'tools/SerperDevTool.md'
- JSON RAG Search: 'tools/JSONSearchTool.md'
- MDX RAG Search: 'tools/MDXSearchTool.md'
- MySQL Tool: 'tools/MySQLTool.md'
- NL2SQL Tool: 'tools/NL2SQLTool.md'
- PDF RAG Search: 'tools/PDFSearchTool.md'
- PG RAG Search: 'tools/PGSearchTool.md'
- Scrape Website: 'tools/ScrapeWebsiteTool.md'
- Selenium Scraper: 'tools/SeleniumScrapingTool.md'
- TXT RAG Search: 'tools/TXTSearchTool.md'
- Vision Tool: 'tools/VisionTool.md'
- Website RAG Search: 'tools/WebsiteSearchTool.md'
- XML RAG Search: 'tools/XMLSearchTool.md'
- Youtube Channel RAG Search: 'tools/YoutubeChannelSearchTool.md'
- Youtube Video RAG Search: 'tools/YoutubeVideoSearchTool.md'
- Examples:
- Trip Planner Crew: https://github.com/joaomdmoura/crewAI-examples/tree/main/trip_planner"
- Create Instagram Post: https://github.com/joaomdmoura/crewAI-examples/tree/main/instagram_post"

1519
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "crewai"
version = "0.46.0"
version = "0.51.1"
description = "Cutting-edge framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks."
authors = ["Joao Moura <joao@crewai.com>"]
readme = "README.md"
@@ -21,7 +21,7 @@ opentelemetry-sdk = "^1.22.0"
opentelemetry-exporter-otlp-proto-http = "^1.22.0"
instructor = "1.3.3"
regex = "^2023.12.25"
crewai-tools = { version = "^0.4.26", optional = true }
crewai-tools = { version = "^0.8.3", optional = true }
click = "^8.1.7"
python-dotenv = "^1.0.0"
appdirs = "^1.4.4"
@@ -46,7 +46,7 @@ mkdocs-material = { extras = ["imaging"], version = "^9.5.7" }
mkdocs-material-extensions = "^1.3.1"
pillow = "^10.2.0"
cairosvg = "^2.7.1"
crewai-tools = "^0.4.26"
crewai-tools = "^0.8.3"
[tool.poetry.group.test.dependencies]
pytest = "^8.0.0"

View File

@@ -19,18 +19,28 @@ from crewai.utilities.constants import TRAINED_AGENTS_DATA_FILE, TRAINING_DATA_F
from crewai.utilities.token_counter_callback import TokenCalcHandler
from crewai.utilities.training_handler import CrewTrainingHandler
agentops = None
try:
import agentops # type: ignore # Name "agentops" already defined on line 21
from agentops import track_agent
except ImportError:
def track_agent():
def mock_agent_ops_provider():
def track_agent(*args, **kwargs):
def noop(f):
return f
return noop
return track_agent
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
import agentops # type: ignore # Name "agentops" already defined on line 21
from agentops import track_agent
except ImportError:
track_agent = mock_agent_ops_provider()
else:
track_agent = mock_agent_ops_provider()
@track_agent()
class Agent(BaseAgent):

View File

@@ -60,10 +60,17 @@ def version(tools):
default=5,
help="Number of iterations to train the crew",
)
def train(n_iterations: int):
@click.option(
"-f",
"--filename",
type=str,
default="trained_agents_data.pkl",
help="Path to a custom file for training",
)
def train(n_iterations: int, filename: str):
"""Train the crew."""
click.echo(f"Training the crew for {n_iterations} iterations")
train_crew(n_iterations)
click.echo(f"Training the Crew for {n_iterations} iterations")
train_crew(n_iterations, filename)
@crewai.command()

View File

@@ -25,7 +25,7 @@ def train():
"topic": "AI LLMs"
}
try:
{{crew_name}}Crew().crew().train(n_iterations=int(sys.argv[1]), inputs=inputs)
{{crew_name}}Crew().crew().train(n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs)
except Exception as e:
raise Exception(f"An error occurred while training the crew: {e}")

View File

@@ -6,7 +6,7 @@ authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = ">=3.10,<=3.13"
crewai = { extras = ["tools"], version = "^0.46.0" }
crewai = { extras = ["tools"], version = "^0.51.0" }
[tool.poetry.scripts]
{{folder_name}} = "{{folder_name}}.main:run"

View File

@@ -6,7 +6,7 @@ authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = ">=3.10,<=3.13"
crewai = { extras = ["tools"], version = "^0.46.0" }
crewai = { extras = ["tools"], version = "^0.51.0" }
asyncio = "*"
[tool.poetry.scripts]

View File

@@ -6,7 +6,7 @@ authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = ">=3.10,<=3.13"
crewai = { extras = ["tools"], version = "^0.46.0" }
crewai = { extras = ["tools"], version = "^0.51.0" }
[tool.poetry.scripts]
{{folder_name}} = "{{folder_name}}.main:main"

View File

@@ -3,19 +3,22 @@ import subprocess
import click
def train_crew(n_iterations: int) -> None:
def train_crew(n_iterations: int, filename: str) -> None:
"""
Train the crew by running a command in the Poetry environment.
Args:
n_iterations (int): The number of iterations to train the crew.
"""
command = ["poetry", "run", "train", str(n_iterations)]
command = ["poetry", "run", "train", str(n_iterations), filename]
try:
if n_iterations <= 0:
raise ValueError("The number of iterations must be a positive integer.")
if not filename.endswith(".pkl"):
raise ValueError("The filename must not end with .pkl")
result = subprocess.run(command, capture_output=False, text=True, check=True)
if result.stderr:

View File

@@ -3,6 +3,7 @@ import json
import uuid
from concurrent.futures import Future
from hashlib import md5
import os
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
from langchain_core.callbacks import BaseCallbackHandler
@@ -34,7 +35,9 @@ from crewai.telemetry import Telemetry
from crewai.tools.agent_tools import AgentTools
from crewai.types.usage_metrics import UsageMetrics
from crewai.utilities import I18N, FileHandler, Logger, RPMController
from crewai.utilities.constants import TRAINED_AGENTS_DATA_FILE, TRAINING_DATA_FILE
from crewai.utilities.constants import (
TRAINING_DATA_FILE,
)
from crewai.utilities.evaluators.crew_evaluator_handler import CrewEvaluator
from crewai.utilities.evaluators.task_evaluator import TaskEvaluator
from crewai.utilities.formatter import (
@@ -45,10 +48,13 @@ from crewai.utilities.planning_handler import CrewPlanner
from crewai.utilities.task_output_storage_handler import TaskOutputStorageHandler
from crewai.utilities.training_handler import CrewTrainingHandler
try:
import agentops
except ImportError:
agentops = None
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
import agentops
except ImportError:
pass
if TYPE_CHECKING:
from crewai.pipeline.pipeline import Pipeline
@@ -388,7 +394,7 @@ class Crew(BaseModel):
del task_config["agent"]
return Task(**task_config, agent=task_agent)
def _setup_for_training(self) -> None:
def _setup_for_training(self, filename: str) -> None:
"""Sets up the crew for training."""
self._train = True
@@ -399,11 +405,13 @@ class Crew(BaseModel):
agent.allow_delegation = False
CrewTrainingHandler(TRAINING_DATA_FILE).initialize_file()
CrewTrainingHandler(TRAINED_AGENTS_DATA_FILE).initialize_file()
CrewTrainingHandler(filename).initialize_file()
def train(self, n_iterations: int, inputs: Optional[Dict[str, Any]] = {}) -> None:
def train(
self, n_iterations: int, filename: str, inputs: Optional[Dict[str, Any]] = {}
) -> None:
"""Trains the crew for a given number of iterations."""
self._setup_for_training()
self._setup_for_training(filename)
for n_iteration in range(n_iterations):
self._train_iteration = n_iteration
@@ -416,7 +424,7 @@ class Crew(BaseModel):
training_data=training_data, agent_id=str(agent.id)
)
CrewTrainingHandler(TRAINED_AGENTS_DATA_FILE).save_trained_data(
CrewTrainingHandler(filename).save_trained_data(
agent_id=str(agent.role), trained_data=result.model_dump()
)
@@ -932,6 +940,9 @@ class Crew(BaseModel):
inputs: Optional[Dict[str, Any]] = None,
) -> None:
"""Test and evaluate the Crew with the given inputs for n iterations."""
self._test_execution_span = self._telemetry.test_execution_span(
self, n_iterations, inputs, openai_model_name
)
evaluator = CrewEvaluator(self, openai_model_name)
for i in range(1, n_iterations + 1):

View File

@@ -47,7 +47,7 @@ class RAGStorage(Storage):
os.environ["OPENAI_API_KEY"] = "fake"
agents = crew.agents if crew else []
agents = [agent.role for agent in agents]
agents = [self._sanitize_role(agent.role) for agent in agents]
agents = "_".join(agents)
config = {
@@ -77,6 +77,12 @@ class RAGStorage(Storage):
self.app.llm = FakeLLM()
if allow_reset:
self.app.reset()
def _sanitize_role(self, role: str) -> str:
"""
Sanitizes agent roles to ensure valid directory names.
"""
return role.replace('\n', '').replace(' ', '_').replace('/', '_')
def save(self, value: Any, metadata: Dict[str, Any]) -> None:
self._generate_embedding(value, metadata)

View File

@@ -98,65 +98,70 @@ class Telemetry:
self._add_attribute(span, "crew_memory", crew.memory)
self._add_attribute(span, "crew_number_of_tasks", len(crew.tasks))
self._add_attribute(span, "crew_number_of_agents", len(crew.agents))
self._add_attribute(
span,
"crew_agents",
json.dumps(
[
{
"key": agent.key,
"id": str(agent.id),
"role": agent.role,
"goal": agent.goal,
"backstory": agent.backstory,
"verbose?": agent.verbose,
"max_iter": agent.max_iter,
"max_rpm": agent.max_rpm,
"i18n": agent.i18n.prompt_file,
"llm": json.dumps(self._safe_llm_attributes(agent.llm)),
"delegation_enabled?": agent.allow_delegation,
"tools_names": [
tool.name.casefold() for tool in agent.tools or []
],
}
for agent in crew.agents
]
),
)
self._add_attribute(
span,
"crew_tasks",
json.dumps(
[
{
"key": task.key,
"id": str(task.id),
"description": task.description,
"expected_output": task.expected_output,
"async_execution?": task.async_execution,
"human_input?": task.human_input,
"agent_role": task.agent.role if task.agent else "None",
"agent_key": task.agent.key if task.agent else None,
"context": (
[task.description for task in task.context]
if task.context
else None
),
"tools_names": [
tool.name.casefold() for tool in task.tools or []
],
}
for task in crew.tasks
]
),
)
self._add_attribute(span, "platform", platform.platform())
self._add_attribute(span, "platform_release", platform.release())
self._add_attribute(span, "platform_system", platform.system())
self._add_attribute(span, "platform_version", platform.version())
self._add_attribute(span, "cpus", os.cpu_count())
if crew.share_crew:
self._add_attribute(
span,
"crew_agents",
json.dumps(
[
{
"key": agent.key,
"id": str(agent.id),
"role": agent.role,
"goal": agent.goal,
"backstory": agent.backstory,
"verbose?": agent.verbose,
"max_iter": agent.max_iter,
"max_rpm": agent.max_rpm,
"i18n": agent.i18n.prompt_file,
"llm": json.dumps(
self._safe_llm_attributes(agent.llm)
),
"delegation_enabled?": agent.allow_delegation,
"tools_names": [
tool.name.casefold()
for tool in agent.tools or []
],
}
for agent in crew.agents
]
),
)
self._add_attribute(
span,
"crew_tasks",
json.dumps(
[
{
"key": task.key,
"id": str(task.id),
"description": task.description,
"expected_output": task.expected_output,
"async_execution?": task.async_execution,
"human_input?": task.human_input,
"agent_role": task.agent.role
if task.agent
else "None",
"agent_key": task.agent.key if task.agent else None,
"context": (
[task.description for task in task.context]
if task.context
else None
),
"tools_names": [
tool.name.casefold()
for tool in task.tools or []
],
}
for task in crew.tasks
]
),
)
self._add_attribute(span, "platform", platform.platform())
self._add_attribute(span, "platform_release", platform.release())
self._add_attribute(span, "platform_system", platform.system())
self._add_attribute(span, "platform_version", platform.version())
self._add_attribute(span, "cpus", os.cpu_count())
self._add_attribute(
span, "crew_inputs", json.dumps(inputs) if inputs else None
)
@@ -289,6 +294,61 @@ class Telemetry:
except Exception:
pass
def individual_test_result_span(
self, crew: Crew, quality: int, exec_time: int, model_name: str
):
if self.ready:
try:
tracer = trace.get_tracer("crewai.telemetry")
span = tracer.start_span("Crew Individual Test Result")
self._add_attribute(
span,
"crewai_version",
pkg_resources.get_distribution("crewai").version,
)
self._add_attribute(span, "crew_key", crew.key)
self._add_attribute(span, "crew_id", str(crew.id))
self._add_attribute(span, "quality", str(quality))
self._add_attribute(span, "exec_time", str(exec_time))
self._add_attribute(span, "model_name", model_name)
span.set_status(Status(StatusCode.OK))
span.end()
except Exception:
pass
def test_execution_span(
self,
crew: Crew,
iterations: int,
inputs: dict[str, Any] | None,
model_name: str,
):
if self.ready:
try:
tracer = trace.get_tracer("crewai.telemetry")
span = tracer.start_span("Crew Test Execution")
self._add_attribute(
span,
"crewai_version",
pkg_resources.get_distribution("crewai").version,
)
self._add_attribute(span, "crew_key", crew.key)
self._add_attribute(span, "crew_id", str(crew.id))
self._add_attribute(span, "iterations", str(iterations))
self._add_attribute(span, "model_name", model_name)
if crew.share_crew:
self._add_attribute(
span, "inputs", json.dumps(inputs) if inputs else None
)
span.set_status(Status(StatusCode.OK))
span.end()
except Exception:
pass
def crew_execution_span(self, crew: Crew, inputs: dict[str, Any] | None):
"""Records the complete execution of a crew.
This is only collected if the user has opted-in to share the crew.

View File

@@ -1,5 +1,6 @@
import ast
from difflib import SequenceMatcher
import os
from textwrap import dedent
from typing import Any, List, Union
@@ -11,10 +12,12 @@ from crewai.telemetry import Telemetry
from crewai.tools.tool_calling import InstructorToolCalling, ToolCalling
from crewai.utilities import I18N, Converter, ConverterError, Printer
try:
import agentops
except ImportError:
agentops = None
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
import agentops
except ImportError:
pass
OPENAI_BIGGER_MODELS = ["gpt-4o"]
@@ -68,7 +71,14 @@ class ToolUsage:
self.task = task
self.action = action
self.function_calling_llm = function_calling_llm
# Handling bug (see https://github.com/langchain-ai/langchain/pull/16395): raise an error if tools_names have space for ChatOpenAI
if isinstance(self.function_calling_llm, ChatOpenAI):
if " " in self.tools_names:
raise Exception(
"Tools names should not have spaces for ChatOpenAI models."
)
# Set the maximum parsing attempts for bigger models
if (isinstance(self.function_calling_llm, ChatOpenAI)) and (
self.function_calling_llm.openai_api_base is None

View File

@@ -8,6 +8,7 @@ from rich.table import Table
from crewai.agent import Agent
from crewai.task import Task
from crewai.tasks.task_output import TaskOutput
from crewai.telemetry import Telemetry
class TaskEvaluationPydanticOutput(BaseModel):
@@ -34,6 +35,7 @@ class CrewEvaluator:
def __init__(self, crew, openai_model_name: str):
self.crew = crew
self.openai_model_name = openai_model_name
self._telemetry = Telemetry()
self._setup_for_evaluating()
def _setup_for_evaluating(self) -> None:
@@ -155,6 +157,12 @@ class CrewEvaluator:
evaluation_result = evaluation_task.execute_sync()
if isinstance(evaluation_result.pydantic, TaskEvaluationPydanticOutput):
self._test_result_span = self._telemetry.individual_test_result_span(
self.crew,
evaluation_result.pydantic.quality,
current_task._execution_time,
self.openai_model_name,
)
self.tasks_scores[self.iteration].append(evaluation_result.pydantic.quality)
self.run_execution_times[self.iteration].append(
current_task._execution_time

View File

@@ -1,3 +1,4 @@
import os
from typing import List
from langchain_openai import ChatOpenAI
@@ -6,17 +7,27 @@ from pydantic import BaseModel, Field
from crewai.utilities import Converter
from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser
agentops = None
try:
from agentops import track_agent
except ImportError:
def track_agent(name):
def mock_agent_ops_provider():
def track_agent(*args, **kwargs):
def noop(f):
return f
return noop
return track_agent
agentops = None
if os.environ.get("AGENTOPS_API_KEY"):
try:
from agentops import track_agent
except ImportError:
track_agent = mock_agent_ops_provider()
else:
track_agent = mock_agent_ops_provider()
class Entity(BaseModel):
name: str = Field(description="The name of the entity.")

View File

@@ -1,7 +1,5 @@
import os
import pickle
from datetime import datetime
@@ -32,14 +30,16 @@ class PickleHandler:
Parameters:
- file_name (str): The name of the file for saving and loading data.
"""
if not file_name.endswith(".pkl"):
file_name += ".pkl"
self.file_path = os.path.join(os.getcwd(), file_name)
def initialize_file(self) -> None:
"""
Initialize the file with an empty dictionary if it does not exist or is empty.
Initialize the file with an empty dictionary and overwrite any existing data.
"""
if not os.path.exists(self.file_path) or os.path.getsize(self.file_path) == 0:
self.save({}) # Save an empty dictionary to initialize the file
self.save({})
def save(self, data) -> None:
"""

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.14
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,7 +37,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.14
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -46,64 +46,64 @@ interactions:
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9ltULlJQMDDjI2f7PpkjJ7DsxWjEQ","object":"chat.completion.chunk","created":1721201741,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_400f27fa1f","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqOzPf2ZjkSgVMuFXAypJoBznjA","object":"chat.completion.chunk","created":1723348060,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,20 +114,20 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a488e81aa7f0c7e-EWR
- 8b153edfad781abd-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Wed, 17 Jul 2024 07:35:41 GMT
- Sun, 11 Aug 2024 03:47:40 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=Ypr9N3lq.OD8hpimnkpN61rAsWyk216I8Tq7RA8.uwQ-1721201741-1.0.1.1-6Cj4aX9I96QHMmPwJBpO1iCFOJsvzq_agUIrl3XS.YhlPuGyA4K9sDONExvLn.cDe3W_p_1ET7Pt_hxjtHPAXQ;
path=/; expires=Wed, 17-Jul-24 08:05:41 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=W.t1dOxpA9cmNfhvD_3Om6s..YECOsfeXOtb7pROwDQ-1723348060-1.0.1.1-8_50CvFD107yRcyHKvxdoJhsiTKAH.W19fjPi.0iWX99o5TpJ1hB9WYyi.yAQ_PdBtfqOGWvkstaED.GHbtPng;
path=/; expires=Sun, 11-Aug-24 04:17:40 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=NLa1BaUsRvD7shojIzUH9YSRXQIEzaoJVcq2_gNwqm0-1721201741646-0.0.1.1-604800000;
- _cfuvid=WJbMLTTxjWnCGDlpu5kFb33Vw1OcDNeujk.Vb018kBo-1723348060431-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
@@ -138,7 +138,7 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '106'
- '97'
openai-version:
- '2020-10-01'
strict-transport-security:
@@ -156,7 +156,7 @@ interactions:
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_e52461a1ab2702e360f6303fbcb4cc3c
- req_cbe413d19c4c7498dafbbb3ad8ddd3fd
status:
code: 200
message: OK
@@ -180,12 +180,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=Ypr9N3lq.OD8hpimnkpN61rAsWyk216I8Tq7RA8.uwQ-1721201741-1.0.1.1-6Cj4aX9I96QHMmPwJBpO1iCFOJsvzq_agUIrl3XS.YhlPuGyA4K9sDONExvLn.cDe3W_p_1ET7Pt_hxjtHPAXQ;
_cfuvid=NLa1BaUsRvD7shojIzUH9YSRXQIEzaoJVcq2_gNwqm0-1721201741646-0.0.1.1-604800000
- __cf_bm=W.t1dOxpA9cmNfhvD_3Om6s..YECOsfeXOtb7pROwDQ-1723348060-1.0.1.1-8_50CvFD107yRcyHKvxdoJhsiTKAH.W19fjPi.0iWX99o5TpJ1hB9WYyi.yAQ_PdBtfqOGWvkstaED.GHbtPng;
_cfuvid=WJbMLTTxjWnCGDlpu5kFb33Vw1OcDNeujk.Vb018kBo-1723348060431-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.14
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -195,7 +195,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.14
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -205,19 +205,19 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xS22rjMBB991eIeY6LHTubrR9LKYUttKWUvbUYRRnb6sqSVhqTJiH/vshxYzes
H8QwZ86FGe8jxkCuoWAgGk6itSq+VPR8d8O/vXXZbiOzx13S5D9/PNwSv8nvYBYYZvWGgj5YF8K0
ViFJo4+wcMgJg2q6nKfzJF3maQ+0Zo0q0GpLcW7ieTLP42QRp9lAbIwU6KFgvyPGGNv3b4io1/gO
BUtmH50Wvec1QnEaYgycUaED3HvpiWuC2QgKowl1SK07pSYAGaNKwZUajY/fflKPe+JKlVe/nqvV
98vNtslul3/Xj7vrzaZ6StOJ31F6a/tAVafFaT8T/NQvzswYA83bnvskjMP7jmxHZ3TGgLu6a1FT
iA77F/Bh+AWK/ACfRg/R/+rXoTqc1qpMbZ1Z+bMtQSW19E3pkPs+LXgy9mgR5F7783WfLgLWmdZS
SeYP6iD4dbgejP/LCC4GjAxxNeEsoiEe+K0nbMtK6hqddbI/JVS2FDkuVl8qnqUQHaJ/AAAA//8D
ACb4o2zTAgAA
H4sIAAAAAAAAAwAAAP//bFJda9wwEHz3rxD7HJeLfR+p30JJ6FFoWkoDR1OMopNt5SStTlpB0uP+
e5HPPTtH9WDEzs7OeFaHjDFQW6gYiI6TME7nHyPtHx5b3anbuH4R+83r+qv7vLt73O3Wf+AqMfD5
RQr6x/og0DgtSaE9wcJLTjJNvV4VZTm/mS1nPWBwK3WitY7yOebFrJjns0V+XQ7EDpWQASr2K2OM
sUP/TRbtVr5CxfoxfcXIEHgroTo3MQYedaoAD0EF4pbgagQFWpI2ubZR6wlAiLoWXOtR+HQOk/uY
E9e6/oabttT75e2n76YLwtwvNz9NbL5M9E6j31xvqIlWnPOZ4Od6dSHGGFhueu4PgV4+RHKRLuiM
AfdtNNJSsg6HJwip+Qmq+RHetR6z/91/T1LwsomB6yGeoX48562xdR6fw0V80CirQld7yUP/GxAI
3Uk76fQKEN+tCpxH46gm3EmbBt4Ma4XxIY3gYsAIiesJZ5EN9iC8BZKmbpRtpXde9TuGxtUl56ti
WYhiBdkx+wsAAP//AwCCr4Pp7AIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a488e858ca50c7e-EWR
- 8b153ee2df1c1abd-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -225,7 +225,7 @@ interactions:
Content-Type:
- application/json
Date:
- Wed, 17 Jul 2024 07:35:42 GMT
- Sun, 11 Aug 2024 03:47:41 GMT
Server:
- cloudflare
Transfer-Encoding:
@@ -237,7 +237,7 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '241'
- '129'
openai-version:
- '2020-10-01'
strict-transport-security:
@@ -255,7 +255,7 @@ interactions:
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_01c2f40fe9c73f883b7ed5b60c8067e5
- req_8999559867cac591d397beeb8b7411a4
status:
code: 200
message: OK

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,66 +37,73 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJmkP063CQ01vF8ENhkPSwN9BQH","object":"chat.completion.chunk","created":1720559138,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqP0HCGTc5lAFiz6hg3886o51m5","object":"chat.completion.chunk","created":1723348061,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -107,47 +114,49 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45f368ab6734-ATL
- 8b153ee6b9f31d0f-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Tue, 09 Jul 2024 21:05:38 GMT
- Sun, 11 Aug 2024 03:47:41 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=43lNOCqE3W6gMhKEVIvu20BhU4nI7wyQYcgn28hcb3o-1720559138-1.0.1.1-2pdG6KFn0J2AHC_tnhcxXCqmZ_RyZfwthLi5ET6Aq4v1L9z3EcYxV1D1CeKjOgEBJPLD9GUDdMmIR3h86QYx7w;
path=/; expires=Tue, 09-Jul-24 21:35:38 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=Egqd4fmAO_1W4ndNZFK.Wf44ur8lypMsC4cEfjJj5UQ-1723348061-1.0.1.1-iKXZ04_STTiJ3H09dEQj_87kmNxqIu0aQ13BcFJ7rKoL1Ftszkne.3hB410NPGyYQ_c3fwF6n7YJf1XIAoLX7A;
path=/; expires=Sun, 11-Aug-24 04:17:41 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=T4YvZnF6fWjq7JTPVyPFDIHaXBpT8E23GcG55Q0Ky6A-1720559138248-0.0.1.1-604800000;
- _cfuvid=EmRLTwumg3SuEmNoxJnSOwg7GtopjTgQ.eJoJi6csP0-1723348061571-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '159'
- '103'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999771'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_a58604fe17d3de5d4491ec972e98312b
- req_5fef078c76f5a28d412945bde7aa5709
status:
code: 200
message: OK
@@ -171,12 +180,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=43lNOCqE3W6gMhKEVIvu20BhU4nI7wyQYcgn28hcb3o-1720559138-1.0.1.1-2pdG6KFn0J2AHC_tnhcxXCqmZ_RyZfwthLi5ET6Aq4v1L9z3EcYxV1D1CeKjOgEBJPLD9GUDdMmIR3h86QYx7w;
_cfuvid=T4YvZnF6fWjq7JTPVyPFDIHaXBpT8E23GcG55Q0Ky6A-1720559138248-0.0.1.1-604800000
- __cf_bm=Egqd4fmAO_1W4ndNZFK.Wf44ur8lypMsC4cEfjJj5UQ-1723348061-1.0.1.1-iKXZ04_STTiJ3H09dEQj_87kmNxqIu0aQ13BcFJ7rKoL1Ftszkne.3hB410NPGyYQ_c3fwF6n7YJf1XIAoLX7A;
_cfuvid=EmRLTwumg3SuEmNoxJnSOwg7GtopjTgQ.eJoJi6csP0-1723348061571-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -186,29 +195,29 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSTW/bMAy9+1cIPMeDncRL7Gt2GNJhOWzdDmthKIriqJFETaK7FkH++yDHjd2g
PggEH98HSJ8SxkDtoGIgDpyEcTotn1Zr8/1lvViV9+rY6ru/zhW/8i+HpvA/YRIZuH2Sgt5YnwQa
pyUptBdYeMlJRtV8Mc2Kosxnyw4wuJM60hpH6RzTaTadp1mR5rOeeEAlZICK/UkYY+zUvTGi3ckX
qFg2eesYGQJvJFTXIcbAo44d4CGoQNwSTAZQoCVpY2rbaj0CCFHXgms9GF++06ge9sS1rk3Y/Cvv
Nq75upx+Pj7/vsfnb2ta6ZHfRfrVdYH2rRXX/Yzwa7+6MWMMLDcd94dALzctuZZu6IwB901rpKUY
HU4PEOLwA1TzM7wbPScf1Y99db6uVWPjPG7DzZZgr6wKh9pLHrq0EAjdxSLKPXbna99dBJxH46gm
PEobBZf99WD4Xwaw6DFC4nrEKZI+HoTXQNLUe2Ub6Z1X3Slh7+p5li3lbLvIS0jOyX8AAAD//wMA
s5wGAdMCAAA=
H4sIAAAAAAAAA2xSXW+jMBB851dY+xxOCZDS8NZTVZ0u96mqVb9OyHEM4WK8jr20jaL898qEBhrV
D8ja2dkZZr0LGINqCRkDseIkaqPCWUObv6maLmK1NcndevXj69XP1F5usPx1ASPPwMV/Keid9UVg
bZSkCvUBFlZykn7qJI3iODkfn0UtUONSKk8rDYUJhtE4SsLxNJzEHXGFlZAOMvYYMMbYrv16i3op
XyFj49F7pZbO8VJCdmxiDCwqXwHuXOWIa4JRDwrUJLV3rRulBgAhqlxwpXrhw9kN7n1OXKn82f1Z
fLtfz2l9nT7MZi+38+jhZr75PtA7jN6a1lDRaHHMZ4Af69mJGGOged1yrwVa+bsh09AJnTHgtmxq
qclbh90TON/8BFmyhw+t++Cz+79BClYWjeOqi6er7495KyyNxYU7iQ+KSldulVvJXfsb4AjNQdvr
tArQfFgVGIu1oZxwLbUfeN6tFfqH1IPTDiMkrgacadDZA7d1JOu8qHQprbFVu2MoTB5znkZnkYhS
CPbBGwAAAP//AwAm+K1k7AIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45f828146734-ATL
- 8b153eea1c7d1d0f-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -216,237 +225,37 @@ interactions:
Content-Type:
- application/json
Date:
- Tue, 09 Jul 2024 21:05:38 GMT
- Sun, 11 Aug 2024 03:47:42 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '215'
- '145'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_34b28faf23b6422bb0855e6a45c65e92
status:
code: 200
message: OK
- request:
body: '{"input": ["examples(Examples): Specific scenarios used to explain counting,
addition, and subtraction through the zoo theme, such as counting animals, adding
new ones, and subtracting adopted ones."], "model": "text-embedding-ada-002",
"encoding_format": "base64"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '265'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
method: POST
uri: https://api.openai.com/v1/embeddings
response:
body:
string: !!binary |
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
AA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45f9bc6c4589-ATL
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Tue, 09 Jul 2024 21:05:39 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=IuvCm3DYH_Yj2KCjQfa873zjAj_2TgaF47eD6tQ4Mhs-1720559139-1.0.1.1-fWDjNt6ARNNwSwU4ZoyX.VoMhynDVIi97V54zsXBMuMg_KjRGid.vTsH.YWP4cEbPWj_vdlZjnfl3ef4S90Eog;
path=/; expires=Tue, 09-Jul-24 21:35:39 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=uolQOZ2C52Hd5W7TXNWyFaYk4FEIIwP0B2MH49GGYtA-1720559139009-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400
openai-model:
- text-embedding-ada-002
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '18'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '10000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '9999953'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_5f80532d772393d55159f71cbd4e8211
- req_484db695db272f08fd81abe434031566
status:
code: 200
message: OK

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,73 +37,73 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJkXh6z3EfmS24VIKd3az5QmUI6","object":"chat.completion.chunk","created":1720559136,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqHno69BtnYbLfYfhVtHizWAADW","object":"chat.completion.chunk","created":1723348053,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,47 +114,49 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45eb19a3c00b-ATL
- 8b153eb69e8751d7-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Tue, 09 Jul 2024 21:05:36 GMT
- Sun, 11 Aug 2024 03:47:33 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=pA7SjF9QjLel4TzQ_lNj63W_TlcZBVsYreOxByhCguY-1720559136-1.0.1.1-HZhSIVb4ZIrgcL3DwhR7q53vNdieKNmEv_0ZAHDbmBBkD891hDrzxqLpBZSw7j_mFtCPQEjxpAMjD5JI3o8NEw;
path=/; expires=Tue, 09-Jul-24 21:35:36 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=Un5oS_9Ak_lw1ka2RpRBeQ6e5oYHWh8R3pn8e4Dhro0-1723348053-1.0.1.1-id5lHT34CDfkau.eEbwUaV5vyvXCOy2DF1lRIZLEg2FEmp.cSDBfukvxdUXfrYpI6C_tfJUMvc0CPLdVMiYk6Q;
path=/; expires=Sun, 11-Aug-24 04:17:33 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=OblnrTSQSq8R858tQhKPz9cFRCWv.MPPI1wxnvjeHJI-1720559136855-0.0.1.1-604800000;
- _cfuvid=WdfLHHTNBmmFEiEkPQxITPrwfKj1ni0Hr3gloqc_PZQ-1723348053999-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '96'
- '104'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999771'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_ee2fc8fd37b03ee0bcf92ff34f91a51c
- req_e7faefb0574e7c066ec0f5651dd23fc0
status:
code: 200
message: OK
@@ -178,12 +180,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=pA7SjF9QjLel4TzQ_lNj63W_TlcZBVsYreOxByhCguY-1720559136-1.0.1.1-HZhSIVb4ZIrgcL3DwhR7q53vNdieKNmEv_0ZAHDbmBBkD891hDrzxqLpBZSw7j_mFtCPQEjxpAMjD5JI3o8NEw;
_cfuvid=OblnrTSQSq8R858tQhKPz9cFRCWv.MPPI1wxnvjeHJI-1720559136855-0.0.1.1-604800000
- __cf_bm=Un5oS_9Ak_lw1ka2RpRBeQ6e5oYHWh8R3pn8e4Dhro0-1723348053-1.0.1.1-id5lHT34CDfkau.eEbwUaV5vyvXCOy2DF1lRIZLEg2FEmp.cSDBfukvxdUXfrYpI6C_tfJUMvc0CPLdVMiYk6Q;
_cfuvid=WdfLHHTNBmmFEiEkPQxITPrwfKj1ni0Hr3gloqc_PZQ-1723348053999-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -193,29 +195,29 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xS22rjMBB991eIeY4X5+K68WsoXbplt6WUQjfFKIp8SWSNkMabpiH/XuS4sRvW
D2KYM+fCjA8BY1CtIWUgSk6iNiqcbxZ3anfPy6sPnu92k23iVvttUl7/XPz+BSPPwNVGCvpi/RBY
GyWpQn2ChZWcpFcdJ5MojufjadICNa6l8rTCUDjDcBJNZmEUh+NpRyyxEtJByv4GjDF2aF8fUa/l
O6QsGn11aukcLySk5yHGwKLyHeDOVY64Jhj1oEBNUvvUulFqABCiygRXqjc+fYdB3e+JK5Wtdrc3
L83Y7h8Xm4/7l3/b13nx8Hz3MPA7Se9NGyhvtDjvZ4Cf++mFGWOged1ynwRa+ach09AFnTHgtmhq
qclHh8MSnB9eQjo7wrfRY/C/+q2rjue1KiyMxZW72BLkla5cmVnJXZsWHKE5WXi5t/Z8zbeLgLFY
G8oIt1J7wevuetD/Lz0YdxghcTXgxEEXD9zekayzvNKFtMZW7SkhN9k6Tq6mUZLPIwiOwScAAAD/
/wMAE8hqg9MCAAA=
H4sIAAAAAAAAAwAAAP//bFLLbtswELzrK4g9W4Wedax7gKZJEaRBG8dNIdA0JSuluAy5QmMY/veA
smIpRngQiJ2dndEs9wFj0GygYCC2nERrVLjo6OXq2+KnergUt7jcZavHdHl3Pf91/2MTw8wzcP0s
Bb2zvghsjZLUoD7CwkpO0k+N50maZhdRnvVAixupPK02FGYYJlGShVEexulA3GIjpIOC/QkYY2zf
f71FvZGvULBo9l5ppXO8llCcmhgDi8pXgDvXOOKaYDaCAjVJ7V3rTqkJQIiqFFypUfh49pP7mBNX
qrz6rR/y58XS/P++fl3lcbSKs+pmkUz0jqN3pjdUdVqc8pngp3pxJsYYaN723HuBVt52ZDo6ozMG
3NZdKzV567B/Auebn6DIDvCh9RB8dv87ScHKqnNcDfEM9cMpb4W1sbh2Z/FB1ejGbUsruet/Axyh
OWp7nV4Bug+rAmOxNVQS/pPaD7wY1grjQxrBfMAIiasJJw8Ge+B2jmRbVo2upTW26XcMlSlTzufJ
10QkcwgOwRsAAAD//wMA4myJGewCAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45ef8871c00b-ATL
- 8b153ebaa86051d7-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -223,35 +225,37 @@ interactions:
Content-Type:
- application/json
Date:
- Tue, 09 Jul 2024 21:05:37 GMT
- Sun, 11 Aug 2024 03:47:34 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '298'
- '154'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_cea16690999d7a4128fd55687dc31397
- req_0b7aeb131af94822763dbeed2e16e29a
status:
code: 200
message: OK

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,7 +37,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -46,64 +46,64 @@ interactions:
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB7Eitvp9hkOjbYRgXW6Bg1ojht","object":"chat.completion.chunk","created":1720089633,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqYEj1DLRuiVoYSIVwQeaQVVHuZ","object":"chat.completion.chunk","created":1723348070,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,47 +114,173 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de7f71abb9875b-MIA
- 8b153f224b651b13-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Thu, 04 Jul 2024 10:40:33 GMT
- Sun, 11 Aug 2024 03:47:51 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=prru0_uEX0CQ9o0IJgbUoJpelbHDHDG_yoAGsuIoCzk-1720089633-1.0.1.1-0nhcPmC68oICdU2qqqCnTZaIsyh2I1eZS1Na8jjxUsc4D5XEErZBzqWwFXCmlFuu2ByeR.aMkh.3nAct8HeDfg;
path=/; expires=Thu, 04-Jul-24 11:10:33 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=5QPtW8tZgIuyFhu.srsG1.WDBTULvFmZUx7xTB_ziZE-1723348071-1.0.1.1-4pqlRPvmgjVubalLj7OPta4kv2sGfoK4K2kLRdnzc9BxPdF5D9WkKAcy2zMiMr1SG7NDj4sj.b5h2tozV64M3w;
path=/; expires=Sun, 11-Aug-24 04:17:51 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=PzHZJLo7ACNtoscIB7neO.cKaLpAOi0ZEnBw0y5rxPg-1720089633856-0.0.1.1-604800000;
- _cfuvid=p.LIO1s8oYDVy7GGL2ZVTegN1oRm2lhHhkH_hAY4FKM-1723348071196-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '88'
- '87'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999772'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_143ed6cba5e114a9e4bd0c5b338162ca
- req_4c98dfba5e4872436ef107f5e4cc80e7
status:
code: 200
message: OK
- request:
body: !!binary |
CucpCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSvikKEgoQY3Jld2FpLnRl
bGVtZXRyeRLEDwoQ25N2CUXWE+tGtcWtFB2MZBIIMzx+Vwy1DnwqDENyZXcgQ3JlYXRlZDABOcjN
pXnvj+oXQSgpqXnvj+oXShoKDmNyZXdhaV92ZXJzaW9uEggKBjAuNTAuMEoaCg5weXRob25fdmVy
c2lvbhIICgYzLjExLjdKLgoIY3Jld19rZXkSIgogZDQyNjA4MzNhYjBjMjBiYjQ0OTIyYzc5OWFh
OTZiNGFKMQoHY3Jld19pZBImCiRiNTYzYjVmYi0zM2IyLTQ4MDAtOTVlMy04YTNlYmRjYzk2MjdK
HAoMY3Jld19wcm9jZXNzEgwKCnNlcXVlbnRpYWxKEQoLY3Jld19tZW1vcnkSAhAAShoKFGNyZXdf
bnVtYmVyX29mX3Rhc2tzEgIYAkobChVjcmV3X251bWJlcl9vZl9hZ2VudHMSAhgBSskDCgtjcmV3
X2FnZW50cxK5Awq2A1t7ImtleSI6ICI5MmU3ZWIxOTE2NjRjOTM1Nzg1ZWQ3ZDQyNDBhMjk0ZCIs
ICJpZCI6ICJlMzFlODhlZC0zZjk3LTRlYjAtYTQwMC0wMGUzNmZjODA0ZTAiLCAicm9sZSI6ICJT
Y29yZXIiLCAiZ29hbCI6ICJTY29yZSB0aGUgdGl0bGUiLCAiYmFja3N0b3J5IjogIllvdSdyZSBh
biBleHBlcnQgc2NvcmVyLCBzcGVjaWFsaXplZCBpbiBzY29yaW5nIHRpdGxlcy4iLCAidmVyYm9z
ZT8iOiB0cnVlLCAibWF4X2l0ZXIiOiAyNSwgIm1heF9ycG0iOiBudWxsLCAiaTE4biI6IG51bGws
ICJsbG0iOiAie1wibmFtZVwiOiBudWxsLCBcIm1vZGVsX25hbWVcIjogXCJncHQtNC0wMTI1LXBy
ZXZpZXdcIiwgXCJ0ZW1wZXJhdHVyZVwiOiAwLjcsIFwiY2xhc3NcIjogXCJDaGF0T3BlbkFJXCJ9
IiwgImRlbGVnYXRpb25fZW5hYmxlZD8iOiBmYWxzZSwgInRvb2xzX25hbWVzIjogW119XUq6BwoK
Y3Jld190YXNrcxKrBwqoB1t7ImtleSI6ICIyN2VmMzhjYzk5ZGE0YThkZWQ3MGVkNDA2ZTQ0YWI4
NiIsICJpZCI6ICI3NjM3NTE3MC0xODNjLTQxNjctYWQzOC0zZjhiYTIzMGYyMDciLCAiZGVzY3Jp
cHRpb24iOiAiR2l2ZSBtZSBhbiBpbnRlZ2VyIHNjb3JlIGJldHdlZW4gMS01IGZvciB0aGUgZm9s
bG93aW5nIHRpdGxlOiAnVGhlIGltcGFjdCBvZiBBSSBpbiB0aGUgZnV0dXJlIG9mIHdvcmsnIiwg
ImV4cGVjdGVkX291dHB1dCI6ICJUaGUgc2NvcmUgb2YgdGhlIHRpdGxlLiIsICJhc3luY19leGVj
dXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50X3JvbGUiOiAiU2Nv
cmVyIiwgImFnZW50X2tleSI6ICI5MmU3ZWIxOTE2NjRjOTM1Nzg1ZWQ3ZDQyNDBhMjk0ZCIsICJj
b250ZXh0IjogbnVsbCwgInRvb2xzX25hbWVzIjogW119LCB7ImtleSI6ICI2MDlkZWUzOTEwODhj
ZDFjODdiOGZhNjZhYTY3YWRiZSIsICJpZCI6ICIwZDU2YTUxMi1hMDAxLTQ5MmEtODM5Yi05M2M5
Y2EyZTFiYzkiLCAiZGVzY3JpcHRpb24iOiAiR2l2ZW4gdGhlIHNjb3JlIHRoZSB0aXRsZSAnVGhl
IGltcGFjdCBvZiBBSSBpbiB0aGUgZnV0dXJlIG9mIHdvcmsnIGdvdCwgZ2l2ZSBtZSBhbiBpbnRl
Z2VyIHNjb3JlIGJldHdlZW4gMS01IGZvciB0aGUgZm9sbG93aW5nIHRpdGxlOiAnUmV0dXJuIG9m
IHRoZSBKZWRpJywgeW91IE1VU1QgZ2l2ZSBpdCBhIHNjb3JlLCB1c2UgeW91ciBiZXN0IGp1ZGdt
ZW50IiwgImV4cGVjdGVkX291dHB1dCI6ICJUaGUgc2NvcmUgb2YgdGhlIHRpdGxlLiIsICJhc3lu
Y19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50X3JvbGUi
OiAiU2NvcmVyIiwgImFnZW50X2tleSI6ICI5MmU3ZWIxOTE2NjRjOTM1Nzg1ZWQ3ZDQyNDBhMjk0
ZCIsICJjb250ZXh0IjogbnVsbCwgInRvb2xzX25hbWVzIjogW119XUooCghwbGF0Zm9ybRIcChpt
YWNPUy0xNC4zLWFybTY0LWFybS02NGJpdEocChBwbGF0Zm9ybV9yZWxlYXNlEggKBjIzLjMuMEob
Cg9wbGF0Zm9ybV9zeXN0ZW0SCAoGRGFyd2luSnsKEHBsYXRmb3JtX3ZlcnNpb24SZwplRGFyd2lu
IEtlcm5lbCBWZXJzaW9uIDIzLjMuMDogV2VkIERlYyAyMCAyMTozMDo1OSBQU1QgMjAyMzsgcm9v
dDp4bnUtMTAwMDIuODEuNX43L1JFTEVBU0VfQVJNNjRfVDYwMzBKCgoEY3B1cxICGAx6AhgBhQEA
AQAAEo4CChAAZnb133OMFDyFhZzk3huTEghsdu3cn6I5lSoMVGFzayBDcmVhdGVkMAE5sC/Aee+P
6hdBIMTAee+P6hdKLgoIY3Jld19rZXkSIgogZDQyNjA4MzNhYjBjMjBiYjQ0OTIyYzc5OWFhOTZi
NGFKMQoHY3Jld19pZBImCiRiNTYzYjVmYi0zM2IyLTQ4MDAtOTVlMy04YTNlYmRjYzk2MjdKLgoI
dGFza19rZXkSIgogMjdlZjM4Y2M5OWRhNGE4ZGVkNzBlZDQwNmU0NGFiODZKMQoHdGFza19pZBIm
CiQ3NjM3NTE3MC0xODNjLTQxNjctYWQzOC0zZjhiYTIzMGYyMDd6AhgBhQEAAQAAEpACChAZEBfh
Ep9hQN6siG0PXlsnEgi91LNMQj3RhCoOVGFzayBFeGVjdXRpb24wATmIBsF574/qF0EAkN4T8I/q
F0ouCghjcmV3X2tleRIiCiBkNDI2MDgzM2FiMGMyMGJiNDQ5MjJjNzk5YWE5NmI0YUoxCgdjcmV3
X2lkEiYKJGI1NjNiNWZiLTMzYjItNDgwMC05NWUzLThhM2ViZGNjOTYyN0ouCgh0YXNrX2tleRIi
CiAyN2VmMzhjYzk5ZGE0YThkZWQ3MGVkNDA2ZTQ0YWI4NkoxCgd0YXNrX2lkEiYKJDc2Mzc1MTcw
LTE4M2MtNDE2Ny1hZDM4LTNmOGJhMjMwZjIwN3oCGAGFAQABAAASjgIKEMc7Val4H49PQlzuqO7k
dZcSCCzRH7zNOjJ5KgxUYXNrIENyZWF0ZWQwATngkg8U8I/qF0GI7hAU8I/qF0ouCghjcmV3X2tl
eRIiCiBkNDI2MDgzM2FiMGMyMGJiNDQ5MjJjNzk5YWE5NmI0YUoxCgdjcmV3X2lkEiYKJGI1NjNi
NWZiLTMzYjItNDgwMC05NWUzLThhM2ViZGNjOTYyN0ouCgh0YXNrX2tleRIiCiA2MDlkZWUzOTEw
ODhjZDFjODdiOGZhNjZhYTY3YWRiZUoxCgd0YXNrX2lkEiYKJDBkNTZhNTEyLWEwMDEtNDkyYS04
MzliLTkzYzljYTJlMWJjOXoCGAGFAQABAAASkAIKELWv57HTy2/d4wVHTbveqU0SCJ+hA/5TCZbR
Kg5UYXNrIEV4ZWN1dGlvbjABOdBfERTwj+oXQbDcz4Twj+oXSi4KCGNyZXdfa2V5EiIKIGQ0MjYw
ODMzYWIwYzIwYmI0NDkyMmM3OTlhYTk2YjRhSjEKB2NyZXdfaWQSJgokYjU2M2I1ZmItMzNiMi00
ODAwLTk1ZTMtOGEzZWJkY2M5NjI3Si4KCHRhc2tfa2V5EiIKIDYwOWRlZTM5MTA4OGNkMWM4N2I4
ZmE2NmFhNjdhZGJlSjEKB3Rhc2tfaWQSJgokMGQ1NmE1MTItYTAwMS00OTJhLTgzOWItOTNjOWNh
MmUxYmM5egIYAYUBAAEAABKHDwoQqSDY6nCrj8OOd+NHM4KGmBII6a9TnOdMn28qDENyZXcgQ3Jl
YXRlZDABOdhzBIfwj+oXQSiiCIfwj+oXShoKDmNyZXdhaV92ZXJzaW9uEggKBjAuNTAuMEoaCg5w
eXRob25fdmVyc2lvbhIICgYzLjExLjdKLgoIY3Jld19rZXkSIgogYTk1NDBjZDBlYWE1M2Y2NzU0
MzdlOWJkNGZhNWU0NGNKMQoHY3Jld19pZBImCiRkNThhZGY5YS03MTk3LTQzYjAtOGM1Ni1mNWY2
ODk2NmZkOTNKHAoMY3Jld19wcm9jZXNzEgwKCnNlcXVlbnRpYWxKEQoLY3Jld19tZW1vcnkSAhAA
ShoKFGNyZXdfbnVtYmVyX29mX3Rhc2tzEgIYAkobChVjcmV3X251bWJlcl9vZl9hZ2VudHMSAhgB
Sr4DCgtjcmV3X2FnZW50cxKuAwqrA1t7ImtleSI6ICI5MmU3ZWIxOTE2NjRjOTM1Nzg1ZWQ3ZDQy
NDBhMjk0ZCIsICJpZCI6ICI0ZDg3ZTBmNS04NjVhLTQzYTMtODg1Ny1iMmFiMWQ5ZGViMGIiLCAi
cm9sZSI6ICJTY29yZXIiLCAiZ29hbCI6ICJTY29yZSB0aGUgdGl0bGUiLCAiYmFja3N0b3J5Ijog
IllvdSdyZSBhbiBleHBlcnQgc2NvcmVyLCBzcGVjaWFsaXplZCBpbiBzY29yaW5nIHRpdGxlcy4i
LCAidmVyYm9zZT8iOiBmYWxzZSwgIm1heF9pdGVyIjogMjUsICJtYXhfcnBtIjogbnVsbCwgImkx
OG4iOiBudWxsLCAibGxtIjogIntcIm5hbWVcIjogbnVsbCwgXCJtb2RlbF9uYW1lXCI6IFwiZ3B0
LTRvXCIsIFwidGVtcGVyYXR1cmVcIjogMC43LCBcImNsYXNzXCI6IFwiQ2hhdE9wZW5BSVwifSIs
ICJkZWxlZ2F0aW9uX2VuYWJsZWQ/IjogZmFsc2UsICJ0b29sc19uYW1lcyI6IFtdfV1KiAcKCmNy
ZXdfdGFza3MS+QYK9gZbeyJrZXkiOiAiMjdlZjM4Y2M5OWRhNGE4ZGVkNzBlZDQwNmU0NGFiODYi
LCAiaWQiOiAiODBhOTM2ZjItOTlmNi00MWI3LWFkNTctMGZkMjYxZjI0NzEzIiwgImRlc2NyaXB0
aW9uIjogIkdpdmUgbWUgYW4gaW50ZWdlciBzY29yZSBiZXR3ZWVuIDEtNSBmb3IgdGhlIGZvbGxv
d2luZyB0aXRsZTogJ1RoZSBpbXBhY3Qgb2YgQUkgaW4gdGhlIGZ1dHVyZSBvZiB3b3JrJyIsICJl
eHBlY3RlZF9vdXRwdXQiOiAiVGhlIHNjb3JlIG9mIHRoZSB0aXRsZS4iLCAiYXN5bmNfZXhlY3V0
aW9uPyI6IGZhbHNlLCAiaHVtYW5faW5wdXQ/IjogZmFsc2UsICJhZ2VudF9yb2xlIjogIlNjb3Jl
ciIsICJhZ2VudF9rZXkiOiAiOTJlN2ViMTkxNjY0YzkzNTc4NWVkN2Q0MjQwYTI5NGQiLCAiY29u
dGV4dCI6IG51bGwsICJ0b29sc19uYW1lcyI6IFtdfSwgeyJrZXkiOiAiYjBkMzRhNmY2MjFhN2Iz
NTgwZDVkMWY0ZTI2NjViOTIiLCAiaWQiOiAiNWEyM2FkNGYtYTBkOC00Y2Q1LWFlNzAtZWRkMzU3
ZDcyNzMzIiwgImRlc2NyaXB0aW9uIjogIkdpdmVuIHRoZSBzY29yZSB0aGUgdGl0bGUgJ1RoZSBp
bXBhY3Qgb2YgQUkgaW4gdGhlIGZ1dHVyZSBvZiB3b3JrJyBnb3QsIGdpdmUgbWUgYW4gaW50ZWdl
ciBzY29yZSBiZXR3ZWVuIDEtNSBmb3IgdGhlIGZvbGxvd2luZyB0aXRsZTogJ1JldHVybiBvZiB0
aGUgSmVkaSciLCAiZXhwZWN0ZWRfb3V0cHV0IjogIlRoZSBzY29yZSBvZiB0aGUgdGl0bGUuIiwg
ImFzeW5jX2V4ZWN1dGlvbj8iOiBmYWxzZSwgImh1bWFuX2lucHV0PyI6IGZhbHNlLCAiYWdlbnRf
cm9sZSI6ICJTY29yZXIiLCAiYWdlbnRfa2V5IjogIjkyZTdlYjE5MTY2NGM5MzU3ODVlZDdkNDI0
MGEyOTRkIiwgImNvbnRleHQiOiBudWxsLCAidG9vbHNfbmFtZXMiOiBbXX1dSigKCHBsYXRmb3Jt
EhwKGm1hY09TLTE0LjMtYXJtNjQtYXJtLTY0Yml0ShwKEHBsYXRmb3JtX3JlbGVhc2USCAoGMjMu
My4wShsKD3BsYXRmb3JtX3N5c3RlbRIICgZEYXJ3aW5KewoQcGxhdGZvcm1fdmVyc2lvbhJnCmVE
YXJ3aW4gS2VybmVsIFZlcnNpb24gMjMuMy4wOiBXZWQgRGVjIDIwIDIxOjMwOjU5IFBTVCAyMDIz
OyByb290OnhudS0xMDAwMi44MS41fjcvUkVMRUFTRV9BUk02NF9UNjAzMEoKCgRjcHVzEgIYDHoC
GAGFAQABAAASjgIKEHabR3OeFlGL2kH/9Nr7AYISCCxAVkwO/lalKgxUYXNrIENyZWF0ZWQwATnQ
8CCH8I/qF0FQrCGH8I/qF0ouCghjcmV3X2tleRIiCiBhOTU0MGNkMGVhYTUzZjY3NTQzN2U5YmQ0
ZmE1ZTQ0Y0oxCgdjcmV3X2lkEiYKJGQ1OGFkZjlhLTcxOTctNDNiMC04YzU2LWY1ZjY4OTY2ZmQ5
M0ouCgh0YXNrX2tleRIiCiAyN2VmMzhjYzk5ZGE0YThkZWQ3MGVkNDA2ZTQ0YWI4NkoxCgd0YXNr
X2lkEiYKJDgwYTkzNmYyLTk5ZjYtNDFiNy1hZDU3LTBmZDI2MWYyNDcxM3oCGAGFAQABAAA=
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '5354'
Content-Type:
- application/x-protobuf
User-Agent:
- OTel-OTLP-Exporter-Python/1.26.0
method: POST
uri: https://telemetry.crewai.com:4319/v1/traces
response:
body:
string: "\n\0"
headers:
Content-Length:
- '2'
Content-Type:
- application/x-protobuf
Date:
- Sun, 11 Aug 2024 03:47:51 GMT
status:
code: 200
message: OK
@@ -178,12 +304,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=prru0_uEX0CQ9o0IJgbUoJpelbHDHDG_yoAGsuIoCzk-1720089633-1.0.1.1-0nhcPmC68oICdU2qqqCnTZaIsyh2I1eZS1Na8jjxUsc4D5XEErZBzqWwFXCmlFuu2ByeR.aMkh.3nAct8HeDfg;
_cfuvid=PzHZJLo7ACNtoscIB7neO.cKaLpAOi0ZEnBw0y5rxPg-1720089633856-0.0.1.1-604800000
- __cf_bm=5QPtW8tZgIuyFhu.srsG1.WDBTULvFmZUx7xTB_ziZE-1723348071-1.0.1.1-4pqlRPvmgjVubalLj7OPta4kv2sGfoK4K2kLRdnzc9BxPdF5D9WkKAcy2zMiMr1SG7NDj4sj.b5h2tozV64M3w;
_cfuvid=p.LIO1s8oYDVy7GGL2ZVTegN1oRm2lhHhkH_hAY4FKM-1723348071196-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -193,7 +319,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -203,19 +329,19 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSTW/bMAy9+1cIPMeDmzhN7FtXBM0OQzZkGFCshaEotK1WljSJXtsF+e+DHDd2
g/kgEHx8HyB9iBgDuYecgag5icaqOKtXn5c329v13xZNe/vzhVZ3v5Plapfeb9YwCQyze0JB76xP
wjRWIUmjT7BwyAmD6tVimiTL7HqWdkBj9qgCrbIUpyaeJtM0Tubx1awn1kYK9JCzXxFjjB26N0TU
e3yFnCWT906D3vMKIT8PMQbOqNAB7r30xDXBZACF0YQ6pNatUiOAjFGF4EoNxqfvMKqHPXGlCiXv
65dvdvXlz4/vN89ZmW2+4pq/bkd+J+k32wUqWy3O+xnh535+YcYYaN503K0wDjct2ZYu6IwBd1Xb
oKYQHQ4P4MPwA+TpET6MHqP/1Y99dTyvVZnKOrPzF1uCUmrp68Ih911a8GTsySLIPXbnaz9cBKwz
jaWCzDPqILjsrwfD/zKA8x4jQ1yNOPOojwf+zRM2RSl1hc462Z0SSlvs54vrWbIoswSiY/QPAAD/
/wMAhPn0nNMCAAA=
H4sIAAAAAAAAA2xSXWvbQBB816849tkqsmTXjh4bGkpLaUoJJGmKuJxWstz78t0erWv838vJiqWY
3IM4dnZ2RrN3SBiDroaSgdhwEsrK9CrQ7pGub7DefRRfH7Z/UN1+3n/JdvU9rWEWGeZ5i4JeWO+E
UVYidUafYOGQE8ap81VeFIt1tpr3gDI1ykhrLaULk+ZZvkizZTovBuLGdAI9lOxnwhhjh/4bLeoa
/0LJstlLRaH3vEUoz02MgTMyVoB733nimmA2gsJoQh1d6yDlBCBjZCW4lKPw6Rwm9zEnLmX16fvV
h3z+2G7v6va2qB/Wm3/bu5v7MNE7jd7b3lATtDjnM8HP9fJCjDHQXPXcH8I4/BbIBrqgMwbctUGh
pmgdDk/gY/MTlIsjvGo9Jm/df01ScNgEz+UQz1A/nvOWprXOPPuL+KDpdOc3lUPu+98AT8aetKNO
rwDh1arAOqMsVWR+o44D18NaYXxII7gcMDLE5YSzTAZ74PeeUFVNp1t01nX9jqGxVcH5Kn+fi3wF
yTH5DwAA//8DAA0QdyXsAgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de7f74dd79875b-MIA
- 8b153f261dc91b13-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -223,35 +349,37 @@ interactions:
Content-Type:
- application/json
Date:
- Thu, 04 Jul 2024 10:40:34 GMT
- Sun, 11 Aug 2024 03:47:51 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '204'
- '135'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_44477611de78d7a3456f061b9fa808bf
- req_9e9eb4e29cd76385ff5a0632e5f04107
status:
code: 200
message: OK
@@ -266,9 +394,9 @@ interactions:
give me an integer score between 1-5 for the following title: ''Return of the
Jedi''\n\nThis is the expect criteria for your final answer: The score of the
title. \n you MUST return the actual complete content as the final answer, not
a summary.\n\nThis is the context you''re working with:\n{\n \"score\": 4\n}\n\nBegin!
This is VERY important to you, use the tools available and give your best Final
Answer, your job depends on it!\n\nThought:\n", "role": "user"}], "model": "gpt-4o",
a summary.\n\nThis is the context you''re working with:\n4\n\nBegin! This is
VERY important to you, use the tools available and give your best Final Answer,
your job depends on it!\n\nThought:\n", "role": "user"}], "model": "gpt-4o",
"n": 1, "stop": ["\nObservation"], "stream": true, "temperature": 0.7}'
headers:
accept:
@@ -278,16 +406,16 @@ interactions:
connection:
- keep-alive
content-length:
- '1115'
- '1096'
content-type:
- application/json
cookie:
- __cf_bm=prru0_uEX0CQ9o0IJgbUoJpelbHDHDG_yoAGsuIoCzk-1720089633-1.0.1.1-0nhcPmC68oICdU2qqqCnTZaIsyh2I1eZS1Na8jjxUsc4D5XEErZBzqWwFXCmlFuu2ByeR.aMkh.3nAct8HeDfg;
_cfuvid=PzHZJLo7ACNtoscIB7neO.cKaLpAOi0ZEnBw0y5rxPg-1720089633856-0.0.1.1-604800000
- __cf_bm=5QPtW8tZgIuyFhu.srsG1.WDBTULvFmZUx7xTB_ziZE-1723348071-1.0.1.1-4pqlRPvmgjVubalLj7OPta4kv2sGfoK4K2kLRdnzc9BxPdF5D9WkKAcy2zMiMr1SG7NDj4sj.b5h2tozV64M3w;
_cfuvid=p.LIO1s8oYDVy7GGL2ZVTegN1oRm2lhHhkH_hAY4FKM-1723348071196-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -297,7 +425,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -306,64 +434,64 @@ interactions:
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"5"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hEB88vj8WJPFFx58DMXcrw6Gam6S","object":"chat.completion.chunk","created":1720089634,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqa3vQGWqJhPOGGsc3yi2IQrkXy","object":"chat.completion.chunk","created":1723348072,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -374,46 +502,48 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de7f77befb875b-MIA
- 8b153f296fe21b13-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Thu, 04 Jul 2024 10:40:34 GMT
- Sun, 11 Aug 2024 03:47:52 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '141'
- '84'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999744'
- '29999747'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_de7d660da3b145b703b4e9bf4ea29bb7
- req_c6b9a7953a144bdae85290c45e7b9808
status:
code: 200
message: OK
- request:
body: '{"messages": [{"role": "user", "content": "5"}, {"role": "system", "content":
body: '{"messages": [{"role": "user", "content": "4"}, {"role": "system", "content":
"I''m gonna convert this raw text into valid JSON."}], "model": "gpt-4o", "tool_choice":
{"type": "function", "function": {"name": "ScoreOutput"}}, "tools": [{"type":
"function", "function": {"name": "ScoreOutput", "description": "Correctly extracted
@@ -432,12 +562,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=prru0_uEX0CQ9o0IJgbUoJpelbHDHDG_yoAGsuIoCzk-1720089633-1.0.1.1-0nhcPmC68oICdU2qqqCnTZaIsyh2I1eZS1Na8jjxUsc4D5XEErZBzqWwFXCmlFuu2ByeR.aMkh.3nAct8HeDfg;
_cfuvid=PzHZJLo7ACNtoscIB7neO.cKaLpAOi0ZEnBw0y5rxPg-1720089633856-0.0.1.1-604800000
- __cf_bm=5QPtW8tZgIuyFhu.srsG1.WDBTULvFmZUx7xTB_ziZE-1723348071-1.0.1.1-4pqlRPvmgjVubalLj7OPta4kv2sGfoK4K2kLRdnzc9BxPdF5D9WkKAcy2zMiMr1SG7NDj4sj.b5h2tozV64M3w;
_cfuvid=p.LIO1s8oYDVy7GGL2ZVTegN1oRm2lhHhkH_hAY4FKM-1723348071196-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -447,7 +577,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -457,19 +587,19 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSW0vrQBB+z69Y5rk5pE1jbR49CoqIctRz8ULYbiZp7N7YnYBS+t9l09jEcvKw
DPPNd2Em24gxaErIGYg1J6GsjJfri7Ol//3nZ13psyd+dT0/X/1930wfk/LXHCaBYVZvKOiL9UMY
ZSVSY/QeFg45YVCdLmZJcro8SbMOUKZEGWi1pXhu4lkym8dJFk/Tnrg2jUAPOXuOGGNs270hoi7x
HXKWTL46Cr3nNUJ+GGIMnJGhA9z7xhPXBJMBFEYT6pBat1KOADJGFoJLORjvv+2oHvbEpSz8ZXpu
8a68ufGbxf2tfLj+pzZuhSO/vfSH7QJVrRaH/YzwQz8/MmMMNFcd914Yh7ct2ZaO6IwBd3WrUFOI
DtsX8GH4BfJsB99Gd9H/6te+2h3WKk1tnVn5oy1B1ejGrwuH3HdpwZOxe4sg99qdr/12EbDOKEsF
mQ3qIHjaXw+G/2UAsx4jQ1yOOFnUxwP/4QlVUTW6Rmdd050SKlsITBbLNE2TCqJd9AkAAP//AwAp
6S9s0wIAAA==
H4sIAAAAAAAAAwAAAP//bFJdi9swEHz3rxD7HBfHji+p367flIMWUlpo7zCKsrbVyJIirWnSkP9e
5PhiX6gejNjZ2RnP6hQxBnILBQPRcBKtVfHrjvZ8/XXp828yuVe7+Zs7RR8/ON783b+FWWCYzW8U
9Mx6JUxrFZI0+gILh5wwTJ0v0yxbrJJl2gOt2aIKtNpSvDBxmqSLOMnjeTYQGyMFeijYr4gxxk79
N1jUWzxAwZLZc6VF73mNUFybGANnVKgA91564ppgNoLCaEIdXOtOqQlAxqhScKVG4cs5Te5jTlyp
Mv9T48OnH7vDwe2/r6vP794364f0+HOidxl9tL2hqtPims8Ev9aLGzHGQPO2566FcfilI9vRDZ0x
4K7uWtQUrMPpEXxofoRicYYXrefof/enSQoOq85zNcQz1M/XvJWprTMbfxMfVFJL35QOue9/AzwZ
e9EOOr0CdC9WBdaZ1lJJZoc6DFwNa4XxIY1gPmBkiKsJJ48Ge+CPnrAtK6lrdNbJfsdQ2TIT29Xm
LhXZBqJz9A8AAP//AwAxMkSV7AIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de7f7bb96a875b-MIA
- 8b153f2e3a891b13-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -477,35 +607,37 @@ interactions:
Content-Type:
- application/json
Date:
- Thu, 04 Jul 2024 10:40:35 GMT
- Sun, 11 Aug 2024 03:47:53 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '248'
- '144'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_d4468112448550b93eaa4ffa2b9e3154
- req_3c679103db5fd9fc27e574c83b694985
status:
code: 200
message: OK

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,73 +37,66 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9jCJjSE1CUTbcdPQgWhGnINQBfDJr","object":"chat.completion.chunk","created":1720559135,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_ce0793330f","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqBf3SqH7OR1W8ieuH4HtG1DOky","object":"chat.completion.chunk","created":1723348047,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_c9aa9c0491","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,47 +107,49 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45e24b19bd4d-ATL
- 8b153e92fbf00309-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Tue, 09 Jul 2024 21:05:35 GMT
- Sun, 11 Aug 2024 03:47:28 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=N7yNe.ilaHt2MJPusthFVyL5PrE._f_nyf4RfU.oIv0-1720559135-1.0.1.1-oCOj_tvpNYp16zBvNbxW.TwSHAFXRiB_i23X4XBw_o01D1_7OKj_HwRNZWdwg9DjDh_C_FSMKTonmzQmsUmtdg;
path=/; expires=Tue, 09-Jul-24 21:35:35 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=m2P1KCzRwRuVWnwW2ZUuGAy_4XqpcuLiRQnp40wLlEY-1723348048-1.0.1.1-MD3YC0Jx9sFCpesN8kdH6Som3wz3T5kkxjKx7P7Bz5qt9eqPUyHU1WEXQW59thHuFB8gmXaj3csvukRNEIquVQ;
path=/; expires=Sun, 11-Aug-24 04:17:28 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=aiUOV0PnMjHles7YFoHcFY7PK2Ag6MdKr0GWZzZ_rZo-1720559135403-0.0.1.1-604800000;
- _cfuvid=vawfBa6sAJ0fC3b0nSivxyi17gAgfOYPp7X7eN2A__o-1723348048305-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '105'
- '115'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999771'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_759b74b995b84a531eae7df3eddf1196
- req_421dac1cc228039fbe6657d6f8fb01e1
status:
code: 200
message: OK
@@ -178,12 +173,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=N7yNe.ilaHt2MJPusthFVyL5PrE._f_nyf4RfU.oIv0-1720559135-1.0.1.1-oCOj_tvpNYp16zBvNbxW.TwSHAFXRiB_i23X4XBw_o01D1_7OKj_HwRNZWdwg9DjDh_C_FSMKTonmzQmsUmtdg;
_cfuvid=aiUOV0PnMjHles7YFoHcFY7PK2Ag6MdKr0GWZzZ_rZo-1720559135403-0.0.1.1-604800000
- __cf_bm=m2P1KCzRwRuVWnwW2ZUuGAy_4XqpcuLiRQnp40wLlEY-1723348048-1.0.1.1-MD3YC0Jx9sFCpesN8kdH6Som3wz3T5kkxjKx7P7Bz5qt9eqPUyHU1WEXQW59thHuFB8gmXaj3csvukRNEIquVQ;
_cfuvid=vawfBa6sAJ0fC3b0nSivxyi17gAgfOYPp7X7eN2A__o-1723348048305-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -193,29 +188,29 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.3
- 3.11.7
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xS22rcMBB991eIeV4XX9ZJ1m8lEGgKSZtSUnLBKPLYq40sCWmcdFn234u8ztpZ
6gcxzJlzYca7iDGQNZQMxJqT6KyKV5vL680mzX58Xd4l773D7O63vMjP7rfrKwuLwDAvGxT0wfoi
TGcVkjT6AAuHnDCopudZUhSrNC8GoDM1qkBrLcVLE2dJtoyTIk7zkbg2UqCHkj1GjDG2G94QUdf4
F0qWLD46HXrPW4TyOMQYOKNCB7j30hPXBIsJFEYT6pBa90rNADJGVYIrNRkfvt2snvbElareb27S
b28/v7/VRXtP13X75+GMF+hmfgfprR0CNb0Wx/3M8GO/PDFjDDTvBu4vYRze9mR7OqEzBty1fYea
QnTYPYEPw09QLvfwaXQf/a9+Hqv9ca3KtNaZF3+yJWikln5dOeR+SAuejD1YBLnn4Xz9p4uAdaaz
VJF5RR0EL8brwfS/TGAxYmSIqxmniMZ44LeesKsaqVt01snhlNDYSmByvsrzPGkg2kf/AAAA//8D
AKtPZkLTAgAA
H4sIAAAAAAAAAwAAAP//bFJNT+swELznV1h7JihpU2hy5EMgIUBPnNADRa7rJAbHa+wNvKrqf39y
EtpQ4UNk7ezsTGa9jRgDtYaCgWg4idbqOO/o4/Jz9eGXZypFrjGr1PP9F6Z3mwuCk8DA1ZsU9M06
FdhaLUmhGWDhJCcZpqbns/k8WybZsgdaXEsdaLWlOMN4lsyyOFnE6XwkNqiE9FCwvxFjjG37b7Bo
1vIfFCw5+a600nteSyj2TYyBQx0qwL1XnrgZ7I6gQEPSBNem03oCEKIuBdf6IDyc7eR+yIlrXV43
Z+rq7mGdq2t/Y//cPlXqYt6oz4neMHpje0NVZ8Q+nwm+rxdHYoyB4W3PfRLo5GNHtqMjOmPAXd21
0lCwDtsX8KH5BYpsBz9ad9Fv99dJCk5Wned6jGes7/Z5a6ytw5U/ig8qZZRvSie5738DPKEdtINO
rwDdj1WBddhaKgnfpQkDl+Na4fCQDuBixAiJ6wlnEY32wG88ybaslKmls071O4bKliLnPBdJlqcQ
7aL/AAAA//8DAJv1zAjsAgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8a0b45e5ffd7bd4d-ATL
- 8b153e974ebd0309-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -223,35 +218,37 @@ interactions:
Content-Type:
- application/json
Date:
- Tue, 09 Jul 2024 21:05:36 GMT
- Sun, 11 Aug 2024 03:47:29 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '153'
- '167'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '22000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '21999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_36cd16b74a2085c72139d09309d21e39
- req_980a093c60a79560676fdf81b466027b
status:
code: 200
message: OK

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,7 +37,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -46,64 +46,64 @@ interactions:
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hED3nsqYzSiiorjVCmuS96jevbba","object":"chat.completion.chunk","created":1720089753,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_4008e3b719","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqbK9nEwDJ3RwTPpm8JdGkWyydC","object":"chat.completion.chunk","created":1723348073,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3cd8b62c3b","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,47 +114,49 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de825e5af34c0d-MIA
- 8b153f32dfd300af-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Thu, 04 Jul 2024 10:42:33 GMT
- Sun, 11 Aug 2024 03:47:53 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=XNWuPzzvDCR6vj8X4pwaZq_1zuK8TwGTpIqHQc0EbWw-1720089753-1.0.1.1-f61Hw2P4yRgm8mOUN2RhRrvndJQwdxwAS5T8bsfbqXLXSlbSKQONzTKvwOzVDnhHR3gy56nDVq.uAOE1cvvDDQ;
path=/; expires=Thu, 04-Jul-24 11:12:33 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=.B1LfODznhqA_BTpcwwvzYEEvtlwh.4zOkFqbAPkvxA-1723348073-1.0.1.1-jRvHCDqRmBKS6BVHHLT66XDocltsGEGGYeljfjPw8B6V.89cQqFM1xRLtARgxtEBwuk1OfMbgzlGTtK1Y05N2w;
path=/; expires=Sun, 11-Aug-24 04:17:53 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=ZIy1L3HZwWapuY1KTKhqiOCKReYrjZwlhU2BUCsEpUs-1720089753602-0.0.1.1-604800000;
- _cfuvid=gf3xlpTbZrrssZpakp0KjF4wKNpxpdO5eJQmN3msCME-1723348073853-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '135'
- '93'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999772'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_ae342ee6e026c54b420e69ccb8235272
- req_b00d8ce1b0211616c4b5133f6f392989
status:
code: 200
message: OK
@@ -178,12 +180,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=XNWuPzzvDCR6vj8X4pwaZq_1zuK8TwGTpIqHQc0EbWw-1720089753-1.0.1.1-f61Hw2P4yRgm8mOUN2RhRrvndJQwdxwAS5T8bsfbqXLXSlbSKQONzTKvwOzVDnhHR3gy56nDVq.uAOE1cvvDDQ;
_cfuvid=ZIy1L3HZwWapuY1KTKhqiOCKReYrjZwlhU2BUCsEpUs-1720089753602-0.0.1.1-604800000
- __cf_bm=.B1LfODznhqA_BTpcwwvzYEEvtlwh.4zOkFqbAPkvxA-1723348073-1.0.1.1-jRvHCDqRmBKS6BVHHLT66XDocltsGEGGYeljfjPw8B6V.89cQqFM1xRLtARgxtEBwuk1OfMbgzlGTtK1Y05N2w;
_cfuvid=gf3xlpTbZrrssZpakp0KjF4wKNpxpdO5eJQmN3msCME-1723348073853-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -193,7 +195,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -203,19 +205,19 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSS2/bMAy++1cIPMeDm9pN49se3YYVWwKsww5rYagy7biTRUGit6RB/vsgx43d
YD4IBD9+D5DeR0JAU0IuQG0kq9bqeLm5+ZDWqvz4nJZ/7nbrBOV2/c0/+XdvP2uYBQY9PqHiF9Yb
Ra3VyA2ZI6wcSsagerGYJ8n1cpGlPdBSiTrQastxSvE8madxksUXlwNxQ41CD7n4FQkhxL5/Q0RT
4hZykcxeOi16L2uE/DQkBDjSoQPS+8azNAyzEVRkGE1IbTqtJwAT6UJJrUfj47ef1OOepNbF8uuP
9ep2O7+6/Zvebd//VKvdzacvyk78jtI72weqOqNO+5ngp35+ZiYEGNn23O+KHK46th2f0YUA6equ
RcMhOuzvwYfhe8jTA7waPUT/qx+G6nBaq6baOnr0Z1uCqjGN3xQOpe/TgmeyR4sg99Cfr3t1EbCO
WssF0280QfB6uB6M/8sIZgPGxFJPOFk0xAO/84xtUTWmRmdd058SKluU2eLqMllUywSiQ/QPAAD/
/wMAo1FYu9MCAAA=
H4sIAAAAAAAAAwAAAP//bFLZbtswEHzXVxD7bBWOLB/Ray/AQJuiKXqmEBh6daQklyZXRQLD/15Q
VizFKB8EYmdnZzTLQyIEtDsoBKhGsjJOp9cd71X9pnn7uNp/bzLabb9WP1cfzPLh417CLDLo/gEV
P7NeKTJOI7dkT7DyKBnj1Kt1tljkm/k67wFDO9SRVjtOc0qzeZan82V6tRiIDbUKAxTiVyKEEIf+
Gy3aHT5CIeaz54rBEGSNUJybhABPOlZAhtAGlpZhNoKKLKONrm2n9QRgIl0qqfUofDqHyX3MSWpd
fsPPr7/c1PJ91/z1m2bLn7bh+sftu4neafST6w1VnVXnfCb4uV5ciAkBVpqee6vI403HruMLuhAg
fd0ZtBytw+EOQmy+gyI/wovWY/K/++9JCh6rLkg9xDPUj+e8NdXO0324iA+q1rahKT3K0P8GBCZ3
0o46vQJ0L1YFzpNxXDL9QRsHboa1wviQRnA5YEws9YSzTAZ7EJ4Coymr1tbonW/7HUPlyoWU62yV
qWwNyTH5BwAA//8DAPuG24PsAgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de8261dc6c4c0d-MIA
- 8b153f37aa6000af-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -223,35 +225,37 @@ interactions:
Content-Type:
- application/json
Date:
- Thu, 04 Jul 2024 10:42:34 GMT
- Sun, 11 Aug 2024 03:47:54 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '193'
- '149'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_7cf743796bf4a52626b923135ff8f936
- req_397c0cba59599e681abd93783570f8e3
status:
code: 200
message: OK

View File

@@ -27,7 +27,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -37,7 +37,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -46,64 +46,64 @@ interactions:
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: 'data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
string: 'data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Thought"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
I"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
now"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
can"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
give"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
a"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
great"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"\n"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"Final"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
Answer"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"
"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{"content":"4"},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9hry2om1JBkreHpDHFbfD2YDtg2oA","object":"chat.completion.chunk","created":1720242582,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_d576307f90","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: {"id":"chatcmpl-9utqd4oqGno8A1QbDi12Q5Sh4PeyS","object":"chat.completion.chunk","created":1723348075,"model":"gpt-4o-2024-05-13","system_fingerprint":"fp_3aa7262c27","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}
data: [DONE]
@@ -114,47 +114,49 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89ed158b8bf0a566-MIA
- 8b153f3be9bc02e9-GRU
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Sat, 06 Jul 2024 05:09:42 GMT
- Sun, 11 Aug 2024 03:47:55 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=5C3MG9ni0I5bZoHGzfXZq16obGaD1INR3_.wX4CRPAk-1720242582-1.0.1.1-fZiD6L1FdBiC0gqcmBK9_IaHhbHPQi4z04fxYQtoDc9KbYqPvxm_sxP_RkuZX_AyPkHgu85IRq9E6MUAZJGzwQ;
path=/; expires=Sat, 06-Jul-24 05:39:42 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=8g.KmWDDAGOdhMuFPmR1mBns.Q5MqULQdNUGjE9DZ58-1723348075-1.0.1.1-KhB_JR20Av6aeRWCF6GE9mimF9VTywhULA5o49eFqLD0yUrNbRoOJathVYgpQtOggdR15QEJo3WNf0qFqyVgOQ;
path=/; expires=Sun, 11-Aug-24 04:17:55 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=YP7Z3XnHPKQDU2nOhrLzkxr8InOv42HLWchJd1ogneQ-1720242582534-0.0.1.1-604800000;
- _cfuvid=RupyUL1LgJ67iHu8820IuQrmH9ODjS7MEQfrrnAq9OA-1723348075198-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '90'
- '85'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999772'
- '29999771'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_36d283adbca77945609f0da658047ba0
- req_f9484c825a8d3271680d755306451a4a
status:
code: 200
message: OK
@@ -178,12 +180,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=5C3MG9ni0I5bZoHGzfXZq16obGaD1INR3_.wX4CRPAk-1720242582-1.0.1.1-fZiD6L1FdBiC0gqcmBK9_IaHhbHPQi4z04fxYQtoDc9KbYqPvxm_sxP_RkuZX_AyPkHgu85IRq9E6MUAZJGzwQ;
_cfuvid=YP7Z3XnHPKQDU2nOhrLzkxr8InOv42HLWchJd1ogneQ-1720242582534-0.0.1.1-604800000
- __cf_bm=8g.KmWDDAGOdhMuFPmR1mBns.Q5MqULQdNUGjE9DZ58-1723348075-1.0.1.1-KhB_JR20Av6aeRWCF6GE9mimF9VTywhULA5o49eFqLD0yUrNbRoOJathVYgpQtOggdR15QEJo3WNf0qFqyVgOQ;
_cfuvid=RupyUL1LgJ67iHu8820IuQrmH9ODjS7MEQfrrnAq9OA-1723348075198-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -193,7 +195,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -203,19 +205,19 @@ interactions:
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xS30/bMBB+z19h3XMzhbShJW8wiW1MGogixDRQ5DpOanB8ln1hK1X/d+Q0NKFa
HqzTfff90F22EWOgSsgZiDUn0Vgdn63dJl3d3rSv5xuf/b7Di/PLq/JUVYub5wwmgYGrZynog/VF
YGO1JIVmDwsnOcmgejJPk3SWZou0AxospQ602lI8wziAcZLFJ9OeuEYlpIec/YkYY2zbvSGiKeU/
yFky+eg00nteS8gPQ4yBQx06wL1XnrghmAygQEPShNSm1XoEEKIuBNd6MN5/21E97IlrXdxePlzN
/s6/rpZv3x+WF9P7nz++vdz/8iO/vfTGdoGq1ojDfkb4oZ8fmTEGhjcddynQyeuWbEtHdMaAu7pt
pKEQHbaP4MPwI+SzHXwa3UX/q5/6andYq8baOlz5oy1BpYzy68JJ7ru04Ant3iLIPXXnaz9dBKzD
xlJB+CJNEFz014PhfxnArMcIiesRJ4v6eOA3nmRTVMrU0lmnulNCZYsym59Ok3l1lkC0i94BAAD/
/wMAylx2sdMCAAA=
H4sIAAAAAAAAAwAAAP//bFLRbtswDHz3Vwh8jofESerWzwW6otsCLBuwYR0MRaEdtbKoSfTWLMi/
D3Lc2A2mB0Pg8Xjnow6JEKC3UAhQO8mqcSa9afnX9uMnfVvtHqj6fn+T8zq7fb/GJ12/wCQyaPOE
il9Z7xQ1ziBrsidYeZSMceosz+bzxfU0X3ZAQ1s0kVY7TheUZtNskU6X6WzeE3ekFQYoxI9ECCEO
3TdatFt8gUJMJ6+VBkOQNUJxbhICPJlYARmCDiwtw2QAFVlGG13b1pgRwESmVNKYQfh0DqP7kJM0
plx9+fB3tfnzma+Qv+2/zvIZLu5+3z2P9E6j964zVLVWnfMZ4ed6cSEmBFjZdNy1Io+rll3LF3Qh
QPq6bdBytA6HRwix+RGKxRHetB6T/91/jlLwWLVBmj6evn48522odp424SI+qLTVYVd6lKH7DQhM
7qQddToFaN+sCpynxnHJ9Iw2Drzu1wrDQxrAZY8xsTQjzjLp7UHYB8amrLSt0Tuvux1D5cq5lHl2
laksh+SY/AMAAP//AwCqdjJQ7AIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89ed158dee46a566-MIA
- 8b153f3f4cb302e9-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -223,35 +225,37 @@ interactions:
Content-Type:
- application/json
Date:
- Sat, 06 Jul 2024 05:09:42 GMT
- Sun, 11 Aug 2024 03:47:55 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '144'
- '139'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '16000000'
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '15999969'
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_990566332b9b1851c581486c0a4da0e6
- req_3d3dc2e3c00204620b28fa9a5ae45fb8
status:
code: 200
message: OK

View File

@@ -15,18 +15,18 @@ def runner():
def test_train_default_iterations(train_crew, runner):
result = runner.invoke(train)
train_crew.assert_called_once_with(5)
train_crew.assert_called_once_with(5, "trained_agents_data.pkl")
assert result.exit_code == 0
assert "Training the crew for 5 iterations" in result.output
assert "Training the Crew for 5 iterations" in result.output
@mock.patch("crewai.cli.cli.train_crew")
def test_train_custom_iterations(train_crew, runner):
result = runner.invoke(train, ["--n_iterations", "10"])
train_crew.assert_called_once_with(10)
train_crew.assert_called_once_with(10, "trained_agents_data.pkl")
assert result.exit_code == 0
assert "Training the crew for 10 iterations" in result.output
assert "Training the Crew for 10 iterations" in result.output
@mock.patch("crewai.cli.cli.train_crew")

View File

@@ -6,7 +6,6 @@ from crewai.cli.train_crew import train_crew
@mock.patch("crewai.cli.train_crew.subprocess.run")
def test_train_crew_positive_iterations(mock_subprocess_run):
# Arrange
n_iterations = 5
mock_subprocess_run.return_value = subprocess.CompletedProcess(
args=["poetry", "run", "train", str(n_iterations)],
@@ -15,12 +14,10 @@ def test_train_crew_positive_iterations(mock_subprocess_run):
stderr="",
)
# Act
train_crew(n_iterations)
train_crew(n_iterations, "trained_agents_data.pkl")
# Assert
mock_subprocess_run.assert_called_once_with(
["poetry", "run", "train", str(n_iterations)],
["poetry", "run", "train", str(n_iterations), "trained_agents_data.pkl"],
capture_output=False,
text=True,
check=True,
@@ -29,7 +26,7 @@ def test_train_crew_positive_iterations(mock_subprocess_run):
@mock.patch("crewai.cli.train_crew.click")
def test_train_crew_zero_iterations(click):
train_crew(0)
train_crew(0, "trained_agents_data.pkl")
click.echo.assert_called_once_with(
"An unexpected error occurred: The number of iterations must be a positive integer.",
err=True,
@@ -38,7 +35,7 @@ def test_train_crew_zero_iterations(click):
@mock.patch("crewai.cli.train_crew.click")
def test_train_crew_negative_iterations(click):
train_crew(-2)
train_crew(-2, "trained_agents_data.pkl")
click.echo.assert_called_once_with(
"An unexpected error occurred: The number of iterations must be a positive integer.",
err=True,
@@ -55,10 +52,13 @@ def test_train_crew_called_process_error(mock_subprocess_run, click):
output="Error",
stderr="Some error occurred",
)
train_crew(n_iterations)
train_crew(n_iterations, "trained_agents_data.pkl")
mock_subprocess_run.assert_called_once_with(
["poetry", "run", "train", "5"], capture_output=False, text=True, check=True
["poetry", "run", "train", str(n_iterations), "trained_agents_data.pkl"],
capture_output=False,
text=True,
check=True,
)
click.echo.assert_has_calls(
[
@@ -74,13 +74,15 @@ def test_train_crew_called_process_error(mock_subprocess_run, click):
@mock.patch("crewai.cli.train_crew.click")
@mock.patch("crewai.cli.train_crew.subprocess.run")
def test_train_crew_unexpected_exception(mock_subprocess_run, click):
# Arrange
n_iterations = 5
mock_subprocess_run.side_effect = Exception("Unexpected error")
train_crew(n_iterations)
train_crew(n_iterations, "trained_agents_data.pkl")
mock_subprocess_run.assert_called_once_with(
["poetry", "run", "train", "5"], capture_output=False, text=True, check=True
["poetry", "run", "train", str(n_iterations), "trained_agents_data.pkl"],
capture_output=False,
text=True,
check=True,
)
click.echo.assert_called_once_with(
"An unexpected error occurred: Unexpected error", err=True

View File

@@ -8,6 +8,7 @@ from unittest.mock import MagicMock, patch
import pydantic_core
import pytest
from crewai.agent import Agent
from crewai.agents.cache import CacheHandler
from crewai.crew import Crew
@@ -621,7 +622,7 @@ def test_sequential_async_task_execution_completion():
sequential_result = sequential_crew.kickoff()
assert sequential_result.raw.startswith(
"The history of artificial intelligence (AI) is marked by several pivotal events that have shaped its evolution and impact on various sectors."
"**The Evolution of Artificial Intelligence: Key Milestones in Shaping AI**"
)
@@ -1806,7 +1807,9 @@ def test_crew_train_success(task_evaluator, crew_training_handler, kickoff):
agents=[researcher, writer],
tasks=[task],
)
crew.train(n_iterations=2, inputs={"topic": "AI"})
crew.train(
n_iterations=2, inputs={"topic": "AI"}, filename="trained_agents_data.pkl"
)
task_evaluator.assert_has_calls(
[
mock.call(researcher),
@@ -1890,7 +1893,7 @@ def test__setup_for_training():
for agent in agents:
assert agent.allow_delegation is True
crew._setup_for_training()
crew._setup_for_training("trained_agents_data.pkl")
assert crew._train is True
assert task.human_input is True

View File

@@ -18,7 +18,7 @@ interactions:
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -28,7 +28,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -38,120 +38,120 @@ interactions:
response:
body:
string: !!binary |
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
//8DAChkfwLgIAAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de8402cc8ddab1-MIA
- 8b153e6ea9de6222-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -159,17 +159,19 @@ interactions:
Content-Type:
- application/json
Date:
- Thu, 04 Jul 2024 10:43:40 GMT
- Sun, 11 Aug 2024 03:47:22 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=4yTFGytKZgiKE08enzMel3PhLQLu9mwQY7gk_lH43Bc-1720089820-1.0.1.1-4V06JbYY1zuYkbV7SSudBUPyqHqm6yFze0ufE2rHtJTtOmU.XLh_k1M9h.a.oVJGC44GhO25bv5s5224Ic.p6w;
path=/; expires=Thu, 04-Jul-24 11:13:40 GMT; domain=.api.openai.com; HttpOnly;
- __cf_bm=3_Ms78KXrd_LcY.8Imn064iAABns5_c_BMJSUzNsVWQ-1723348042-1.0.1.1-3aJD3slxS37uMgCLF0pOOxfrG06G.8s.nPG2e0H2mTQVuXNjiurEZR7mcOC3IzB461jg.JAaXj1V7ZrGKb0hwg;
path=/; expires=Sun, 11-Aug-24 04:17:22 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=04ERWHryLOXBKqyH.MpOILpw8OtW9Tchzbutsc9OJnE-1720089820726-0.0.1.1-604800000;
- _cfuvid=RVP74vpqOk9uxHeCwZCkQayz.1ClJA1.bparJnAlSkM-1723348042306-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-allow-origin:
- '*'
alt-svc:
@@ -179,11 +181,11 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '22'
- '19'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
@@ -197,7 +199,7 @@ interactions:
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_49a762eade78fd2313d74a32fa22ead7
- req_746fc90dafa4e328cee4f91e29d7d29e
status:
code: 200
message: OK
@@ -216,12 +218,12 @@ interactions:
content-type:
- application/json
cookie:
- __cf_bm=4yTFGytKZgiKE08enzMel3PhLQLu9mwQY7gk_lH43Bc-1720089820-1.0.1.1-4V06JbYY1zuYkbV7SSudBUPyqHqm6yFze0ufE2rHtJTtOmU.XLh_k1M9h.a.oVJGC44GhO25bv5s5224Ic.p6w;
_cfuvid=04ERWHryLOXBKqyH.MpOILpw8OtW9Tchzbutsc9OJnE-1720089820726-0.0.1.1-604800000
- __cf_bm=3_Ms78KXrd_LcY.8Imn064iAABns5_c_BMJSUzNsVWQ-1723348042-1.0.1.1-3aJD3slxS37uMgCLF0pOOxfrG06G.8s.nPG2e0H2mTQVuXNjiurEZR7mcOC3IzB461jg.JAaXj1V7ZrGKb0hwg;
_cfuvid=RVP74vpqOk9uxHeCwZCkQayz.1ClJA1.bparJnAlSkM-1723348042306-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.35.10
- OpenAI/Python 1.40.3
x-stainless-arch:
- arm64
x-stainless-async:
@@ -231,7 +233,7 @@ interactions:
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.35.10
- 1.40.3
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
@@ -353,7 +355,7 @@ interactions:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 89de84040d6cdab1-MIA
- 8b153e71ebd46222-GRU
Connection:
- keep-alive
Content-Encoding:
@@ -361,11 +363,13 @@ interactions:
Content-Type:
- application/json
Date:
- Thu, 04 Jul 2024 10:43:40 GMT
- Sun, 11 Aug 2024 03:47:22 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-allow-origin:
- '*'
alt-svc:
@@ -375,11 +379,11 @@ interactions:
openai-organization:
- crewai-iuxna1
openai-processing-ms:
- '15'
- '21'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=31536000; includeSubDomains
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
@@ -393,7 +397,7 @@ interactions:
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_c684605ab95c8ee822c1b082fc95d416
- req_079003c5e65bc24dab7a3a5c80d5bba8
status:
code: 200
message: OK

View File

@@ -1,5 +1,6 @@
"""Test Agent creation and execution basic functionality."""
import os
import hashlib
import json
from unittest.mock import MagicMock, patch
@@ -258,7 +259,7 @@ def test_output_pydantic_hierarchical():
)
result = crew.kickoff()
assert isinstance(result.pydantic, ScoreOutput)
assert result.to_dict() == {"score": 4}
assert result.to_dict() == {"score": 5}
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -277,6 +278,7 @@ def test_output_json_sequential():
description="Give me an integer score between 1-5 for the following title: 'The impact of AI in the future of work'",
expected_output="The score of the title.",
output_json=ScoreOutput,
output_file="score.json",
agent=scorer,
)
@@ -314,8 +316,8 @@ def test_output_json_hierarchical():
manager_llm=ChatOpenAI(model="gpt-4o"),
)
result = crew.kickoff()
assert '{"score": 4}' == result.json
assert result.to_dict() == {"score": 4}
assert '{"score": 5}' == result.json
assert result.to_dict() == {"score": 5}
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -399,8 +401,8 @@ def test_output_json_dict_hierarchical():
manager_llm=ChatOpenAI(model="gpt-4o"),
)
result = crew.kickoff()
assert {"score": 5} == result.json_dict
assert result.to_dict() == {"score": 5}
assert {"score": 4} == result.json_dict
assert result.to_dict() == {"score": 4}
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -471,7 +473,7 @@ def test_output_json_to_another_task():
crew = Crew(agents=[scorer], tasks=[task1, task2])
result = crew.kickoff()
assert '{"score": 5}' == result.json
assert '{"score": 4}' == result.json
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -519,11 +521,13 @@ def test_save_task_json_output():
)
crew = Crew(agents=[scorer], tasks=[task])
crew.kickoff()
with patch.object(Task, "_save_file") as save_file:
save_file.return_value = None
crew.kickoff()
save_file.assert_called_once_with({"score": 4})
output_file_exists = os.path.exists("score.json")
assert output_file_exists
assert {"score": 4} == json.loads(open("score.json").read())
if output_file_exists:
os.remove("score.json")
@pytest.mark.vcr(filter_headers=["authorization"])
@@ -547,11 +551,13 @@ def test_save_task_pydantic_output():
)
crew = Crew(agents=[scorer], tasks=[task])
crew.kickoff()
with patch.object(Task, "_save_file") as save_file:
save_file.return_value = None
crew.kickoff()
save_file.assert_called_once_with('{"score":4}')
output_file_exists = os.path.exists("score.json")
assert output_file_exists
assert {"score": 4} == json.loads(open("score.json").read())
if output_file_exists:
os.remove("score.json")
@pytest.mark.vcr(filter_headers=["authorization"])