Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72793fddd4 | ||
|
|
ef5dc4517a | ||
|
|
8f80c9fceb | ||
|
|
c566747d4a | ||
|
|
3a114463f9 | ||
|
|
b4dfb19a3a | ||
|
|
30ef8ed70b | ||
|
|
e1541b2619 | ||
|
|
7c4889f5c9 | ||
|
|
c403497cf4 | ||
|
|
fed397f745 | ||
|
|
d55e596800 | ||
|
|
f700e014c9 | ||
|
|
4e496d7a20 | ||
|
|
8663c7e1c2 | ||
|
|
cb1a98cabf | ||
|
|
369e6d109c | ||
|
|
2c011631f9 | ||
|
|
d3fc2b4477 | ||
|
|
516d45deaa | ||
|
|
7ad51d9d05 | ||
|
|
e3887ae36e | ||
|
|
e23bc2aaa7 | ||
|
|
7fc405408e | ||
|
|
cac06adc6c | ||
|
|
c8ec03424a | ||
|
|
bfea85d22c | ||
|
|
836e9fc545 | ||
|
|
c3726092fd | ||
|
|
dabf02a90d | ||
|
|
2912c93d77 |
No files matched your search
@@ -1,19 +1,27 @@
|
||||
CrewAI takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organization.
|
||||
If you believe you have found a security vulnerability in any CrewAI product or service, please report it to us as described below.
|
||||
## CrewAI Security Vulnerability Reporting Policy
|
||||
|
||||
## Reporting a Vulnerability
|
||||
Please do not report security vulnerabilities through public GitHub issues.
|
||||
To report a vulnerability, please email us at security@crewai.com.
|
||||
Please include the requested information listed below so that we can triage your report more quickly
|
||||
CrewAI prioritizes the security of our software products, services, and GitHub repositories. To promptly address vulnerabilities, follow these steps for reporting security issues:
|
||||
|
||||
- Type of issue (e.g. SQL injection, cross-site scripting, etc.)
|
||||
- Full paths of source file(s) related to the manifestation of the issue
|
||||
- The location of the affected source code (tag/branch/commit or direct URL)
|
||||
- Any special configuration required to reproduce the issue
|
||||
- Step-by-step instructions to reproduce the issue (please include screenshots if needed)
|
||||
- Proof-of-concept or exploit code (if possible)
|
||||
- Impact of the issue, including how an attacker might exploit the issue
|
||||
### Reporting Process
|
||||
Do **not** report vulnerabilities via public GitHub issues.
|
||||
|
||||
Once we have received your report, we will respond to you at the email address you provide. If the issue is confirmed, we will release a patch as soon as possible depending on the complexity of the issue.
|
||||
Email all vulnerability reports directly to:
|
||||
**security@crewai.com**
|
||||
|
||||
At this time, we are not offering a bug bounty program. Any rewards will be at our discretion.
|
||||
### Required Information
|
||||
To help us quickly validate and remediate the issue, your report must include:
|
||||
|
||||
- **Vulnerability Type:** Clearly state the vulnerability type (e.g., SQL injection, XSS, privilege escalation).
|
||||
- **Affected Source Code:** Provide full file paths and direct URLs (branch, tag, or commit).
|
||||
- **Reproduction Steps:** Include detailed, step-by-step instructions. Screenshots are recommended.
|
||||
- **Special Configuration:** Document any special settings or configurations required to reproduce.
|
||||
- **Proof-of-Concept (PoC):** Provide exploit or PoC code (if available).
|
||||
- **Impact Assessment:** Clearly explain the severity and potential exploitation scenarios.
|
||||
|
||||
### Our Response
|
||||
- We will acknowledge receipt of your report promptly via your provided email.
|
||||
- Confirmed vulnerabilities will receive priority remediation based on severity.
|
||||
- Patches will be released as swiftly as possible following verification.
|
||||
|
||||
### Reward Notice
|
||||
Currently, we do not offer a bug bounty program. Rewards, if issued, are discretionary.
|
||||
@@ -5,12 +5,29 @@ on: [pull_request]
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TARGET_BRANCH: ${{ github.event.pull_request.base.ref }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install Requirements
|
||||
- name: Fetch Target Branch
|
||||
run: git fetch origin $TARGET_BRANCH --depth=1
|
||||
|
||||
- name: Install Ruff
|
||||
run: pip install ruff
|
||||
|
||||
- name: Get Changed Python Files
|
||||
id: changed-files
|
||||
run: |
|
||||
pip install ruff
|
||||
merge_base=$(git merge-base origin/"$TARGET_BRANCH" HEAD)
|
||||
changed_files=$(git diff --name-only --diff-filter=ACMRTUB "$merge_base" | grep '\.py$' || true)
|
||||
echo "files<<EOF" >> $GITHUB_OUTPUT
|
||||
echo "$changed_files" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Run Ruff Linter
|
||||
run: ruff check
|
||||
- name: Run Ruff on Changed Files
|
||||
if: ${{ steps.changed-files.outputs.files != '' }}
|
||||
run: |
|
||||
echo "${{ steps.changed-files.outputs.files }}" | tr " " "\n" | xargs -I{} ruff check "{}"
|
||||
@@ -2,8 +2,3 @@ exclude = [
|
||||
"templates",
|
||||
"__init__.py",
|
||||
]
|
||||
|
||||
[lint]
|
||||
select = [
|
||||
"I", # isort rules
|
||||
]
|
||||
@@ -504,7 +504,7 @@ This example demonstrates how to:
|
||||
|
||||
CrewAI supports using various LLMs through a variety of connection options. By default your agents will use the OpenAI API when querying the model. However, there are several other ways to allow your agents to connect to models. For example, you can configure your agents to use a local model via the Ollama tool.
|
||||
|
||||
Please refer to the [Connect CrewAI to LLMs](https://docs.crewai.com/how-to/LLM-Connections/) page for details on configuring you agents' connections to models.
|
||||
Please refer to the [Connect CrewAI to LLMs](https://docs.crewai.com/how-to/LLM-Connections/) page for details on configuring your agents' connections to models.
|
||||
|
||||
## How CrewAI Compares
|
||||
|
||||
|
||||
@@ -110,6 +110,8 @@ crewai reset-memories [OPTIONS]
|
||||
- `-s, --short`: Reset SHORT TERM memory
|
||||
- `-e, --entities`: Reset ENTITIES memory
|
||||
- `-k, --kickoff-outputs`: Reset LATEST KICKOFF TASK OUTPUTS
|
||||
- `-kn, --knowledge`: Reset KNOWLEDGE storage
|
||||
- `-akn, --agent-knowledge`: Reset AGENT KNOWLEDGE storage
|
||||
- `-a, --all`: Reset ALL memories
|
||||
|
||||
Example:
|
||||
|
||||
@@ -27,7 +27,7 @@ A crew in crewAI represents a collaborative group of agents working together to
|
||||
| **Step Callback** _(optional)_ | `step_callback` | A function that is called after each step of every agent. This can be used to log the agent's actions or to perform other operations; it won't override the agent-specific `step_callback`. |
|
||||
| **Task Callback** _(optional)_ | `task_callback` | A function that is called after the completion of each task. Useful for monitoring or additional operations post-task execution. |
|
||||
| **Share Crew** _(optional)_ | `share_crew` | Whether you want to share the complete crew information and execution with the crewAI team to make the library better, and allow us to train models. |
|
||||
| **Output Log File** _(optional)_ | `output_log_file` | Set to True to save logs as logs.txt in the current directory or provide a file path. Logs will be in JSON format if the filename ends in .json, otherwise .txt. Defautls to `None`. |
|
||||
| **Output Log File** _(optional)_ | `output_log_file` | Set to True to save logs as logs.txt in the current directory or provide a file path. Logs will be in JSON format if the filename ends in .json, otherwise .txt. Defaults to `None`. |
|
||||
| **Manager Agent** _(optional)_ | `manager_agent` | `manager` sets a custom agent that will be used as a manager. |
|
||||
| **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. |
|
||||
@@ -117,6 +117,12 @@ class YourCrewName:
|
||||
)
|
||||
```
|
||||
|
||||
How to run the above code:
|
||||
|
||||
```python code
|
||||
YourCrewName().crew().kickoff(inputs={"any": "input here"})
|
||||
```
|
||||
|
||||
<Note>
|
||||
Tasks will be executed in the order they are defined.
|
||||
</Note>
|
||||
@@ -184,6 +190,11 @@ class YourCrewName:
|
||||
verbose=True
|
||||
)
|
||||
```
|
||||
How to run the above code:
|
||||
|
||||
```python code
|
||||
YourCrewName().crew().kickoff(inputs={})
|
||||
```
|
||||
|
||||
In this example:
|
||||
|
||||
@@ -246,7 +257,7 @@ print(f"Token Usage: {crew_output.token_usage}")
|
||||
You can see real time log of the crew execution, by setting `output_log_file` as a `True(Boolean)` or a `file_name(str)`. Supports logging of events as both `file_name.txt` and `file_name.json`.
|
||||
In case of `True(Boolean)` will save as `logs.txt`.
|
||||
|
||||
In case of `output_log_file` is set as `False(Booelan)` or `None`, the logs will not be populated.
|
||||
In case of `output_log_file` is set as `False(Boolean)` or `None`, the logs will not be populated.
|
||||
|
||||
```python Code
|
||||
# Save crew logs
|
||||
|
||||
@@ -75,11 +75,12 @@ class ExampleFlow(Flow):
|
||||
|
||||
|
||||
flow = ExampleFlow()
|
||||
flow.plot()
|
||||
result = flow.kickoff()
|
||||
|
||||
print(f"Generated fun fact: {result}")
|
||||
```
|
||||
|
||||

|
||||
In the above example, we have created a simple Flow that generates a random city using OpenAI and then generates a fun fact about that city. The Flow consists of two tasks: `generate_city` and `generate_fun_fact`. The `generate_city` task is the starting point of the Flow, and the `generate_fun_fact` task listens for the output of the `generate_city` task.
|
||||
|
||||
Each Flow instance automatically receives a unique identifier (UUID) in its state, which helps track and manage flow executions. The state can also store additional data (like the generated city and fun fact) that persists throughout the flow's execution.
|
||||
@@ -146,6 +147,7 @@ class OutputExampleFlow(Flow):
|
||||
|
||||
|
||||
flow = OutputExampleFlow()
|
||||
flow.plot("my_flow_plot")
|
||||
final_output = flow.kickoff()
|
||||
|
||||
print("---- Final Output ----")
|
||||
@@ -158,9 +160,10 @@ Second method received: Output from first_method
|
||||
```
|
||||
|
||||
</CodeGroup>
|
||||

|
||||
|
||||
In this example, the `second_method` is the last method to complete, so its output will be the final output of the Flow.
|
||||
The `kickoff()` method will return the final output, which is then printed to the console.
|
||||
The `kickoff()` method will return the final output, which is then printed to the console. The `plot()` method will generate the HTML file, which will help you understand the flow.
|
||||
|
||||
#### Accessing and Updating State
|
||||
|
||||
@@ -192,6 +195,7 @@ class StateExampleFlow(Flow[ExampleState]):
|
||||
return self.state.message
|
||||
|
||||
flow = StateExampleFlow()
|
||||
flow.plot("my_flow_plot")
|
||||
final_output = flow.kickoff()
|
||||
print(f"Final Output: {final_output}")
|
||||
print("Final State:")
|
||||
@@ -206,6 +210,8 @@ counter=2 message='Hello from first_method - updated by second_method'
|
||||
|
||||
</CodeGroup>
|
||||
|
||||

|
||||
|
||||
In this example, the state is updated by both `first_method` and `second_method`.
|
||||
After the Flow has run, you can access the final state to see the updates made by these methods.
|
||||
|
||||
@@ -249,9 +255,12 @@ class UnstructuredExampleFlow(Flow):
|
||||
|
||||
|
||||
flow = UnstructuredExampleFlow()
|
||||
flow.plot("my_flow_plot")
|
||||
flow.kickoff()
|
||||
```
|
||||
|
||||

|
||||
|
||||
**Note:** The `id` field is automatically generated and preserved throughout the flow's execution. You don't need to manage or set it manually, and it will be maintained even when updating the state with new data.
|
||||
|
||||
**Key Points:**
|
||||
@@ -302,6 +311,8 @@ flow = StructuredExampleFlow()
|
||||
flow.kickoff()
|
||||
```
|
||||
|
||||

|
||||
|
||||
**Key Points:**
|
||||
|
||||
- **Defined Schema:** `ExampleState` clearly outlines the state structure, enhancing code readability and maintainability.
|
||||
@@ -436,6 +447,7 @@ class OrExampleFlow(Flow):
|
||||
|
||||
|
||||
flow = OrExampleFlow()
|
||||
flow.plot("my_flow_plot")
|
||||
flow.kickoff()
|
||||
```
|
||||
|
||||
@@ -446,6 +458,8 @@ Logger: Hello from the second method
|
||||
|
||||
</CodeGroup>
|
||||
|
||||

|
||||
|
||||
When you run this Flow, the `logger` method will be triggered by the output of either the `start_method` or the `second_method`.
|
||||
The `or_` function is used to listen to multiple methods and trigger the listener method when any of the specified methods emit an output.
|
||||
|
||||
@@ -474,6 +488,7 @@ class AndExampleFlow(Flow):
|
||||
print(self.state)
|
||||
|
||||
flow = AndExampleFlow()
|
||||
flow.plot()
|
||||
flow.kickoff()
|
||||
```
|
||||
|
||||
@@ -484,6 +499,8 @@ flow.kickoff()
|
||||
|
||||
</CodeGroup>
|
||||
|
||||

|
||||
|
||||
When you run this Flow, the `logger` method will be triggered only when both the `start_method` and the `second_method` emit an output.
|
||||
The `and_` function is used to listen to multiple methods and trigger the listener method only when all the specified methods emit an output.
|
||||
|
||||
@@ -527,6 +544,7 @@ class RouterFlow(Flow[ExampleState]):
|
||||
|
||||
|
||||
flow = RouterFlow()
|
||||
flow.plot("my_flow_plot")
|
||||
flow.kickoff()
|
||||
```
|
||||
|
||||
@@ -538,6 +556,8 @@ Fourth method running
|
||||
|
||||
</CodeGroup>
|
||||
|
||||

|
||||
|
||||
In the above example, the `start_method` generates a random boolean value and sets it in the state.
|
||||
The `second_method` uses the `@router()` decorator to define conditional routing logic based on the value of the boolean.
|
||||
If the boolean is `True`, the method returns `"success"`, and if it is `False`, the method returns `"failed"`.
|
||||
@@ -641,6 +661,7 @@ class MarketResearchFlow(Flow[MarketResearchState]):
|
||||
# Usage example
|
||||
async def run_flow():
|
||||
flow = MarketResearchFlow()
|
||||
flow.plot("MarketResearchFlowPlot")
|
||||
result = await flow.kickoff_async(inputs={"product": "AI-powered chatbots"})
|
||||
return result
|
||||
|
||||
@@ -650,6 +671,8 @@ if __name__ == "__main__":
|
||||
asyncio.run(run_flow())
|
||||
```
|
||||
|
||||

|
||||
|
||||
This example demonstrates several key features of using Agents in flows:
|
||||
|
||||
1. **Structured Output**: Using Pydantic models to define the expected output format (`MarketAnalysis`) ensures type safety and structured data throughout the flow.
|
||||
@@ -746,13 +769,16 @@ def kickoff():
|
||||
|
||||
def plot():
|
||||
poem_flow = PoemFlow()
|
||||
poem_flow.plot()
|
||||
poem_flow.plot("PoemFlowPlot")
|
||||
|
||||
if __name__ == "__main__":
|
||||
kickoff()
|
||||
plot()
|
||||
```
|
||||
|
||||
In this example, the `PoemFlow` class defines a flow that generates a sentence count, uses the `PoemCrew` to generate a poem, and then saves the poem to a file. The flow is kicked off by calling the `kickoff()` method.
|
||||
In this example, the `PoemFlow` class defines a flow that generates a sentence count, uses the `PoemCrew` to generate a poem, and then saves the poem to a file. The flow is kicked off by calling the `kickoff()` method. The PoemFlowPlot will be generated by `plot()` method.
|
||||
|
||||

|
||||
|
||||
### Running the Flow
|
||||
|
||||
|
||||
@@ -397,6 +397,53 @@ result = crew.kickoff(inputs={"question": "What city does John live in and how o
|
||||
John is 30 years old and lives in San Francisco.
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
## Query Rewriting
|
||||
|
||||
CrewAI implements an intelligent query rewriting mechanism to optimize knowledge retrieval. When an agent needs to search through knowledge sources, the raw task prompt is automatically transformed into a more effective search query.
|
||||
|
||||
### How Query Rewriting Works
|
||||
|
||||
1. When an agent executes a task with knowledge sources available, the `_get_knowledge_search_query` method is triggered
|
||||
2. The agent's LLM is used to transform the original task prompt into an optimized search query
|
||||
3. This optimized query is then used to retrieve relevant information from knowledge sources
|
||||
|
||||
### Benefits of Query Rewriting
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Improved Retrieval Accuracy" icon="bullseye-arrow">
|
||||
By focusing on key concepts and removing irrelevant content, query rewriting helps retrieve more relevant information.
|
||||
</Card>
|
||||
<Card title="Context Awareness" icon="brain">
|
||||
The rewritten queries are designed to be more specific and context-aware for vector database retrieval.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Implementation Details
|
||||
|
||||
Query rewriting happens transparently using a system prompt that instructs the LLM to:
|
||||
|
||||
- Focus on key words of the intended task
|
||||
- Make the query more specific and context-aware
|
||||
- Remove irrelevant content like output format instructions
|
||||
- Generate only the rewritten query without preamble or postamble
|
||||
|
||||
<Tip>
|
||||
This mechanism is fully automatic and requires no configuration from users. The agent's LLM is used to perform the query rewriting, so using a more capable LLM can improve the quality of rewritten queries.
|
||||
</Tip>
|
||||
|
||||
### Example
|
||||
|
||||
```python
|
||||
# Original task prompt
|
||||
task_prompt = "Answer the following questions about the user's favorite movies: What movie did John watch last week? Format your answer in JSON."
|
||||
|
||||
# Behind the scenes, this might be rewritten as:
|
||||
rewritten_query = "What movies did John watch last week?"
|
||||
```
|
||||
|
||||
The rewritten query is more focused on the core information need and removes irrelevant instructions about output formatting.
|
||||
|
||||
## Clearing Knowledge
|
||||
|
||||
If you need to clear the knowledge stored in CrewAI, you can use the `crewai reset-memories` command with the `--knowledge` option.
|
||||
@@ -450,6 +497,13 @@ crew = Crew(
|
||||
result = crew.kickoff(
|
||||
inputs={"question": "What is the storage capacity of the XPS 13?"}
|
||||
)
|
||||
|
||||
# Resetting the agent specific knowledge via crew object
|
||||
crew.reset_memories(command_type = 'agent_knowledge')
|
||||
|
||||
# Resetting the agent specific knowledge via CLI
|
||||
crewai reset-memories --agent-knowledge
|
||||
crewai reset-memories -akn
|
||||
```
|
||||
|
||||
<Info>
|
||||
@@ -653,4 +707,11 @@ recent_news = SpaceNewsKnowledgeSource(
|
||||
- Configure appropriate embedding models
|
||||
- Consider using local embedding providers for faster processing
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="One Time Knowledge">
|
||||
- With the typical file structure provided by CrewAI, knowledge sources are embedded every time the kickoff is triggered.
|
||||
- If the knowledge sources are large, this leads to inefficiency and increased latency, as the same data is embedded each time.
|
||||
- To resolve this, directly initialize the knowledge parameter instead of the knowledge_sources parameter.
|
||||
- Link to the issue to get complete idea [Github Issue](https://github.com/crewAIInc/crewAI/issues/2755)
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
@@ -27,23 +27,19 @@ Large Language Models (LLMs) are the core intelligence behind CrewAI agents. The
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Setting Up Your LLM
|
||||
## Setting up your LLM
|
||||
|
||||
There are three ways to configure LLMs in CrewAI. Choose the method that best fits your workflow:
|
||||
There are different places in CrewAI code where you can specify the model to use. Once you specify the model you are using, you will need to provide the configuration (like an API key) for each of the model providers you use. See the [provider configuration examples](#provider-configuration-examples) section for your provider.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="1. Environment Variables">
|
||||
The simplest way to get started. Set these variables in your environment:
|
||||
The simplest way to get started. Set the model in your environment directly, through an `.env` file or in your app code. If you used `crewai create` to bootstrap your project, it will be set already.
|
||||
|
||||
```bash
|
||||
# Required: Your API key for authentication
|
||||
OPENAI_API_KEY=<your-api-key>
|
||||
```bash .env
|
||||
MODEL=model-id # e.g. gpt-4o, gemini-2.0-flash, claude-3-sonnet-...
|
||||
|
||||
# Optional: Default model selection
|
||||
OPENAI_MODEL_NAME=gpt-4o-mini # Default if not set
|
||||
|
||||
# Optional: Organization ID (if applicable)
|
||||
OPENAI_ORGANIZATION_ID=<your-org-id>
|
||||
# Be sure to set your API keys here too. See the Provider
|
||||
# section below.
|
||||
```
|
||||
|
||||
<Warning>
|
||||
@@ -53,13 +49,13 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi
|
||||
<Tab title="2. YAML Configuration">
|
||||
Create a YAML file to define your agent configurations. This method is great for version control and team collaboration:
|
||||
|
||||
```yaml
|
||||
```yaml agents.yaml {6}
|
||||
researcher:
|
||||
role: Research Specialist
|
||||
goal: Conduct comprehensive research and analysis
|
||||
backstory: A dedicated research professional with years of experience
|
||||
verbose: true
|
||||
llm: openai/gpt-4o-mini # your model here
|
||||
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
|
||||
# (see provider configuration examples below for more)
|
||||
```
|
||||
|
||||
@@ -74,23 +70,23 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi
|
||||
<Tab title="3. Direct Code">
|
||||
For maximum flexibility, configure LLMs directly in your Python code:
|
||||
|
||||
```python
|
||||
```python {4,8}
|
||||
from crewai import LLM
|
||||
|
||||
# Basic configuration
|
||||
llm = LLM(model="gpt-4")
|
||||
llm = LLM(model="model-id-here") # gpt-4o, gemini-2.0-flash, anthropic/claude...
|
||||
|
||||
# Advanced configuration with detailed parameters
|
||||
llm = LLM(
|
||||
model="gpt-4o-mini",
|
||||
model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude...
|
||||
temperature=0.7, # Higher for more creative outputs
|
||||
timeout=120, # Seconds to wait for response
|
||||
max_tokens=4000, # Maximum length of response
|
||||
top_p=0.9, # Nucleus sampling parameter
|
||||
frequency_penalty=0.1, # Reduce repetition
|
||||
presence_penalty=0.1, # Encourage topic diversity
|
||||
timeout=120, # Seconds to wait for response
|
||||
max_tokens=4000, # Maximum length of response
|
||||
top_p=0.9, # Nucleus sampling parameter
|
||||
frequency_penalty=0.1 , # Reduce repetition
|
||||
presence_penalty=0.1, # Encourage topic diversity
|
||||
response_format={"type": "json"}, # For structured outputs
|
||||
seed=42 # For reproducible results
|
||||
seed=42 # For reproducible results
|
||||
)
|
||||
```
|
||||
|
||||
@@ -110,7 +106,6 @@ There are three ways to configure LLMs in CrewAI. Choose the method that best fi
|
||||
|
||||
## Provider Configuration Examples
|
||||
|
||||
|
||||
CrewAI supports a multitude of LLM providers, each offering unique features, authentication methods, and model capabilities.
|
||||
In this section, you'll find detailed examples that help you select, configure, and optimize the LLM that best fits your project's needs.
|
||||
|
||||
@@ -174,19 +169,55 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
```
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Google">
|
||||
Set the following environment variables in your `.env` file:
|
||||
<Accordion title="Google (Gemini API)">
|
||||
Set your API key in your `.env` file. If you need a key, or need to find an
|
||||
existing key, check [AI Studio](https://aistudio.google.com/apikey).
|
||||
|
||||
```toml Code
|
||||
# Option 1: Gemini accessed with an API key.
|
||||
```toml .env
|
||||
# https://ai.google.dev/gemini-api/docs/api-key
|
||||
GEMINI_API_KEY=<your-api-key>
|
||||
|
||||
# Option 2: Vertex AI IAM credentials for Gemini, Anthropic, and Model Garden.
|
||||
# https://cloud.google.com/vertex-ai/generative-ai/docs/overview
|
||||
```
|
||||
|
||||
Get credentials from your Google Cloud Console and save it to a JSON file with the following code:
|
||||
Example usage in your CrewAI project:
|
||||
```python Code
|
||||
from crewai import LLM
|
||||
|
||||
llm = LLM(
|
||||
model="gemini/gemini-2.0-flash",
|
||||
temperature=0.7,
|
||||
)
|
||||
```
|
||||
|
||||
### Gemini models
|
||||
|
||||
Google offers a range of powerful models optimized for different use cases.
|
||||
|
||||
| Model | Context Window | Best For |
|
||||
|--------------------------------|----------------|-------------------------------------------------------------------|
|
||||
| gemini-2.5-flash-preview-04-17 | 1M tokens | Adaptive thinking, cost efficiency |
|
||||
| gemini-2.5-pro-preview-05-06 | 1M tokens | Enhanced thinking and reasoning, multimodal understanding, advanced coding, and more |
|
||||
| gemini-2.0-flash | 1M tokens | Next generation features, speed, thinking, and realtime streaming |
|
||||
| gemini-2.0-flash-lite | 1M tokens | Cost efficiency and low latency |
|
||||
| gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks |
|
||||
| gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks |
|
||||
| gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration |
|
||||
|
||||
The full list of models is available in the [Gemini model docs](https://ai.google.dev/gemini-api/docs/models).
|
||||
|
||||
### Gemma
|
||||
|
||||
The Gemini API also allows you to use your API key to access [Gemma models](https://ai.google.dev/gemma/docs) hosted on Google infrastructure.
|
||||
|
||||
| Model | Context Window |
|
||||
|----------------|----------------|
|
||||
| gemma-3-1b-it | 32k tokens |
|
||||
| gemma-3-4b-it | 32k tokens |
|
||||
| gemma-3-12b-it | 32k tokens |
|
||||
| gemma-3-27b-it | 128k tokens |
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Google (Vertex AI)">
|
||||
Get credentials from your Google Cloud Console and save it to a JSON file, then load it with the following code:
|
||||
```python Code
|
||||
import json
|
||||
|
||||
@@ -210,14 +241,18 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
vertex_credentials=vertex_credentials_json
|
||||
)
|
||||
```
|
||||
|
||||
Google offers a range of powerful models optimized for different use cases:
|
||||
|
||||
| Model | Context Window | Best For |
|
||||
|-----------------------|----------------|------------------------------------------------------------------|
|
||||
| gemini-2.0-flash-exp | 1M tokens | Higher quality at faster speed, multimodal model, good for most tasks |
|
||||
| gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks |
|
||||
| gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks |
|
||||
| gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration |
|
||||
| Model | Context Window | Best For |
|
||||
|--------------------------------|----------------|-------------------------------------------------------------------|
|
||||
| gemini-2.5-flash-preview-04-17 | 1M tokens | Adaptive thinking, cost efficiency |
|
||||
| gemini-2.5-pro-preview-05-06 | 1M tokens | Enhanced thinking and reasoning, multimodal understanding, advanced coding, and more |
|
||||
| gemini-2.0-flash | 1M tokens | Next generation features, speed, thinking, and realtime streaming |
|
||||
| gemini-2.0-flash-lite | 1M tokens | Cost efficiency and low latency |
|
||||
| gemini-1.5-flash | 1M tokens | Balanced multimodal model, good for most tasks |
|
||||
| gemini-1.5-flash-8B | 1M tokens | Fastest, most cost-efficient, good for high-frequency tasks |
|
||||
| gemini-1.5-pro | 2M tokens | Best performing, wide variety of reasoning tasks including logical reasoning, coding, and creative collaboration |
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Azure">
|
||||
@@ -383,7 +418,7 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
| microsoft/phi-3-medium-4k-instruct | 4,096 tokens | Lightweight, state-of-the-art open LLM with strong math and logical reasoning skills. |
|
||||
| microsoft/phi-3-medium-128k-instruct | 128K tokens | Lightweight, state-of-the-art open LLM with strong math and logical reasoning skills. |
|
||||
| microsoft/phi-3.5-mini-instruct | 128K tokens | Lightweight multilingual LLM powering AI applications in latency bound, memory/compute constrained environments |
|
||||
| microsoft/phi-3.5-moe-instruct | 128K tokens | Advanced LLM based on Mixture of Experts architecure to deliver compute efficient content generation |
|
||||
| microsoft/phi-3.5-moe-instruct | 128K tokens | Advanced LLM based on Mixture of Experts architecture to deliver compute efficient content generation |
|
||||
| microsoft/kosmos-2 | 1,024 tokens | Groundbreaking multimodal model designed to understand and reason about visual elements in images. |
|
||||
| microsoft/phi-3-vision-128k-instruct | 128k tokens | Cutting-edge open multimodal model exceling in high-quality reasoning from images. |
|
||||
| microsoft/phi-3.5-vision-instruct | 128k tokens | Cutting-edge open multimodal model exceling in high-quality reasoning from images. |
|
||||
@@ -407,19 +442,19 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Local NVIDIA NIM Deployed using WSL2">
|
||||
|
||||
NVIDIA NIM enables you to run powerful LLMs locally on your Windows machine using WSL2 (Windows Subsystem for Linux).
|
||||
This approach allows you to leverage your NVIDIA GPU for private, secure, and cost-effective AI inference without relying on cloud services.
|
||||
|
||||
NVIDIA NIM enables you to run powerful LLMs locally on your Windows machine using WSL2 (Windows Subsystem for Linux).
|
||||
This approach allows you to leverage your NVIDIA GPU for private, secure, and cost-effective AI inference without relying on cloud services.
|
||||
Perfect for development, testing, or production scenarios where data privacy or offline capabilities are required.
|
||||
|
||||
|
||||
Here is a step-by-step guide to setting up a local NVIDIA NIM model:
|
||||
|
||||
|
||||
1. Follow installation instructions from [NVIDIA Website](https://docs.nvidia.com/nim/wsl2/latest/getting-started.html)
|
||||
|
||||
2. Install the local model. For Llama 3.1-8b follow [instructions](https://build.nvidia.com/meta/llama-3_1-8b-instruct/deploy)
|
||||
|
||||
3. Configure your crewai local models:
|
||||
|
||||
|
||||
```python Code
|
||||
from crewai.llm import LLM
|
||||
|
||||
@@ -441,7 +476,7 @@ In this section, you'll find detailed examples that help you select, configure,
|
||||
config=self.agents_config['researcher'], # type: ignore[index]
|
||||
llm=local_nvidia_nim_llm
|
||||
)
|
||||
|
||||
|
||||
# ...
|
||||
```
|
||||
</Accordion>
|
||||
@@ -637,23 +672,29 @@ CrewAI supports streaming responses from LLMs, allowing your application to rece
|
||||
|
||||
When streaming is enabled, responses are delivered in chunks as they're generated, creating a more responsive user experience.
|
||||
</Tab>
|
||||
|
||||
|
||||
<Tab title="Event Handling">
|
||||
CrewAI emits events for each chunk received during streaming:
|
||||
|
||||
|
||||
```python
|
||||
from crewai import LLM
|
||||
from crewai.utilities.events import EventHandler, LLMStreamChunkEvent
|
||||
|
||||
class MyEventHandler(EventHandler):
|
||||
def on_llm_stream_chunk(self, event: LLMStreamChunkEvent):
|
||||
# Process each chunk as it arrives
|
||||
print(f"Received chunk: {event.chunk}")
|
||||
|
||||
# Register the event handler
|
||||
from crewai.utilities.events import crewai_event_bus
|
||||
crewai_event_bus.register_handler(MyEventHandler())
|
||||
from crewai.utilities.events import (
|
||||
LLMStreamChunkEvent
|
||||
)
|
||||
from crewai.utilities.events.base_event_listener import BaseEventListener
|
||||
|
||||
class MyCustomListener(BaseEventListener):
|
||||
def setup_listeners(self, crewai_event_bus):
|
||||
@crewai_event_bus.on(LLMStreamChunkEvent)
|
||||
def on_llm_stream_chunk(self, event: LLMStreamChunkEvent):
|
||||
# Process each chunk as it arrives
|
||||
print(f"Received chunk: {event.chunk}")
|
||||
|
||||
my_listener = MyCustomListener()
|
||||
```
|
||||
|
||||
<Tip>
|
||||
[Click here](https://docs.crewai.com/concepts/event-listener#event-listeners) for more details
|
||||
</Tip>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
@@ -785,7 +826,7 @@ Learn how to get the most out of your LLM configuration:
|
||||
<Tip>
|
||||
Use larger context models for extensive tasks
|
||||
</Tip>
|
||||
|
||||
|
||||
```python
|
||||
# Large context model
|
||||
llm = LLM(model="openai/gpt-4o") # 128K tokens
|
||||
|
||||
@@ -679,6 +679,7 @@ crewai reset-memories [OPTIONS]
|
||||
| `-e`, `--entities` | Reset ENTITIES memory. | Flag (boolean) | False |
|
||||
| `-k`, `--kickoff-outputs` | Reset LATEST KICKOFF TASK OUTPUTS. | Flag (boolean) | False |
|
||||
| `-kn`, `--knowledge` | Reset KNOWLEDEGE storage | Flag (boolean) | False |
|
||||
| `-akn`, `--agent-knowledge` | Reset AGENT KNOWLEDGE storage | Flag (boolean) | False |
|
||||
| `-a`, `--all` | Reset ALL memories. | Flag (boolean) | False |
|
||||
|
||||
Note: To use the cli command you need to have your crew in a file called crew.py in the same directory.
|
||||
@@ -716,9 +717,11 @@ my_crew.reset_memories(command_type = 'all') # Resets all the memory
|
||||
| `entities` | Reset ENTITIES memory. |
|
||||
| `kickoff_outputs` | Reset LATEST KICKOFF TASK OUTPUTS. |
|
||||
| `knowledge` | Reset KNOWLEDGE memory. |
|
||||
| `agent_knowledge` | Reset AGENT KNOWLEDGE memory. |
|
||||
| `all` | Reset ALL memories. |
|
||||
|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
@@ -35,7 +35,8 @@ Let's get started building your first crew!
|
||||
Before starting, make sure you have:
|
||||
|
||||
1. Installed CrewAI following the [installation guide](/installation)
|
||||
2. Set up your OpenAI API key in your environment variables
|
||||
2. Set up your LLM API key in your environment, following the [LLM setup
|
||||
guide](/concepts/llms#setting-up-your-llm)
|
||||
3. Basic understanding of Python
|
||||
|
||||
## Step 1: Create a New CrewAI Project
|
||||
@@ -92,7 +93,8 @@ For our research crew, we'll create two agents:
|
||||
1. A **researcher** who excels at finding and organizing information
|
||||
2. An **analyst** who can interpret research findings and create insightful reports
|
||||
|
||||
Let's modify the `agents.yaml` file to define these specialized agents:
|
||||
Let's modify the `agents.yaml` file to define these specialized agents. Be sure
|
||||
to set `llm` to the provider you are using.
|
||||
|
||||
```yaml
|
||||
# src/research_crew/config/agents.yaml
|
||||
@@ -107,7 +109,7 @@ researcher:
|
||||
finding relevant information from various sources. You excel at
|
||||
organizing information in a clear and structured manner, making
|
||||
complex topics accessible to others.
|
||||
llm: openai/gpt-4o-mini
|
||||
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
|
||||
|
||||
analyst:
|
||||
role: >
|
||||
@@ -120,7 +122,7 @@ analyst:
|
||||
and technical writing. You have a talent for identifying patterns
|
||||
and extracting meaningful insights from research data, then
|
||||
communicating those insights effectively through well-crafted reports.
|
||||
llm: openai/gpt-4o-mini
|
||||
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
|
||||
```
|
||||
|
||||
Notice how each agent has a distinct role, goal, and backstory. These elements aren't just descriptive - they actively shape how the agent approaches its tasks. By crafting these carefully, you can create agents with specialized skills and perspectives that complement each other.
|
||||
@@ -282,12 +284,12 @@ This script prepares the environment, specifies our research topic, and kicks of
|
||||
|
||||
Create a `.env` file in your project root with your API keys:
|
||||
|
||||
```
|
||||
OPENAI_API_KEY=your_openai_api_key
|
||||
```sh
|
||||
SERPER_API_KEY=your_serper_api_key
|
||||
# Add your provider's API key here too.
|
||||
```
|
||||
|
||||
You can get a Serper API key from [Serper.dev](https://serper.dev/).
|
||||
See the [LLM Setup guide](/concepts/llms#setting-up-your-llm) for details on configuring your provider of choice. You can get a Serper API key from [Serper.dev](https://serper.dev/).
|
||||
|
||||
## Step 8: Install Dependencies
|
||||
|
||||
|
||||
@@ -45,7 +45,8 @@ Let's dive in and build your first flow!
|
||||
Before starting, make sure you have:
|
||||
|
||||
1. Installed CrewAI following the [installation guide](/installation)
|
||||
2. Set up your OpenAI API key in your environment variables
|
||||
2. Set up your LLM API key in your environment, following the [LLM setup
|
||||
guide](/concepts/llms#setting-up-your-llm)
|
||||
3. Basic understanding of Python
|
||||
|
||||
## Step 1: Create a New CrewAI Flow Project
|
||||
@@ -107,6 +108,8 @@ Now, let's modify the generated files for the content writer crew. We'll set up
|
||||
|
||||
1. First, update the agents configuration file to define our content creation team:
|
||||
|
||||
Remember to set `llm` to the provider you are using.
|
||||
|
||||
```yaml
|
||||
# src/guide_creator_flow/crews/content_crew/config/agents.yaml
|
||||
content_writer:
|
||||
@@ -119,7 +122,7 @@ content_writer:
|
||||
You are a talented educational writer with expertise in creating clear, engaging
|
||||
content. You have a gift for explaining complex concepts in accessible language
|
||||
and organizing information in a way that helps readers build their understanding.
|
||||
llm: openai/gpt-4o-mini
|
||||
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
|
||||
|
||||
content_reviewer:
|
||||
role: >
|
||||
@@ -132,7 +135,7 @@ content_reviewer:
|
||||
content. You have an eye for detail, clarity, and coherence. You excel at
|
||||
improving content while maintaining the original author's voice and ensuring
|
||||
consistent quality across multiple sections.
|
||||
llm: openai/gpt-4o-mini
|
||||
llm: provider/model-id # e.g. openai/gpt-4o, google/gemini-2.0-flash, anthropic/claude...
|
||||
```
|
||||
|
||||
These agent definitions establish the specialized roles and perspectives that will shape how our AI agents approach content creation. Notice how each agent has a distinct purpose and expertise.
|
||||
@@ -441,10 +444,15 @@ This is the power of flows - combining different types of processing (user inter
|
||||
|
||||
## Step 6: Set Up Your Environment Variables
|
||||
|
||||
Create a `.env` file in your project root with your API keys:
|
||||
Create a `.env` file in your project root with your API keys. See the [LLM setup
|
||||
guide](/concepts/llms#setting-up-your-llm) for details on configuring a provider.
|
||||
|
||||
```
|
||||
```sh .env
|
||||
OPENAI_API_KEY=your_openai_api_key
|
||||
# or
|
||||
GEMINI_API_KEY=your_gemini_api_key
|
||||
# or
|
||||
ANTHROPIC_API_KEY=your_anthropic_api_key
|
||||
```
|
||||
|
||||
## Step 7: Install Dependencies
|
||||
@@ -547,7 +555,10 @@ Let's break down the key components of flows to help you understand how to build
|
||||
Flows allow you to make direct calls to language models when you need simple, structured responses:
|
||||
|
||||
```python
|
||||
llm = LLM(model="openai/gpt-4o-mini", response_format=GuideOutline)
|
||||
llm = LLM(
|
||||
model="model-id-here", # gpt-4o, gemini-2.0-flash, anthropic/claude...
|
||||
response_format=GuideOutline
|
||||
)
|
||||
response = llm.call(messages=messages)
|
||||
```
|
||||
|
||||
|
||||
@@ -68,7 +68,13 @@ We'll create a CrewAI application where two agents collaborate to research and w
|
||||
```python
|
||||
from crewai import Agent, Crew, Process, Task
|
||||
from crewai_tools import SerperDevTool
|
||||
from openinference.instrumentation.crewai import CrewAIInstrumentor
|
||||
from phoenix.otel import register
|
||||
|
||||
# setup monitoring for your crew
|
||||
tracer_provider = register(
|
||||
endpoint="http://localhost:6006/v1/traces")
|
||||
CrewAIInstrumentor().instrument(skip_dep_check=True, tracer_provider=tracer_provider)
|
||||
search_tool = SerperDevTool()
|
||||
|
||||
# Define your agents with roles and goals
|
||||
|
||||
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 60 KiB |
|
After Width: | Height: | Size: 47 KiB |
@@ -71,6 +71,10 @@ If you haven't installed `uv` yet, follow **step 1** to quickly get it set up on
|
||||
```
|
||||
</Warning>
|
||||
|
||||
<Warning>
|
||||
If you encounter the `chroma-hnswlib==0.7.6` build error (`fatal error C1083: Cannot open include file: 'float.h'`) on Windows, install (Visual Studio Build Tools)[https://visualstudio.microsoft.com/downloads/] with *Desktop development with C++*.
|
||||
</Warning>
|
||||
|
||||
- To verify that `crewai` is installed, run:
|
||||
```shell
|
||||
uv tool list
|
||||
|
||||
@@ -180,8 +180,9 @@ Follow the steps below to get Crewing! 🚣♂️
|
||||
</Step>
|
||||
<Step title="Set your environment variables">
|
||||
Before running your crew, make sure you have the following keys set as environment variables in your `.env` file:
|
||||
- An [OpenAI API key](https://platform.openai.com/account/api-keys) (or other LLM API key): `OPENAI_API_KEY=sk-...`
|
||||
- A [Serper.dev](https://serper.dev/) API key: `SERPER_API_KEY=YOUR_KEY_HERE`
|
||||
- The configuration for your choice of model, such as an API key. See the
|
||||
[LLM setup guide](/concepts/llms#setting-up-your-llm) to learn how to configure models from any provider.
|
||||
</Step>
|
||||
<Step title="Lock and install the dependencies">
|
||||
- Lock the dependencies and install them by using the CLI command:
|
||||
@@ -317,7 +318,7 @@ email_summarizer:
|
||||
Summarize emails into a concise and clear summary
|
||||
backstory: >
|
||||
You will create a 5 bullet point summary of the report
|
||||
llm: openai/gpt-4o
|
||||
llm: provider/model-id # Add your choice of model here
|
||||
```
|
||||
|
||||
<Tip>
|
||||
|
||||
@@ -22,7 +22,7 @@ streamlining the process of finding specific information within large document c
|
||||
Install the crewai_tools package by running the following command in your terminal:
|
||||
|
||||
```shell
|
||||
pip install 'crewai[tools]'
|
||||
uv pip install docx2txt 'crewai[tools]'
|
||||
```
|
||||
|
||||
## Example
|
||||
@@ -76,4 +76,4 @@ tool = DOCXSearchTool(
|
||||
),
|
||||
)
|
||||
)
|
||||
```
|
||||
```
|
||||
@@ -8,10 +8,10 @@ icon: language
|
||||
|
||||
## 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 tool is used to convert natural language to SQL queries. When passed 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.
|
||||
Along with that provides 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.
|
||||
|
||||
@@ -81,4 +81,4 @@ The Tool provides endless possibilities on the logic of the Agent and how it can
|
||||
|
||||
```md
|
||||
DB -> Agent -> ... -> Agent -> DB
|
||||
```
|
||||
```
|
||||
@@ -143,12 +143,30 @@ config = {
|
||||
"config": {
|
||||
"model": "text-embedding-ada-002"
|
||||
}
|
||||
},
|
||||
"vectordb": {
|
||||
"provider": "elasticsearch",
|
||||
"config": {
|
||||
"collection_name": "my-collection",
|
||||
"cloud_id": "deployment-name:xxxx",
|
||||
"api_key": "your-key",
|
||||
"verify_certs": False
|
||||
}
|
||||
},
|
||||
"chunker": {
|
||||
"chunk_size": 400,
|
||||
"chunk_overlap": 100,
|
||||
"length_function": "len",
|
||||
"min_chunk_size": 0
|
||||
}
|
||||
}
|
||||
|
||||
rag_tool = RagTool(config=config, summarize=True)
|
||||
```
|
||||
|
||||
## Conclusion
|
||||
The internal RAG tool utilizes the Embedchain adapter, allowing you to pass any configuration options that are supported by Embedchain.
|
||||
You can refer to the [Embedchain documentation](https://docs.embedchain.ai/components/introduction) for details.
|
||||
Make sure to review the configuration options available in the .yaml file.
|
||||
|
||||
## Conclusion
|
||||
The `RagTool` provides a powerful way to create and query knowledge bases from various data sources. By leveraging Retrieval-Augmented Generation, it enables agents to access and retrieve relevant information efficiently, enhancing their ability to provide accurate and contextually appropriate responses.
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "crewai"
|
||||
version = "0.118.0"
|
||||
version = "0.120.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."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10,<3.13"
|
||||
@@ -11,7 +11,7 @@ dependencies = [
|
||||
# Core Dependencies
|
||||
"pydantic>=2.4.2",
|
||||
"openai>=1.13.3",
|
||||
"litellm==1.67.1",
|
||||
"litellm==1.68.0",
|
||||
"instructor>=1.3.3",
|
||||
# Text Processing
|
||||
"pdfplumber>=0.11.4",
|
||||
@@ -45,7 +45,7 @@ Documentation = "https://docs.crewai.com"
|
||||
Repository = "https://github.com/crewAIInc/crewAI"
|
||||
|
||||
[project.optional-dependencies]
|
||||
tools = ["crewai-tools~=0.42.2"]
|
||||
tools = ["crewai-tools~=0.45.0"]
|
||||
embeddings = [
|
||||
"tiktoken~=0.7.0"
|
||||
]
|
||||
|
||||
@@ -17,7 +17,7 @@ warnings.filterwarnings(
|
||||
category=UserWarning,
|
||||
module="pydantic.main",
|
||||
)
|
||||
__version__ = "0.118.0"
|
||||
__version__ = "0.120.1"
|
||||
__all__ = [
|
||||
"Agent",
|
||||
"Crew",
|
||||
|
||||
@@ -20,6 +20,7 @@ from crewai.tools.agent_tools.agent_tools import AgentTools
|
||||
from crewai.utilities import Converter, Prompts
|
||||
from crewai.utilities.agent_utils import (
|
||||
get_tool_names,
|
||||
load_agent_from_repository,
|
||||
parse_tools,
|
||||
render_text_description_and_args,
|
||||
)
|
||||
@@ -31,6 +32,14 @@ from crewai.utilities.events.agent_events import (
|
||||
AgentExecutionStartedEvent,
|
||||
)
|
||||
from crewai.utilities.events.crewai_event_bus import crewai_event_bus
|
||||
from crewai.utilities.events.knowledge_events import (
|
||||
KnowledgeQueryCompletedEvent,
|
||||
KnowledgeQueryFailedEvent,
|
||||
KnowledgeQueryStartedEvent,
|
||||
KnowledgeRetrievalCompletedEvent,
|
||||
KnowledgeRetrievalStartedEvent,
|
||||
KnowledgeSearchQueryFailedEvent,
|
||||
)
|
||||
from crewai.utilities.llm_utils import create_llm
|
||||
from crewai.utilities.token_counter_callback import TokenCalcHandler
|
||||
from crewai.utilities.training_handler import CrewTrainingHandler
|
||||
@@ -122,6 +131,20 @@ class Agent(BaseAgent):
|
||||
default=None,
|
||||
description="Knowledge context for the crew.",
|
||||
)
|
||||
knowledge_search_query: Optional[str] = Field(
|
||||
default=None,
|
||||
description="Knowledge search query for the agent dynamically generated by the agent.",
|
||||
)
|
||||
from_repository: Optional[str] = Field(
|
||||
default=None,
|
||||
description="The Agent's role to be used from your repository.",
|
||||
)
|
||||
|
||||
@model_validator(mode="before")
|
||||
def validate_from_repository(cls, v):
|
||||
if v is not None and (from_repository := v.get("from_repository")):
|
||||
return load_agent_from_repository(from_repository) | v
|
||||
return v
|
||||
|
||||
@model_validator(mode="after")
|
||||
def post_init_setup(self):
|
||||
@@ -185,7 +208,7 @@ class Agent(BaseAgent):
|
||||
self,
|
||||
task: Task,
|
||||
context: Optional[str] = None,
|
||||
tools: Optional[List[BaseTool]] = None
|
||||
tools: Optional[List[BaseTool]] = None,
|
||||
) -> str:
|
||||
"""Execute a task with the agent.
|
||||
|
||||
@@ -245,27 +268,65 @@ class Agent(BaseAgent):
|
||||
knowledge_config = (
|
||||
self.knowledge_config.model_dump() if self.knowledge_config else {}
|
||||
)
|
||||
if self.knowledge:
|
||||
agent_knowledge_snippets = self.knowledge.query(
|
||||
[task.prompt()], **knowledge_config
|
||||
)
|
||||
if agent_knowledge_snippets:
|
||||
self.agent_knowledge_context = extract_knowledge_context(
|
||||
agent_knowledge_snippets
|
||||
)
|
||||
if self.agent_knowledge_context:
|
||||
task_prompt += self.agent_knowledge_context
|
||||
|
||||
if self.crew:
|
||||
knowledge_snippets = self.crew.query_knowledge(
|
||||
[task.prompt()], **knowledge_config
|
||||
if self.knowledge:
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeRetrievalStartedEvent(
|
||||
agent=self,
|
||||
),
|
||||
)
|
||||
if knowledge_snippets:
|
||||
self.crew_knowledge_context = extract_knowledge_context(
|
||||
knowledge_snippets
|
||||
try:
|
||||
self.knowledge_search_query = self._get_knowledge_search_query(
|
||||
task_prompt
|
||||
)
|
||||
if self.knowledge_search_query:
|
||||
agent_knowledge_snippets = self.knowledge.query(
|
||||
[self.knowledge_search_query], **knowledge_config
|
||||
)
|
||||
if agent_knowledge_snippets:
|
||||
self.agent_knowledge_context = extract_knowledge_context(
|
||||
agent_knowledge_snippets
|
||||
)
|
||||
if self.agent_knowledge_context:
|
||||
task_prompt += self.agent_knowledge_context
|
||||
if self.crew:
|
||||
knowledge_snippets = self.crew.query_knowledge(
|
||||
[self.knowledge_search_query], **knowledge_config
|
||||
)
|
||||
if knowledge_snippets:
|
||||
self.crew_knowledge_context = extract_knowledge_context(
|
||||
knowledge_snippets
|
||||
)
|
||||
if self.crew_knowledge_context:
|
||||
task_prompt += self.crew_knowledge_context
|
||||
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeRetrievalCompletedEvent(
|
||||
query=self.knowledge_search_query,
|
||||
agent=self,
|
||||
retrieved_knowledge=(
|
||||
(self.agent_knowledge_context or "")
|
||||
+ (
|
||||
"\n"
|
||||
if self.agent_knowledge_context
|
||||
and self.crew_knowledge_context
|
||||
else ""
|
||||
)
|
||||
+ (self.crew_knowledge_context or "")
|
||||
),
|
||||
),
|
||||
)
|
||||
except Exception as e:
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeSearchQueryFailedEvent(
|
||||
query=self.knowledge_search_query or "",
|
||||
agent=self,
|
||||
error=str(e),
|
||||
),
|
||||
)
|
||||
if self.crew_knowledge_context:
|
||||
task_prompt += self.crew_knowledge_context
|
||||
|
||||
tools = tools or self.tools or []
|
||||
self.create_agent_executor(tools=tools, task=task)
|
||||
@@ -288,12 +349,19 @@ class Agent(BaseAgent):
|
||||
|
||||
# Determine execution method based on timeout setting
|
||||
if self.max_execution_time is not None:
|
||||
if not isinstance(self.max_execution_time, int) or self.max_execution_time <= 0:
|
||||
raise ValueError("Max Execution time must be a positive integer greater than zero")
|
||||
result = self._execute_with_timeout(task_prompt, task, self.max_execution_time)
|
||||
if (
|
||||
not isinstance(self.max_execution_time, int)
|
||||
or self.max_execution_time <= 0
|
||||
):
|
||||
raise ValueError(
|
||||
"Max Execution time must be a positive integer greater than zero"
|
||||
)
|
||||
result = self._execute_with_timeout(
|
||||
task_prompt, task, self.max_execution_time
|
||||
)
|
||||
else:
|
||||
result = self._execute_without_timeout(task_prompt, task)
|
||||
|
||||
|
||||
except TimeoutError as e:
|
||||
# Propagate TimeoutError without retry
|
||||
crewai_event_bus.emit(
|
||||
@@ -345,54 +413,46 @@ class Agent(BaseAgent):
|
||||
)
|
||||
return result
|
||||
|
||||
def _execute_with_timeout(
|
||||
self,
|
||||
task_prompt: str,
|
||||
task: Task,
|
||||
timeout: int
|
||||
) -> str:
|
||||
def _execute_with_timeout(self, task_prompt: str, task: Task, timeout: int) -> str:
|
||||
"""Execute a task with a timeout.
|
||||
|
||||
|
||||
Args:
|
||||
task_prompt: The prompt to send to the agent.
|
||||
task: The task being executed.
|
||||
timeout: Maximum execution time in seconds.
|
||||
|
||||
|
||||
Returns:
|
||||
The output of the agent.
|
||||
|
||||
|
||||
Raises:
|
||||
TimeoutError: If execution exceeds the timeout.
|
||||
RuntimeError: If execution fails for other reasons.
|
||||
"""
|
||||
import concurrent.futures
|
||||
|
||||
with concurrent.futures.ThreadPoolExecutor() as executor:
|
||||
future = executor.submit(
|
||||
self._execute_without_timeout,
|
||||
task_prompt=task_prompt,
|
||||
task=task
|
||||
self._execute_without_timeout, task_prompt=task_prompt, task=task
|
||||
)
|
||||
|
||||
|
||||
try:
|
||||
return future.result(timeout=timeout)
|
||||
except concurrent.futures.TimeoutError:
|
||||
future.cancel()
|
||||
raise TimeoutError(f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task.")
|
||||
raise TimeoutError(
|
||||
f"Task '{task.description}' execution timed out after {timeout} seconds. Consider increasing max_execution_time or optimizing the task."
|
||||
)
|
||||
except Exception as e:
|
||||
future.cancel()
|
||||
raise RuntimeError(f"Task execution failed: {str(e)}")
|
||||
|
||||
def _execute_without_timeout(
|
||||
self,
|
||||
task_prompt: str,
|
||||
task: Task
|
||||
) -> str:
|
||||
def _execute_without_timeout(self, task_prompt: str, task: Task) -> str:
|
||||
"""Execute a task without a timeout.
|
||||
|
||||
|
||||
Args:
|
||||
task_prompt: The prompt to send to the agent.
|
||||
task: The task being executed.
|
||||
|
||||
|
||||
Returns:
|
||||
The output of the agent.
|
||||
"""
|
||||
@@ -560,6 +620,61 @@ class Agent(BaseAgent):
|
||||
def set_fingerprint(self, fingerprint: Fingerprint):
|
||||
self.security_config.fingerprint = fingerprint
|
||||
|
||||
def _get_knowledge_search_query(self, task_prompt: str) -> str | None:
|
||||
"""Generate a search query for the knowledge base based on the task description."""
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeQueryStartedEvent(
|
||||
task_prompt=task_prompt,
|
||||
agent=self,
|
||||
),
|
||||
)
|
||||
query = self.i18n.slice("knowledge_search_query").format(
|
||||
task_prompt=task_prompt
|
||||
)
|
||||
rewriter_prompt = self.i18n.slice("knowledge_search_query_system_prompt")
|
||||
if not isinstance(self.llm, BaseLLM):
|
||||
self._logger.log(
|
||||
"warning",
|
||||
f"Knowledge search query failed: LLM for agent '{self.role}' is not an instance of BaseLLM",
|
||||
)
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeQueryFailedEvent(
|
||||
agent=self,
|
||||
error="LLM is not compatible with knowledge search queries",
|
||||
),
|
||||
)
|
||||
return None
|
||||
|
||||
try:
|
||||
rewritten_query = self.llm.call(
|
||||
[
|
||||
{
|
||||
"role": "system",
|
||||
"content": rewriter_prompt,
|
||||
},
|
||||
{"role": "user", "content": query},
|
||||
]
|
||||
)
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeQueryCompletedEvent(
|
||||
query=query,
|
||||
agent=self,
|
||||
),
|
||||
)
|
||||
return rewritten_query
|
||||
except Exception as e:
|
||||
crewai_event_bus.emit(
|
||||
self,
|
||||
event=KnowledgeQueryFailedEvent(
|
||||
agent=self,
|
||||
error=str(e),
|
||||
),
|
||||
)
|
||||
return None
|
||||
|
||||
def kickoff(
|
||||
self,
|
||||
messages: Union[str, List[Dict[str, str]]],
|
||||
|
||||
@@ -5,5 +5,5 @@ def get_auth_token() -> str:
|
||||
"""Get the authentication token."""
|
||||
access_token = TokenManager().get_token()
|
||||
if not access_token:
|
||||
raise Exception()
|
||||
raise Exception("No token found, make sure you are logged in")
|
||||
return access_token
|
||||
@@ -1,6 +1,5 @@
|
||||
import os
|
||||
from importlib.metadata import version as get_version
|
||||
from typing import Optional, Tuple
|
||||
from typing import Optional
|
||||
|
||||
import click
|
||||
|
||||
@@ -138,12 +137,8 @@ def log_tasks_outputs() -> None:
|
||||
@click.option("-s", "--short", is_flag=True, help="Reset SHORT TERM memory")
|
||||
@click.option("-e", "--entities", is_flag=True, help="Reset ENTITIES memory")
|
||||
@click.option("-kn", "--knowledge", is_flag=True, help="Reset KNOWLEDGE storage")
|
||||
@click.option(
|
||||
"-k",
|
||||
"--kickoff-outputs",
|
||||
is_flag=True,
|
||||
help="Reset LATEST KICKOFF TASK OUTPUTS",
|
||||
)
|
||||
@click.option("-akn", "--agent-knowledge", is_flag=True, help="Reset AGENT KNOWLEDGE storage")
|
||||
@click.option("-k","--kickoff-outputs",is_flag=True,help="Reset LATEST KICKOFF TASK OUTPUTS")
|
||||
@click.option("-a", "--all", is_flag=True, help="Reset ALL memories")
|
||||
def reset_memories(
|
||||
long: bool,
|
||||
@@ -151,18 +146,20 @@ def reset_memories(
|
||||
entities: bool,
|
||||
knowledge: bool,
|
||||
kickoff_outputs: bool,
|
||||
agent_knowledge: bool,
|
||||
all: bool,
|
||||
) -> None:
|
||||
"""
|
||||
Reset the crew memories (long, short, entity, latest_crew_kickoff_ouputs). This will delete all the data saved.
|
||||
Reset the crew memories (long, short, entity, latest_crew_kickoff_ouputs, knowledge, agent_knowledge). This will delete all the data saved.
|
||||
"""
|
||||
try:
|
||||
if not all and not (long or short or entities or knowledge or kickoff_outputs):
|
||||
memory_types = [long, short, entities, knowledge, agent_knowledge, kickoff_outputs, all]
|
||||
if not any(memory_types):
|
||||
click.echo(
|
||||
"Please specify at least one memory type to reset using the appropriate flags."
|
||||
)
|
||||
return
|
||||
reset_memories_command(long, short, entities, knowledge, kickoff_outputs, all)
|
||||
reset_memories_command(long, short, entities, knowledge, agent_knowledge, kickoff_outputs, all)
|
||||
except Exception as e:
|
||||
click.echo(f"An error occurred while resetting memories: {e}", err=True)
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ ENV_VARS = {
|
||||
],
|
||||
"gemini": [
|
||||
{
|
||||
"prompt": "Enter your GEMINI API key (press Enter to skip)",
|
||||
"prompt": "Enter your GEMINI API key from https://ai.dev/apikey (press Enter to skip)",
|
||||
"key_name": "GEMINI_API_KEY",
|
||||
}
|
||||
],
|
||||
|
||||
@@ -4,7 +4,7 @@ import click
|
||||
|
||||
|
||||
# Be mindful about changing this.
|
||||
# on some enviorments we don't use this command but instead uv sync directly
|
||||
# on some environments we don't use this command but instead uv sync directly
|
||||
# so if you expect this to support more things you will need to replicate it there
|
||||
# ask @joaomdmoura if you are unsure
|
||||
def install_crew(proxy_options: list[str]) -> None:
|
||||
|
||||
@@ -14,6 +14,7 @@ class PlusAPI:
|
||||
|
||||
TOOLS_RESOURCE = "/crewai_plus/api/v1/tools"
|
||||
CREWS_RESOURCE = "/crewai_plus/api/v1/crews"
|
||||
AGENTS_RESOURCE = "/crewai_plus/api/v1/agents"
|
||||
|
||||
def __init__(self, api_key: str) -> None:
|
||||
self.api_key = api_key
|
||||
@@ -37,6 +38,9 @@ class PlusAPI:
|
||||
def get_tool(self, handle: str):
|
||||
return self._make_request("GET", f"{self.TOOLS_RESOURCE}/{handle}")
|
||||
|
||||
def get_agent(self, handle: str):
|
||||
return self._make_request("GET", f"{self.AGENTS_RESOURCE}/{handle}")
|
||||
|
||||
def publish_tool(
|
||||
self,
|
||||
handle: str,
|
||||
|
||||
@@ -10,6 +10,7 @@ def reset_memories_command(
|
||||
short,
|
||||
entity,
|
||||
knowledge,
|
||||
agent_knowledge,
|
||||
kickoff_outputs,
|
||||
all,
|
||||
) -> None:
|
||||
@@ -23,10 +24,11 @@ def reset_memories_command(
|
||||
kickoff_outputs (bool): Whether to reset the latest kickoff task outputs.
|
||||
all (bool): Whether to reset all memories.
|
||||
knowledge (bool): Whether to reset the knowledge.
|
||||
agent_knowledge (bool): Whether to reset the agents knowledge.
|
||||
"""
|
||||
|
||||
try:
|
||||
if not any([long, short, entity, kickoff_outputs, knowledge, all]):
|
||||
if not any([long, short, entity, kickoff_outputs, knowledge, agent_knowledge, all]):
|
||||
click.echo(
|
||||
"No memory type specified. Please specify at least one type to reset."
|
||||
)
|
||||
@@ -67,6 +69,11 @@ def reset_memories_command(
|
||||
click.echo(
|
||||
f"[Crew ({crew.name if crew.name else crew.id})] Knowledge has been reset."
|
||||
)
|
||||
if agent_knowledge:
|
||||
crew.reset_memories(command_type="agent_knowledge")
|
||||
click.echo(
|
||||
f"[Crew ({crew.name if crew.name else crew.id})] Agents knowledge has been reset."
|
||||
)
|
||||
|
||||
except subprocess.CalledProcessError as e:
|
||||
click.echo(f"An error occurred while resetting the memories: {e}", err=True)
|
||||
|
||||
@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
|
||||
authors = [{ name = "Your Name", email = "you@example.com" }]
|
||||
requires-python = ">=3.10,<3.13"
|
||||
dependencies = [
|
||||
"crewai[tools]>=0.118.0,<1.0.0"
|
||||
"crewai[tools]>=0.120.1,<1.0.0"
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
|
||||
@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
|
||||
authors = [{ name = "Your Name", email = "you@example.com" }]
|
||||
requires-python = ">=3.10,<3.13"
|
||||
dependencies = [
|
||||
"crewai[tools]>=0.118.0,<1.0.0",
|
||||
"crewai[tools]>=0.120.1,<1.0.0",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
|
||||
@@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10,<3.13"
|
||||
dependencies = [
|
||||
"crewai[tools]>=0.118.0"
|
||||
"crewai[tools]>=0.120.1"
|
||||
]
|
||||
|
||||
[tool.crewai]
|
||||
|
||||
@@ -52,7 +52,7 @@ from crewai.tools.agent_tools.agent_tools import AgentTools
|
||||
from crewai.tools.base_tool import BaseTool, Tool
|
||||
from crewai.types.usage_metrics import UsageMetrics
|
||||
from crewai.utilities import I18N, FileHandler, Logger, RPMController
|
||||
from crewai.utilities.constants import TRAINING_DATA_FILE
|
||||
from crewai.utilities.constants import NOT_SPECIFIED, TRAINING_DATA_FILE
|
||||
from crewai.utilities.evaluators.crew_evaluator_handler import CrewEvaluator
|
||||
from crewai.utilities.evaluators.task_evaluator import TaskEvaluator
|
||||
from crewai.utilities.events.crew_events import (
|
||||
@@ -478,7 +478,7 @@ class Crew(FlowTrackable, BaseModel):
|
||||
separated by a synchronous task.
|
||||
"""
|
||||
for i, task in enumerate(self.tasks):
|
||||
if task.async_execution and task.context:
|
||||
if task.async_execution and isinstance(task.context, list):
|
||||
for context_task in task.context:
|
||||
if context_task.async_execution:
|
||||
for j in range(i - 1, -1, -1):
|
||||
@@ -496,7 +496,7 @@ class Crew(FlowTrackable, BaseModel):
|
||||
task_indices = {id(task): i for i, task in enumerate(self.tasks)}
|
||||
|
||||
for task in self.tasks:
|
||||
if task.context:
|
||||
if isinstance(task.context, list):
|
||||
for context_task in task.context:
|
||||
if id(context_task) not in task_indices:
|
||||
continue # Skip context tasks not in the main tasks list
|
||||
@@ -1034,11 +1034,14 @@ class Crew(FlowTrackable, BaseModel):
|
||||
)
|
||||
return cast(List[BaseTool], tools)
|
||||
|
||||
def _get_context(self, task: Task, task_outputs: List[TaskOutput]):
|
||||
def _get_context(self, task: Task, task_outputs: List[TaskOutput]) -> str:
|
||||
if not task.context:
|
||||
return ""
|
||||
|
||||
context = (
|
||||
aggregate_raw_outputs_from_tasks(task.context)
|
||||
if task.context
|
||||
else aggregate_raw_outputs_from_task_outputs(task_outputs)
|
||||
aggregate_raw_outputs_from_task_outputs(task_outputs)
|
||||
if task.context is NOT_SPECIFIED
|
||||
else aggregate_raw_outputs_from_tasks(task.context)
|
||||
)
|
||||
return context
|
||||
|
||||
@@ -1226,7 +1229,7 @@ class Crew(FlowTrackable, BaseModel):
|
||||
task_mapping[task.key] = cloned_task
|
||||
|
||||
for cloned_task, original_task in zip(cloned_tasks, self.tasks):
|
||||
if original_task.context:
|
||||
if isinstance(original_task.context, list):
|
||||
cloned_context = [
|
||||
task_mapping[context_task.key]
|
||||
for context_task in original_task.context
|
||||
@@ -1353,7 +1356,7 @@ class Crew(FlowTrackable, BaseModel):
|
||||
|
||||
Args:
|
||||
command_type: Type of memory to reset.
|
||||
Valid options: 'long', 'short', 'entity', 'knowledge',
|
||||
Valid options: 'long', 'short', 'entity', 'knowledge', 'agent_knowledge'
|
||||
'kickoff_outputs', or 'all'
|
||||
|
||||
Raises:
|
||||
@@ -1366,6 +1369,7 @@ class Crew(FlowTrackable, BaseModel):
|
||||
"short",
|
||||
"entity",
|
||||
"knowledge",
|
||||
"agent_knowledge",
|
||||
"kickoff_outputs",
|
||||
"all",
|
||||
"external",
|
||||
@@ -1390,19 +1394,14 @@ class Crew(FlowTrackable, BaseModel):
|
||||
|
||||
def _reset_all_memories(self) -> None:
|
||||
"""Reset all available memory systems."""
|
||||
memory_systems = [
|
||||
("short term", getattr(self, "_short_term_memory", None)),
|
||||
("entity", getattr(self, "_entity_memory", None)),
|
||||
("external", getattr(self, "_external_memory", None)),
|
||||
("long term", getattr(self, "_long_term_memory", None)),
|
||||
("task output", getattr(self, "_task_output_handler", None)),
|
||||
("knowledge", getattr(self, "knowledge", None)),
|
||||
]
|
||||
memory_systems = self._get_memory_systems()
|
||||
|
||||
for name, system in memory_systems:
|
||||
if system is not None:
|
||||
for memory_type, config in memory_systems.items():
|
||||
if (system := config.get('system')) is not None:
|
||||
name = config.get('name')
|
||||
try:
|
||||
system.reset()
|
||||
reset_fn: Callable = cast(Callable, config.get('reset'))
|
||||
reset_fn(system)
|
||||
self._logger.log(
|
||||
"info",
|
||||
f"[Crew ({self.name if self.name else self.id})] {name} memory has been reset",
|
||||
@@ -1421,24 +1420,17 @@ class Crew(FlowTrackable, BaseModel):
|
||||
Raises:
|
||||
RuntimeError: If the specified memory system fails to reset
|
||||
"""
|
||||
reset_functions = {
|
||||
"long": (getattr(self, "_long_term_memory", None), "long term"),
|
||||
"short": (getattr(self, "_short_term_memory", None), "short term"),
|
||||
"entity": (getattr(self, "_entity_memory", None), "entity"),
|
||||
"knowledge": (getattr(self, "knowledge", None), "knowledge"),
|
||||
"kickoff_outputs": (
|
||||
getattr(self, "_task_output_handler", None),
|
||||
"task output",
|
||||
),
|
||||
"external": (getattr(self, "_external_memory", None), "external"),
|
||||
}
|
||||
memory_systems = self._get_memory_systems()
|
||||
config = memory_systems[memory_type]
|
||||
system = config.get('system')
|
||||
name = config.get('name')
|
||||
|
||||
memory_system, name = reset_functions[memory_type]
|
||||
if memory_system is None:
|
||||
if system is None:
|
||||
raise RuntimeError(f"{name} memory system is not initialized")
|
||||
|
||||
|
||||
try:
|
||||
memory_system.reset()
|
||||
reset_fn: Callable = cast(Callable, config.get('reset'))
|
||||
reset_fn(system)
|
||||
self._logger.log(
|
||||
"info",
|
||||
f"[Crew ({self.name if self.name else self.id})] {name} memory has been reset",
|
||||
@@ -1447,3 +1439,64 @@ class Crew(FlowTrackable, BaseModel):
|
||||
raise RuntimeError(
|
||||
f"[Crew ({self.name if self.name else self.id})] Failed to reset {name} memory: {str(e)}"
|
||||
) from e
|
||||
|
||||
def _get_memory_systems(self):
|
||||
"""Get all available memory systems with their configuration.
|
||||
|
||||
Returns:
|
||||
Dict containing all memory systems with their reset functions and display names.
|
||||
"""
|
||||
def default_reset(memory):
|
||||
return memory.reset()
|
||||
def knowledge_reset(memory):
|
||||
return self.reset_knowledge(memory)
|
||||
|
||||
# Get knowledge for agents
|
||||
agent_knowledges = [getattr(agent, "knowledge", None) for agent in self.agents
|
||||
if getattr(agent, "knowledge", None) is not None]
|
||||
# Get knowledge for crew and agents
|
||||
crew_knowledge = getattr(self, "knowledge", None)
|
||||
crew_and_agent_knowledges = ([crew_knowledge] if crew_knowledge is not None else []) + agent_knowledges
|
||||
|
||||
return {
|
||||
'short': {
|
||||
'system': getattr(self, "_short_term_memory", None),
|
||||
'reset': default_reset,
|
||||
'name': 'Short Term'
|
||||
},
|
||||
'entity': {
|
||||
'system': getattr(self, "_entity_memory", None),
|
||||
'reset': default_reset,
|
||||
'name': 'Entity'
|
||||
},
|
||||
'external': {
|
||||
'system': getattr(self, "_external_memory", None),
|
||||
'reset': default_reset,
|
||||
'name': 'External'
|
||||
},
|
||||
'long': {
|
||||
'system': getattr(self, "_long_term_memory", None),
|
||||
'reset': default_reset,
|
||||
'name': 'Long Term'
|
||||
},
|
||||
'kickoff_outputs': {
|
||||
'system': getattr(self, "_task_output_handler", None),
|
||||
'reset': default_reset,
|
||||
'name': 'Task Output'
|
||||
},
|
||||
'knowledge': {
|
||||
'system': crew_and_agent_knowledges if crew_and_agent_knowledges else None,
|
||||
'reset': knowledge_reset,
|
||||
'name': 'Crew Knowledge and Agent Knowledge'
|
||||
},
|
||||
'agent_knowledge': {
|
||||
'system': agent_knowledges if agent_knowledges else None,
|
||||
'reset': knowledge_reset,
|
||||
'name': 'Agent Knowledge'
|
||||
}
|
||||
}
|
||||
|
||||
def reset_knowledge(self, knowledges: List[Knowledge]) -> None:
|
||||
"""Reset crew and agent knowledge storage."""
|
||||
for ks in knowledges:
|
||||
ks.reset()
|
||||
@@ -5,8 +5,7 @@ import sys
|
||||
import threading
|
||||
import warnings
|
||||
from collections import defaultdict
|
||||
from contextlib import contextmanager
|
||||
from types import SimpleNamespace
|
||||
from contextlib import contextmanager, redirect_stderr, redirect_stdout
|
||||
from typing import (
|
||||
Any,
|
||||
DefaultDict,
|
||||
@@ -31,7 +30,6 @@ from crewai.utilities.events.llm_events import (
|
||||
LLMCallType,
|
||||
LLMStreamChunkEvent,
|
||||
)
|
||||
from crewai.utilities.events.tool_usage_events import ToolExecutionErrorEvent
|
||||
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore", UserWarning)
|
||||
@@ -45,6 +43,9 @@ with warnings.catch_warnings():
|
||||
from litellm.utils import supports_response_schema
|
||||
|
||||
|
||||
import io
|
||||
from typing import TextIO
|
||||
|
||||
from crewai.llms.base_llm import BaseLLM
|
||||
from crewai.utilities.events import crewai_event_bus
|
||||
from crewai.utilities.exceptions.context_window_exceeding_exception import (
|
||||
@@ -54,12 +55,17 @@ from crewai.utilities.exceptions.context_window_exceeding_exception import (
|
||||
load_dotenv()
|
||||
|
||||
|
||||
class FilteredStream:
|
||||
def __init__(self, original_stream):
|
||||
class FilteredStream(io.TextIOBase):
|
||||
_lock = None
|
||||
|
||||
def __init__(self, original_stream: TextIO):
|
||||
self._original_stream = original_stream
|
||||
self._lock = threading.Lock()
|
||||
|
||||
def write(self, s) -> int:
|
||||
def write(self, s: str) -> int:
|
||||
if not self._lock:
|
||||
self._lock = threading.Lock()
|
||||
|
||||
with self._lock:
|
||||
# Filter out extraneous messages from LiteLLM
|
||||
if (
|
||||
@@ -214,15 +220,11 @@ def suppress_warnings():
|
||||
)
|
||||
|
||||
# Redirect stdout and stderr
|
||||
old_stdout = sys.stdout
|
||||
old_stderr = sys.stderr
|
||||
sys.stdout = FilteredStream(old_stdout)
|
||||
sys.stderr = FilteredStream(old_stderr)
|
||||
try:
|
||||
with (
|
||||
redirect_stdout(FilteredStream(sys.stdout)),
|
||||
redirect_stderr(FilteredStream(sys.stderr)),
|
||||
):
|
||||
yield
|
||||
finally:
|
||||
sys.stdout = old_stdout
|
||||
sys.stderr = old_stderr
|
||||
|
||||
|
||||
class Delta(TypedDict):
|
||||
|
||||
@@ -2,7 +2,6 @@ import datetime
|
||||
import inspect
|
||||
import json
|
||||
import logging
|
||||
import re
|
||||
import threading
|
||||
import uuid
|
||||
from concurrent.futures import Future
|
||||
@@ -41,6 +40,7 @@ from crewai.tasks.output_format import OutputFormat
|
||||
from crewai.tasks.task_output import TaskOutput
|
||||
from crewai.tools.base_tool import BaseTool
|
||||
from crewai.utilities.config import process_config
|
||||
from crewai.utilities.constants import NOT_SPECIFIED
|
||||
from crewai.utilities.converter import Converter, convert_to_model
|
||||
from crewai.utilities.events import (
|
||||
TaskCompletedEvent,
|
||||
@@ -97,7 +97,7 @@ class Task(BaseModel):
|
||||
)
|
||||
context: Optional[List["Task"]] = Field(
|
||||
description="Other tasks that will have their output used as context for this task.",
|
||||
default=None,
|
||||
default=NOT_SPECIFIED,
|
||||
)
|
||||
async_execution: Optional[bool] = Field(
|
||||
description="Whether the task should be executed asynchronously or not.",
|
||||
@@ -643,7 +643,7 @@ class Task(BaseModel):
|
||||
|
||||
cloned_context = (
|
||||
[task_mapping[context_task.key] for context_task in self.context]
|
||||
if self.context
|
||||
if isinstance(self.context, list)
|
||||
else None
|
||||
)
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import warnings
|
||||
@@ -9,11 +10,25 @@ from contextlib import contextmanager
|
||||
from importlib.metadata import version
|
||||
from typing import TYPE_CHECKING, Any, Optional
|
||||
|
||||
from opentelemetry import trace
|
||||
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
|
||||
OTLPSpanExporter,
|
||||
)
|
||||
from opentelemetry.sdk.resources import SERVICE_NAME, Resource
|
||||
from opentelemetry.sdk.trace import TracerProvider
|
||||
from opentelemetry.sdk.trace.export import (
|
||||
BatchSpanProcessor,
|
||||
SpanExportResult,
|
||||
)
|
||||
from opentelemetry.trace import Span, Status, StatusCode
|
||||
|
||||
from crewai.telemetry.constants import (
|
||||
CREWAI_TELEMETRY_BASE_URL,
|
||||
CREWAI_TELEMETRY_SERVICE_NAME,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@contextmanager
|
||||
def suppress_warnings():
|
||||
@@ -22,20 +37,20 @@ def suppress_warnings():
|
||||
yield
|
||||
|
||||
|
||||
from opentelemetry import trace # noqa: E402
|
||||
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
|
||||
OTLPSpanExporter, # noqa: E402
|
||||
)
|
||||
from opentelemetry.sdk.resources import SERVICE_NAME, Resource # noqa: E402
|
||||
from opentelemetry.sdk.trace import TracerProvider # noqa: E402
|
||||
from opentelemetry.sdk.trace.export import BatchSpanProcessor # noqa: E402
|
||||
from opentelemetry.trace import Span, Status, StatusCode # noqa: E402
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from crewai.crew import Crew
|
||||
from crewai.task import Task
|
||||
|
||||
|
||||
class SafeOTLPSpanExporter(OTLPSpanExporter):
|
||||
def export(self, spans) -> SpanExportResult:
|
||||
try:
|
||||
return super().export(spans)
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
return SpanExportResult.FAILURE
|
||||
|
||||
|
||||
class Telemetry:
|
||||
"""A class to handle anonymous telemetry for the crewai package.
|
||||
|
||||
@@ -64,7 +79,7 @@ class Telemetry:
|
||||
self.provider = TracerProvider(resource=self.resource)
|
||||
|
||||
processor = BatchSpanProcessor(
|
||||
OTLPSpanExporter(
|
||||
SafeOTLPSpanExporter(
|
||||
endpoint=f"{CREWAI_TELEMETRY_BASE_URL}/v1/traces",
|
||||
timeout=30,
|
||||
)
|
||||
@@ -217,7 +232,7 @@ class Telemetry:
|
||||
"agent_key": task.agent.key if task.agent else None,
|
||||
"context": (
|
||||
[task.description for task in task.context]
|
||||
if task.context
|
||||
if isinstance(task.context, list)
|
||||
else None
|
||||
),
|
||||
"tools_names": [
|
||||
@@ -733,7 +748,7 @@ class Telemetry:
|
||||
"agent_key": task.agent.key if task.agent else None,
|
||||
"context": (
|
||||
[task.description for task in task.context]
|
||||
if task.context
|
||||
if isinstance(task.context, list)
|
||||
else None
|
||||
),
|
||||
"tools_names": [
|
||||
|
||||
@@ -27,7 +27,9 @@
|
||||
"feedback_instructions": "User feedback: {feedback}\nInstructions: Use this feedback to enhance the next output iteration.\nNote: Do not respond or add commentary.",
|
||||
"lite_agent_system_prompt_with_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nYou ONLY have access to the following tools, and should NEVER make up tools that are not listed here:\n\n{tools}\n\nIMPORTANT: Use the following format in your response:\n\n```\nThought: you should always think about what to do\nAction: the action to take, only one name of [{tool_names}], just the name, exactly as it's written.\nAction Input: the input to the action, just a simple JSON object, enclosed in curly braces, using \" to wrap keys and values.\nObservation: the result of the action\n```\n\nOnce all necessary information is gathered, return the following format:\n\n```\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question\n```",
|
||||
"lite_agent_system_prompt_without_tools": "You are {role}. {backstory}\nYour personal goal is: {goal}\n\nTo give my best complete final answer to the task respond using the exact following format:\n\nThought: I now can give a great answer\nFinal Answer: Your final answer must be the great and the most complete as possible, it must be outcome described.\n\nI MUST use these formats, my job depends on it!",
|
||||
"lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python."
|
||||
"lite_agent_response_format": "\nIMPORTANT: Your final answer MUST contain all the information requested in the following format: {response_format}\n\nIMPORTANT: Ensure the final output does not include any code block markers like ```json or ```python.",
|
||||
"knowledge_search_query": "The original query is: {task_prompt}.",
|
||||
"knowledge_search_query_system_prompt": "Your goal is to rewrite the user query so that it is optimized for retrieval from a vector database. Consider how the query will be used to find relevant documents, and aim to make it more specific and context-aware. \n\n Do not include any other text than the rewritten query, especially any preamble or postamble and only add expected output format if its relevant to the rewritten query. \n\n Focus on the key words of the intended task and to retrieve the most relevant information. \n\n There will be some extra context provided that might need to be removed such as expected_output formats structured_outputs and other instructions."
|
||||
},
|
||||
"errors": {
|
||||
"force_final_answer_error": "You can't keep going, here is the best final answer you generated:\n\n {formatted_answer}",
|
||||
|
||||
@@ -16,6 +16,7 @@ from crewai.tools.base_tool import BaseTool
|
||||
from crewai.tools.structured_tool import CrewStructuredTool
|
||||
from crewai.tools.tool_types import ToolResult
|
||||
from crewai.utilities import I18N, Printer
|
||||
from crewai.utilities.errors import AgentRepositoryError
|
||||
from crewai.utilities.exceptions.context_window_exceeding_exception import (
|
||||
LLMContextLengthExceededException,
|
||||
)
|
||||
@@ -428,3 +429,41 @@ def show_agent_logs(
|
||||
printer.print(
|
||||
content=f"\033[95m## Final Answer:\033[00m \033[92m\n{formatted_answer.output}\033[00m\n\n"
|
||||
)
|
||||
|
||||
|
||||
def load_agent_from_repository(from_repository: str) -> Dict[str, Any]:
|
||||
attributes: Dict[str, Any] = {}
|
||||
if from_repository:
|
||||
import importlib
|
||||
|
||||
from crewai.cli.authentication.token import get_auth_token
|
||||
from crewai.cli.plus_api import PlusAPI
|
||||
|
||||
client = PlusAPI(api_key=get_auth_token())
|
||||
response = client.get_agent(from_repository)
|
||||
if response.status_code == 404:
|
||||
raise AgentRepositoryError(
|
||||
f"Agent {from_repository} does not exist, make sure the name is correct or the agent is available on your organization"
|
||||
)
|
||||
|
||||
if response.status_code != 200:
|
||||
raise AgentRepositoryError(
|
||||
f"Agent {from_repository} could not be loaded: {response.text}"
|
||||
)
|
||||
|
||||
agent = response.json()
|
||||
for key, value in agent.items():
|
||||
if key == "tools":
|
||||
attributes[key] = []
|
||||
for tool in value:
|
||||
try:
|
||||
module = importlib.import_module("crewai_tools")
|
||||
tool_class = getattr(module, tool["name"])
|
||||
attributes[key].append(tool_class())
|
||||
except Exception as e:
|
||||
raise AgentRepositoryError(
|
||||
f"Tool {tool['name']} could not be loaded: {e}"
|
||||
) from e
|
||||
else:
|
||||
attributes[key] = value
|
||||
return attributes
|
||||
@@ -5,3 +5,14 @@ KNOWLEDGE_DIRECTORY = "knowledge"
|
||||
MAX_LLM_RETRY = 3
|
||||
MAX_FILE_NAME_LENGTH = 255
|
||||
EMITTER_COLOR = "bold_blue"
|
||||
|
||||
|
||||
class _NotSpecified:
|
||||
def __repr__(self):
|
||||
return "NOT_SPECIFIED"
|
||||
|
||||
|
||||
# Sentinel value used to detect when no value has been explicitly provided.
|
||||
# Unlike `None`, which might be a valid value from the user, `NOT_SPECIFIED` allows
|
||||
# us to distinguish between "not passed at all" and "explicitly passed None" or "[]".
|
||||
NOT_SPECIFIED = _NotSpecified()
|
||||
@@ -1,4 +1,5 @@
|
||||
"""Error message definitions for CrewAI database operations."""
|
||||
|
||||
from typing import Optional
|
||||
|
||||
|
||||
@@ -37,3 +38,9 @@ class DatabaseError:
|
||||
The formatted error message
|
||||
"""
|
||||
return template.format(str(error))
|
||||
|
||||
|
||||
class AgentRepositoryError(Exception):
|
||||
"""Exception raised when an agent repository is not found."""
|
||||
|
||||
...
|
||||
@@ -8,6 +8,14 @@ from crewai.telemetry.telemetry import Telemetry
|
||||
from crewai.utilities import Logger
|
||||
from crewai.utilities.constants import EMITTER_COLOR
|
||||
from crewai.utilities.events.base_event_listener import BaseEventListener
|
||||
from crewai.utilities.events.knowledge_events import (
|
||||
KnowledgeQueryCompletedEvent,
|
||||
KnowledgeQueryFailedEvent,
|
||||
KnowledgeQueryStartedEvent,
|
||||
KnowledgeRetrievalCompletedEvent,
|
||||
KnowledgeRetrievalStartedEvent,
|
||||
KnowledgeSearchQueryFailedEvent,
|
||||
)
|
||||
from crewai.utilities.events.llm_events import (
|
||||
LLMCallCompletedEvent,
|
||||
LLMCallFailedEvent,
|
||||
@@ -57,6 +65,8 @@ class EventListener(BaseEventListener):
|
||||
execution_spans: Dict[Task, Any] = Field(default_factory=dict)
|
||||
next_chunk = 0
|
||||
text_stream = StringIO()
|
||||
knowledge_retrieval_in_progress = False
|
||||
knowledge_query_in_progress = False
|
||||
|
||||
def __new__(cls):
|
||||
if cls._instance is None:
|
||||
@@ -342,5 +352,59 @@ class EventListener(BaseEventListener):
|
||||
def on_crew_test_failed(source, event: CrewTestFailedEvent):
|
||||
self.formatter.handle_crew_test_failed(event.crew_name or "Crew")
|
||||
|
||||
@crewai_event_bus.on(KnowledgeRetrievalStartedEvent)
|
||||
def on_knowledge_retrieval_started(
|
||||
source, event: KnowledgeRetrievalStartedEvent
|
||||
):
|
||||
if self.knowledge_retrieval_in_progress:
|
||||
return
|
||||
|
||||
self.knowledge_retrieval_in_progress = True
|
||||
|
||||
self.formatter.handle_knowledge_retrieval_started(
|
||||
self.formatter.current_agent_branch,
|
||||
self.formatter.current_crew_tree,
|
||||
)
|
||||
|
||||
@crewai_event_bus.on(KnowledgeRetrievalCompletedEvent)
|
||||
def on_knowledge_retrieval_completed(
|
||||
source, event: KnowledgeRetrievalCompletedEvent
|
||||
):
|
||||
if not self.knowledge_retrieval_in_progress:
|
||||
return
|
||||
|
||||
self.knowledge_retrieval_in_progress = False
|
||||
self.formatter.handle_knowledge_retrieval_completed(
|
||||
self.formatter.current_agent_branch,
|
||||
self.formatter.current_crew_tree,
|
||||
event.retrieved_knowledge,
|
||||
)
|
||||
|
||||
@crewai_event_bus.on(KnowledgeQueryStartedEvent)
|
||||
def on_knowledge_query_started(source, event: KnowledgeQueryStartedEvent):
|
||||
pass
|
||||
|
||||
@crewai_event_bus.on(KnowledgeQueryFailedEvent)
|
||||
def on_knowledge_query_failed(source, event: KnowledgeQueryFailedEvent):
|
||||
self.formatter.handle_knowledge_query_failed(
|
||||
self.formatter.current_agent_branch,
|
||||
event.error,
|
||||
self.formatter.current_crew_tree,
|
||||
)
|
||||
|
||||
@crewai_event_bus.on(KnowledgeQueryCompletedEvent)
|
||||
def on_knowledge_query_completed(source, event: KnowledgeQueryCompletedEvent):
|
||||
pass
|
||||
|
||||
@crewai_event_bus.on(KnowledgeSearchQueryFailedEvent)
|
||||
def on_knowledge_search_query_failed(
|
||||
source, event: KnowledgeSearchQueryFailedEvent
|
||||
):
|
||||
self.formatter.handle_knowledge_search_query_failed(
|
||||
self.formatter.current_agent_branch,
|
||||
event.error,
|
||||
self.formatter.current_crew_tree,
|
||||
)
|
||||
|
||||
|
||||
event_listener = EventListener()
|
||||
@@ -0,0 +1,56 @@
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from crewai.agents.agent_builder.base_agent import BaseAgent
|
||||
from crewai.utilities.events.base_events import BaseEvent
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from crewai.agents.agent_builder.base_agent import BaseAgent
|
||||
|
||||
|
||||
class KnowledgeRetrievalStartedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge retrieval is started."""
|
||||
|
||||
type: str = "knowledge_search_query_started"
|
||||
agent: BaseAgent
|
||||
|
||||
|
||||
class KnowledgeRetrievalCompletedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge retrieval is completed."""
|
||||
|
||||
query: str
|
||||
type: str = "knowledge_search_query_completed"
|
||||
agent: BaseAgent
|
||||
retrieved_knowledge: Any
|
||||
|
||||
|
||||
class KnowledgeQueryStartedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge query is started."""
|
||||
|
||||
task_prompt: str
|
||||
type: str = "knowledge_query_started"
|
||||
agent: BaseAgent
|
||||
|
||||
|
||||
class KnowledgeQueryFailedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge query fails."""
|
||||
|
||||
type: str = "knowledge_query_failed"
|
||||
agent: BaseAgent
|
||||
error: str
|
||||
|
||||
|
||||
class KnowledgeQueryCompletedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge query is completed."""
|
||||
|
||||
query: str
|
||||
type: str = "knowledge_query_completed"
|
||||
agent: BaseAgent
|
||||
|
||||
|
||||
class KnowledgeSearchQueryFailedEvent(BaseEvent):
|
||||
"""Event emitted when a knowledge search query fails."""
|
||||
|
||||
query: str
|
||||
type: str = "knowledge_search_query_failed"
|
||||
agent: BaseAgent
|
||||
error: str
|
||||
@@ -783,3 +783,202 @@ class ConsoleFormatter:
|
||||
self.update_lite_agent_status(
|
||||
self.current_lite_agent_branch, lite_agent_role, status, **fields
|
||||
)
|
||||
|
||||
def handle_knowledge_retrieval_started(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
crew_tree: Optional[Tree],
|
||||
) -> Optional[Tree]:
|
||||
"""Handle knowledge retrieval started event."""
|
||||
if not self.verbose:
|
||||
return None
|
||||
|
||||
branch_to_use = agent_branch or self.current_lite_agent_branch
|
||||
tree_to_use = branch_to_use or crew_tree
|
||||
|
||||
if branch_to_use is None or tree_to_use is None:
|
||||
# If we don't have a valid branch, use crew_tree as the branch if available
|
||||
if crew_tree is not None:
|
||||
branch_to_use = tree_to_use = crew_tree
|
||||
else:
|
||||
return None
|
||||
|
||||
knowledge_branch = branch_to_use.add("")
|
||||
self.update_tree_label(
|
||||
knowledge_branch, "🔍", "Knowledge Retrieval Started", "blue"
|
||||
)
|
||||
|
||||
self.print(tree_to_use)
|
||||
self.print()
|
||||
return knowledge_branch
|
||||
|
||||
def handle_knowledge_retrieval_completed(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
crew_tree: Optional[Tree],
|
||||
retrieved_knowledge: Any,
|
||||
) -> None:
|
||||
"""Handle knowledge retrieval completed event."""
|
||||
if not self.verbose:
|
||||
return None
|
||||
|
||||
branch_to_use = self.current_lite_agent_branch or agent_branch
|
||||
tree_to_use = branch_to_use or crew_tree
|
||||
|
||||
if branch_to_use is None and tree_to_use is not None:
|
||||
branch_to_use = tree_to_use
|
||||
|
||||
if branch_to_use is None or tree_to_use is None:
|
||||
if retrieved_knowledge:
|
||||
knowledge_text = str(retrieved_knowledge)
|
||||
if len(knowledge_text) > 500:
|
||||
knowledge_text = knowledge_text[:497] + "..."
|
||||
|
||||
knowledge_panel = Panel(
|
||||
Text(knowledge_text, style="white"),
|
||||
title="📚 Retrieved Knowledge",
|
||||
border_style="green",
|
||||
padding=(1, 2),
|
||||
)
|
||||
self.print(knowledge_panel)
|
||||
self.print()
|
||||
return None
|
||||
|
||||
knowledge_branch_found = False
|
||||
for child in branch_to_use.children:
|
||||
if "Knowledge Retrieval Started" in str(child.label):
|
||||
self.update_tree_label(
|
||||
child, "✅", "Knowledge Retrieval Completed", "green"
|
||||
)
|
||||
knowledge_branch_found = True
|
||||
break
|
||||
|
||||
if not knowledge_branch_found:
|
||||
for child in branch_to_use.children:
|
||||
if (
|
||||
"Knowledge Retrieval" in str(child.label)
|
||||
and "Started" not in str(child.label)
|
||||
and "Completed" not in str(child.label)
|
||||
):
|
||||
self.update_tree_label(
|
||||
child, "✅", "Knowledge Retrieval Completed", "green"
|
||||
)
|
||||
knowledge_branch_found = True
|
||||
break
|
||||
|
||||
if not knowledge_branch_found:
|
||||
knowledge_branch = branch_to_use.add("")
|
||||
self.update_tree_label(
|
||||
knowledge_branch, "✅", "Knowledge Retrieval Completed", "green"
|
||||
)
|
||||
|
||||
self.print(tree_to_use)
|
||||
|
||||
if retrieved_knowledge:
|
||||
knowledge_text = str(retrieved_knowledge)
|
||||
if len(knowledge_text) > 500:
|
||||
knowledge_text = knowledge_text[:497] + "..."
|
||||
|
||||
knowledge_panel = Panel(
|
||||
Text(knowledge_text, style="white"),
|
||||
title="📚 Retrieved Knowledge",
|
||||
border_style="green",
|
||||
padding=(1, 2),
|
||||
)
|
||||
self.print(knowledge_panel)
|
||||
|
||||
self.print()
|
||||
|
||||
def handle_knowledge_query_started(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
task_prompt: str,
|
||||
crew_tree: Optional[Tree],
|
||||
) -> None:
|
||||
"""Handle knowledge query generated event."""
|
||||
if not self.verbose:
|
||||
return None
|
||||
|
||||
branch_to_use = self.current_lite_agent_branch or agent_branch
|
||||
tree_to_use = branch_to_use or crew_tree
|
||||
if branch_to_use is None or tree_to_use is None:
|
||||
return None
|
||||
|
||||
query_branch = branch_to_use.add("")
|
||||
self.update_tree_label(
|
||||
query_branch, "🔎", f"Query: {task_prompt[:50]}...", "yellow"
|
||||
)
|
||||
|
||||
self.print(tree_to_use)
|
||||
self.print()
|
||||
|
||||
def handle_knowledge_query_failed(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
error: str,
|
||||
crew_tree: Optional[Tree],
|
||||
) -> None:
|
||||
"""Handle knowledge query failed event."""
|
||||
if not self.verbose:
|
||||
return
|
||||
|
||||
tree_to_use = self.current_lite_agent_branch or crew_tree
|
||||
branch_to_use = self.current_lite_agent_branch or agent_branch
|
||||
|
||||
if branch_to_use and tree_to_use:
|
||||
query_branch = branch_to_use.add("")
|
||||
self.update_tree_label(query_branch, "❌", "Knowledge Query Failed", "red")
|
||||
self.print(tree_to_use)
|
||||
self.print()
|
||||
|
||||
# Show error panel
|
||||
error_content = self.create_status_content(
|
||||
"Knowledge Query Failed", "Query Error", "red", Error=error
|
||||
)
|
||||
self.print_panel(error_content, "Knowledge Error", "red")
|
||||
|
||||
def handle_knowledge_query_completed(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
crew_tree: Optional[Tree],
|
||||
) -> None:
|
||||
"""Handle knowledge query completed event."""
|
||||
if not self.verbose:
|
||||
return None
|
||||
|
||||
branch_to_use = self.current_lite_agent_branch or agent_branch
|
||||
tree_to_use = branch_to_use or crew_tree
|
||||
|
||||
if branch_to_use is None or tree_to_use is None:
|
||||
return None
|
||||
|
||||
query_branch = branch_to_use.add("")
|
||||
self.update_tree_label(query_branch, "✅", "Knowledge Query Completed", "green")
|
||||
|
||||
self.print(tree_to_use)
|
||||
self.print()
|
||||
|
||||
def handle_knowledge_search_query_failed(
|
||||
self,
|
||||
agent_branch: Optional[Tree],
|
||||
error: str,
|
||||
crew_tree: Optional[Tree],
|
||||
) -> None:
|
||||
"""Handle knowledge search query failed event."""
|
||||
if not self.verbose:
|
||||
return
|
||||
|
||||
tree_to_use = self.current_lite_agent_branch or crew_tree
|
||||
branch_to_use = self.current_lite_agent_branch or agent_branch
|
||||
|
||||
if branch_to_use and tree_to_use:
|
||||
query_branch = branch_to_use.add("")
|
||||
self.update_tree_label(query_branch, "❌", "Knowledge Search Failed", "red")
|
||||
self.print(tree_to_use)
|
||||
self.print()
|
||||
|
||||
# Show error panel
|
||||
error_content = self.create_status_content(
|
||||
"Knowledge Search Failed", "Search Error", "red", Error=error
|
||||
)
|
||||
self.print_panel(error_content, "Search Error", "red")
|
||||
@@ -1,6 +1,6 @@
|
||||
import re
|
||||
from typing import TYPE_CHECKING, List
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from crewai.task import Task
|
||||
from crewai.tasks.task_output import TaskOutput
|
||||
@@ -17,6 +17,11 @@ def aggregate_raw_outputs_from_task_outputs(task_outputs: List["TaskOutput"]) ->
|
||||
|
||||
def aggregate_raw_outputs_from_tasks(tasks: List["Task"]) -> str:
|
||||
"""Generate string context from the tasks."""
|
||||
task_outputs = [task.output for task in tasks if task.output is not None]
|
||||
|
||||
task_outputs = (
|
||||
[task.output for task in tasks if task.output is not None]
|
||||
if isinstance(tasks, list)
|
||||
else []
|
||||
)
|
||||
|
||||
return aggregate_raw_outputs_from_task_outputs(task_outputs)
|
||||
@@ -59,7 +59,7 @@ def interpolate_only(
|
||||
# The regex pattern to find valid variable placeholders
|
||||
# Matches {variable_name} where variable_name starts with a letter/underscore
|
||||
# and contains only letters, numbers, and underscores
|
||||
pattern = r"\{([A-Za-z_][A-Za-z0-9_]*)\}"
|
||||
pattern = r"\{([A-Za-z_][A-Za-z0-9_\-]*)\}"
|
||||
|
||||
# Find all matching variables in the input string
|
||||
variables = re.findall(pattern, input_string)
|
||||
|
||||
@@ -2,14 +2,13 @@
|
||||
|
||||
import os
|
||||
from unittest import mock
|
||||
from unittest.mock import patch
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from crewai import Agent, Crew, Task
|
||||
from crewai.agents.cache import CacheHandler
|
||||
from crewai.agents.crew_agent_executor import AgentFinish, CrewAgentExecutor
|
||||
from crewai.agents.parser import CrewAgentParser, OutputParserException
|
||||
from crewai.knowledge.knowledge import Knowledge
|
||||
from crewai.knowledge.knowledge_config import KnowledgeConfig
|
||||
from crewai.knowledge.source.base_knowledge_source import BaseKnowledgeSource
|
||||
@@ -19,6 +18,7 @@ from crewai.tools import tool
|
||||
from crewai.tools.tool_calling import InstructorToolCalling
|
||||
from crewai.tools.tool_usage import ToolUsage
|
||||
from crewai.utilities import RPMController
|
||||
from crewai.utilities.errors import AgentRepositoryError
|
||||
from crewai.utilities.events import crewai_event_bus
|
||||
from crewai.utilities.events.tool_usage_events import ToolUsageFinishedEvent
|
||||
|
||||
@@ -73,6 +73,7 @@ def test_agent_creation():
|
||||
assert agent.goal == "test goal"
|
||||
assert agent.backstory == "test backstory"
|
||||
|
||||
|
||||
def test_agent_with_only_system_template():
|
||||
"""Test that an agent with only system_template works without errors."""
|
||||
agent = Agent(
|
||||
@@ -88,6 +89,7 @@ def test_agent_with_only_system_template():
|
||||
assert agent.goal == "Test Goal"
|
||||
assert agent.backstory == "Test Backstory"
|
||||
|
||||
|
||||
def test_agent_with_only_prompt_template():
|
||||
"""Test that an agent with only system_template works without errors."""
|
||||
agent = Agent(
|
||||
@@ -119,7 +121,8 @@ def test_agent_with_missing_response_template():
|
||||
assert agent.role == "Test Role"
|
||||
assert agent.goal == "Test Goal"
|
||||
assert agent.backstory == "Test Backstory"
|
||||
|
||||
|
||||
|
||||
def test_agent_default_values():
|
||||
agent = Agent(role="test role", goal="test goal", backstory="test backstory")
|
||||
assert agent.llm.model == "gpt-4o-mini"
|
||||
@@ -306,9 +309,7 @@ def test_cache_hitting():
|
||||
def handle_tool_end(source, event):
|
||||
received_events.append(event)
|
||||
|
||||
with (
|
||||
patch.object(CacheHandler, "read") as read,
|
||||
):
|
||||
with (patch.object(CacheHandler, "read") as read,):
|
||||
read.return_value = "0"
|
||||
task = Task(
|
||||
description="What is 2 times 6? Ignore correctness and just return the result of the multiplication tool, you must use the tool.",
|
||||
@@ -1038,7 +1039,7 @@ def test_agent_human_input():
|
||||
CrewAgentExecutor,
|
||||
"_invoke_loop",
|
||||
return_value=AgentFinish(output="Hello", thought="", text=""),
|
||||
) as mock_invoke_loop,
|
||||
),
|
||||
):
|
||||
# Execute the task
|
||||
output = agent.execute_task(task)
|
||||
@@ -1630,13 +1631,10 @@ def test_agent_with_knowledge_sources():
|
||||
# Create a knowledge source with some content
|
||||
content = "Brandon's favorite color is red and he likes Mexican food."
|
||||
string_source = StringKnowledgeSource(content=content)
|
||||
|
||||
with patch(
|
||||
"crewai.knowledge.storage.knowledge_storage.KnowledgeStorage"
|
||||
) as MockKnowledge:
|
||||
with patch("crewai.knowledge") as MockKnowledge:
|
||||
mock_knowledge_instance = MockKnowledge.return_value
|
||||
mock_knowledge_instance.sources = [string_source]
|
||||
mock_knowledge_instance.query.return_value = [{"content": content}]
|
||||
mock_knowledge_instance.search.return_value = [{"content": content}]
|
||||
|
||||
agent = Agent(
|
||||
role="Information Agent",
|
||||
@@ -1690,7 +1688,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold():
|
||||
|
||||
assert agent.knowledge is not None
|
||||
mock_knowledge_query.assert_called_once_with(
|
||||
[task.prompt()],
|
||||
["Brandon's favorite color"],
|
||||
**knowledge_config.model_dump(),
|
||||
)
|
||||
|
||||
@@ -1727,7 +1725,7 @@ def test_agent_with_knowledge_sources_with_query_limit_and_score_threshold_defau
|
||||
|
||||
assert agent.knowledge is not None
|
||||
mock_knowledge_query.assert_called_once_with(
|
||||
[task.prompt()],
|
||||
["Brandon's favorite color"],
|
||||
**knowledge_config.model_dump(),
|
||||
)
|
||||
|
||||
@@ -1737,9 +1735,7 @@ def test_agent_with_knowledge_sources_extensive_role():
|
||||
content = "Brandon's favorite color is red and he likes Mexican food."
|
||||
string_source = StringKnowledgeSource(content=content)
|
||||
|
||||
with patch(
|
||||
"crewai.knowledge.storage.knowledge_storage.KnowledgeStorage"
|
||||
) as MockKnowledge:
|
||||
with patch("crewai.knowledge") as MockKnowledge:
|
||||
mock_knowledge_instance = MockKnowledge.return_value
|
||||
mock_knowledge_instance.sources = [string_source]
|
||||
mock_knowledge_instance.query.return_value = [{"content": content}]
|
||||
@@ -1803,6 +1799,40 @@ def test_agent_with_knowledge_sources_works_with_copy():
|
||||
assert isinstance(agent_copy.llm, LLM)
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_agent_with_knowledge_sources_generate_search_query():
|
||||
content = "Brandon's favorite color is red and he likes Mexican food."
|
||||
string_source = StringKnowledgeSource(content=content)
|
||||
|
||||
with patch("crewai.knowledge") as MockKnowledge:
|
||||
mock_knowledge_instance = MockKnowledge.return_value
|
||||
mock_knowledge_instance.sources = [string_source]
|
||||
mock_knowledge_instance.query.return_value = [{"content": content}]
|
||||
|
||||
agent = Agent(
|
||||
role="Information Agent with extensive role description that is longer than 80 characters",
|
||||
goal="Provide information based on knowledge sources",
|
||||
backstory="You have access to specific knowledge sources.",
|
||||
llm=LLM(model="gpt-4o-mini"),
|
||||
knowledge_sources=[string_source],
|
||||
)
|
||||
|
||||
task = Task(
|
||||
description="What is Brandon's favorite color?",
|
||||
expected_output="The answer to the question, in a format like this: `{{name: str, favorite_color: str}}`",
|
||||
agent=agent,
|
||||
)
|
||||
|
||||
crew = Crew(agents=[agent], tasks=[task])
|
||||
result = crew.kickoff()
|
||||
|
||||
# Updated assertion to check the JSON content
|
||||
assert "Brandon" in str(agent.knowledge_search_query)
|
||||
assert "favorite color" in str(agent.knowledge_search_query)
|
||||
|
||||
assert "red" in result.raw.lower()
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_litellm_auth_error_handling():
|
||||
"""Test that LiteLLM authentication errors are handled correctly and not retried."""
|
||||
@@ -1940,3 +1970,153 @@ def test_litellm_anthropic_error_handling():
|
||||
|
||||
# Verify the LLM call was only made once (no retries)
|
||||
mock_llm_call.assert_called_once()
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_get_knowledge_search_query():
|
||||
"""Test that _get_knowledge_search_query calls the LLM with the correct prompts."""
|
||||
from crewai.utilities.i18n import I18N
|
||||
|
||||
content = "The capital of France is Paris."
|
||||
string_source = StringKnowledgeSource(content=content)
|
||||
|
||||
agent = Agent(
|
||||
role="Information Agent",
|
||||
goal="Provide information based on knowledge sources",
|
||||
backstory="I have access to knowledge sources",
|
||||
llm=LLM(model="gpt-4"),
|
||||
knowledge_sources=[string_source],
|
||||
)
|
||||
|
||||
task = Task(
|
||||
description="What is the capital of France?",
|
||||
expected_output="The capital of France is Paris.",
|
||||
agent=agent,
|
||||
)
|
||||
|
||||
i18n = I18N()
|
||||
task_prompt = task.prompt()
|
||||
|
||||
with patch.object(agent, "_get_knowledge_search_query") as mock_get_query:
|
||||
mock_get_query.return_value = "Capital of France"
|
||||
|
||||
crew = Crew(agents=[agent], tasks=[task])
|
||||
crew.kickoff()
|
||||
|
||||
mock_get_query.assert_called_once_with(task_prompt)
|
||||
|
||||
with patch.object(agent.llm, "call") as mock_llm_call:
|
||||
agent._get_knowledge_search_query(task_prompt)
|
||||
|
||||
mock_llm_call.assert_called_once_with(
|
||||
[
|
||||
{
|
||||
"role": "system",
|
||||
"content": i18n.slice(
|
||||
"knowledge_search_query_system_prompt"
|
||||
).format(task_prompt=task.description),
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": i18n.slice("knowledge_search_query").format(
|
||||
task_prompt=task_prompt
|
||||
),
|
||||
},
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_get_auth_token():
|
||||
with patch(
|
||||
"crewai.cli.authentication.token.get_auth_token", return_value="test_token"
|
||||
):
|
||||
yield
|
||||
|
||||
|
||||
@patch("crewai.cli.plus_api.PlusAPI.get_agent")
|
||||
def test_agent_from_repository(mock_get_agent, mock_get_auth_token):
|
||||
from crewai_tools import SerperDevTool
|
||||
|
||||
mock_get_response = MagicMock()
|
||||
mock_get_response.status_code = 200
|
||||
mock_get_response.json.return_value = {
|
||||
"role": "test role",
|
||||
"goal": "test goal",
|
||||
"backstory": "test backstory",
|
||||
"tools": [{"name": "SerperDevTool"}],
|
||||
}
|
||||
mock_get_agent.return_value = mock_get_response
|
||||
agent = Agent(from_repository="test_agent")
|
||||
|
||||
assert agent.role == "test role"
|
||||
assert agent.goal == "test goal"
|
||||
assert agent.backstory == "test backstory"
|
||||
assert len(agent.tools) == 1
|
||||
assert isinstance(agent.tools[0], SerperDevTool)
|
||||
|
||||
|
||||
@patch("crewai.cli.plus_api.PlusAPI.get_agent")
|
||||
def test_agent_from_repository_override_attributes(mock_get_agent, mock_get_auth_token):
|
||||
from crewai_tools import SerperDevTool
|
||||
|
||||
mock_get_response = MagicMock()
|
||||
mock_get_response.status_code = 200
|
||||
mock_get_response.json.return_value = {
|
||||
"role": "test role",
|
||||
"goal": "test goal",
|
||||
"backstory": "test backstory",
|
||||
"tools": [{"name": "SerperDevTool"}],
|
||||
}
|
||||
mock_get_agent.return_value = mock_get_response
|
||||
agent = Agent(from_repository="test_agent", role="Custom Role")
|
||||
|
||||
assert agent.role == "Custom Role"
|
||||
assert agent.goal == "test goal"
|
||||
assert agent.backstory == "test backstory"
|
||||
assert len(agent.tools) == 1
|
||||
assert isinstance(agent.tools[0], SerperDevTool)
|
||||
|
||||
|
||||
@patch("crewai.cli.plus_api.PlusAPI.get_agent")
|
||||
def test_agent_from_repository_with_invalid_tools(mock_get_agent, mock_get_auth_token):
|
||||
mock_get_response = MagicMock()
|
||||
mock_get_response.status_code = 200
|
||||
mock_get_response.json.return_value = {
|
||||
"role": "test role",
|
||||
"goal": "test goal",
|
||||
"backstory": "test backstory",
|
||||
"tools": [{"name": "DoesNotExist"}],
|
||||
}
|
||||
mock_get_agent.return_value = mock_get_response
|
||||
with pytest.raises(
|
||||
AgentRepositoryError,
|
||||
match="Tool DoesNotExist could not be loaded: module 'crewai_tools' has no attribute 'DoesNotExist'",
|
||||
):
|
||||
Agent(from_repository="test_agent")
|
||||
|
||||
|
||||
@patch("crewai.cli.plus_api.PlusAPI.get_agent")
|
||||
def test_agent_from_repository_internal_error(mock_get_agent, mock_get_auth_token):
|
||||
mock_get_response = MagicMock()
|
||||
mock_get_response.status_code = 500
|
||||
mock_get_response.text = "Internal server error"
|
||||
mock_get_agent.return_value = mock_get_response
|
||||
with pytest.raises(
|
||||
AgentRepositoryError,
|
||||
match="Agent test_agent could not be loaded: Internal server error",
|
||||
):
|
||||
Agent(from_repository="test_agent")
|
||||
|
||||
|
||||
@patch("crewai.cli.plus_api.PlusAPI.get_agent")
|
||||
def test_agent_from_repository_agent_not_found(mock_get_agent, mock_get_auth_token):
|
||||
mock_get_response = MagicMock()
|
||||
mock_get_response.status_code = 404
|
||||
mock_get_response.text = "Agent not found"
|
||||
mock_get_agent.return_value = mock_get_response
|
||||
with pytest.raises(
|
||||
AgentRepositoryError,
|
||||
match="Agent test_agent does not exist, make sure the name is correct or the agent is available on your organization",
|
||||
):
|
||||
Agent(from_repository="test_agent")
|
||||
@@ -16,7 +16,7 @@ interactions:
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
@@ -26,25 +26,132 @@ interactions:
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.9
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\":
|
||||
\"embedding\",\n \"index\": 0,\n \"embedding\": \"RAzvvNZhB72TKMC6vj3KPByxsDvjnSG9nod0Pf28RT27Fx693vMfvX5KQ72FkxU9DuF2vAc8Dj1ip8m7VLkOPY5+vjxIiCW9wdyavemQabzGSAc92tD5OzbQ1Lzmw009/kAbvPi5s7ymwHw7udFdPMuJrrvQjMC8anf3O3hHsbyIucG68QSBu6RcO702oom9othlu30f/jsR6aE9BEQtPImp97y44Sc9FToTPeDQBTrIYwI8FWhePCn9FL24iJc8oY+fvGVGmjyFKru8vk0UvbiIFzuK1Dw89+d+PJI4irx0nS+9kxh2PDw8QT0IV4m8Ih2dPALQobyan129bPtMPYo9Fzs0bBO96ZBpvBlQ9bxiTrk96N5IvDBJ7bxWLRo983gMvfUaYzuSDUU9slrAvIJdHz1szYE6avAbPDbgnjyKlie9PnI3PE0ypzxyKaS7ii1NvRie1LxYz/A8FTqTvVbvhLu4H708BV8oO5mEYrxpxVY8N4L1vPWDPT0AtSY9Z7qlvCoYkDx+SkO84yR9vIqWpzu4tuK8EgQdvM6/JL3C95U8vfSDvRKbwjw6MRA9Kf0UubarMbx4R7G8tM7Lu2GMzrvJrMg8ppIxvTxnBjwmxx69GJ5UvTDdDDyKLc284yT9PCZexDxHbSq7IJnHvKYp171wDqm8hZOVO5UFJj0y6D29WgVnvB9QAb2+1G87Xr8yPZpxEr2SOAo75+4SPQX2zbvGdlK99YO9OSGJfbyuYl+7R9YEvNSy7DytsL68Gnu6PLjhp7x1uCq9E8YHvAWNcz2jbIU7zA2EvMCDijylDly9UYOYvMkVozw20FS9qfZyPbNl8bwgmUe9pvsLPU1gcj3GHcK8MWRovAZ6o7x6y4Y70gDMO4Mfir0MfbU8b/OtPB4lPLvxm6Y8BhHJvPUa4zz4UNm6BNtSPFGxYzyX4os8aNWgvHDjYz3rP4Q8xkgHOy18UT2k8+C8JCjOuSwzi7x9iNi8iPfWvJVuAL0syjC8wIOKvNIATDxSRYM9FB8YPFyJvLxYYxC9bCYSvVD/Qjzdb0q7YreTvTFk6Ls0bJO80pdxPTz+Kz3mlQI91TZCvcj6J70xzcK8/KFKPfT/5zvuk/u7qTGCPeq7rryc5R07uvyiPBRNY7tGuwk8vAdUPMuJLj0oEOU8IJnHvMlDbrzZhzM8gJADPdoLCb3ZhzO9Zd0/PFLM3jz0aEK9L8KRvInkBj09wBY9WbygOm7I6Dw8/qs8JvVpvOAOm7w6yDW98BfRvLDmtDzIUzi8rFcuvQr53ztKKvw85tMXvVbvBD3Vn5w8DlobvQ0BCz3mar07gCcpPNKnu7zmaj09/GM1ve++QDz8ocq75mq9PJ7wzrsidi29INfcPEa7Cb0VOhO9MHSyu9JppjwOStG8h478vD3u4TygC0q85I3XvHKCtDxQaJ08I8+9vKLoL73WYYc86N5IPe++QD0O4Xa9Pe7hPPgSxLvAgwq7DBTbPBR4qDzEqTY83FRPumXdv7zNlN88lQWmvMO5gDwp/RQ8QvHzvFaGqrxPpjK9BY3zu5Jm1byqesg7iPfWOsHcGjzP2h+9YHHTvNo5VDpv8608AtChPEu+mzyGrpA8Vu8EPSLfhzx4HGw81EaMuxPGhztl3b+7h55GPFAqiDoKy5Q8qAa9POBnK7300Zw6/SWgO3gc7LzFLQw9lZzLvMYdQjsDcvi8xzi9PCpWJT0a5JS8IKmRvEoq/LyK/wE9URo+PI+pAz3o3si8I7/zPPpYBL1ygjQ84VdhvCSRKD04FhW9DBRbvHvmAbzKx0M7r40kPU0yJ71NmwG9ob3qvJy62LzZ8I28sE+PvHkJnDsNmLA8NuAevWy9N7tOTSK9tm0cvDJRGDzsmBS9hHiavPlrVLrxMsy8ij0XvYQ6Bb0r+Ps57MZfvOaVAjpBEQg9GuQUPPhQ2by+5Lm9Ih0dvcrHw7xbmQY9TNkWvcIl4bx+Onk8WAoAva5yqbvgZys8BiGTPR1zG7xfGEO8OrjrPIHZyTfHoZc7It+HPPT/Zz1w4+O8pinXPOjeyLzhwLs8Tw8NvdDK1Tz67ym9yFO4O1P3I7ySOIo8u67DPKhvFzxmYRU9zhg1PAEONz1fCHm8lQWmPC4+PDw0ml68Zo9gvZUFpjwCV/27WtcbPYgiHL3ictw8YqfJO8O5gL3Saaa7tYDsvHKw/7t6UmI9bRZIu8wNhDz0/2c8RSdqvMBYxboevOE8SXjbPEu+Gz2byqK6lrfGPPCAK72A6ZM9NbVZPclD7jzSEJa8TcnMPFjPcLrSEBa93W/KOw91ljwwG6K79P/nu+mQ6bqsLGk8PzQivbDmNL3QMzC9bpqdvOS4nDyPQCk82APeO8kVozzVnxw90eVQO0X5njwcGou8YDM+PYUqO7yKLU29shwrvMO5ALwniQk954W4vEoqfDyAgDk8WM9wOsiRTTzMeeQ7oAvKvAw/IDyOFeQ7ERdtvZZO7LyY/Qa9UjU5PSXabr3B3Jo8NtDUPPqWmbusVy49FHiovMwNBL1szYG7W5mGPIbcW7zDuQC8oDYPPPJdkT2qEe47aodBuUqT1ryiQUC9OW+lPEqjID0PDDy9ALWmPFg4SzxS3Kg8soWFvITRKrwaPaW82YezPHIZ2jq3xqy78EIWPVa0db3MDQQ9dnoVPDE2HbsjOJg7XTvduR41hjtEDO88RhQaPLnR3TyqipI9N5K/u/lrVDzDUKa8nxsUvTqKoLyDti89c0SfO3q7PLy5Oji9btgyPNU2QrzSEBY9KKSEuppxkjoF9k08yaxIPI4V5Dsh8le854W4u9IQFrxOi7c8ZO2JPB1zG7x+dYi8OL2EPAhXCT3xyXG8fG1dOsrHwztzy/q7bPvMvJlWFzubUf483H8UPIkS0rzAgwo8jucYvZUFpjuFk5U88vS2PHQ01TwkUxO8BciCPGFeAzxtFsg8tgRCu0HWeDw7TAu8srPQO/dgo7wJ3mS8/VNrvSoYkDonIC899RrjO6Y5IT2gC0q8AFwWuxCQETzOv6S8pMUVvc9hezyqipI8bCYSvfSTBzuYlKw87652PCn9FLwitMI7gvREPPgiDr0Ckow8Ho6Wu+hHIzlOTSI9J4kJvdvrdDsM1sW8EGXMu4O2r7yWXra8EM4mvZAw3zzGhhw92R7ZOvUaY7zaoi69sD/Fu0JqmLzB3Bo9htzbPEpli73kXwy9acXWvKz+nTuPqYM9+lgEvVoFZ7xJeNs7ulUzPWaP4DsdCkG8KkZbPIrE8ryVboC7LCPBOuSN17zRt4W9mJSsvL49yrxgMz48Vh3QvPaugj3uk3u8BNvSvB41hrtpXPw82jlUPGK3Ez2OFWS7kg1FPbXpxrycutg83opFvW5Bjb0zqii7JPoCPAiVnjuwqB+9eQmcPND1GryvjSQ7bRZIva+NJLw+Cd089eyXuxVo3rxgcdO8Pgldu8Z20rzGSAe9liChvARErbzeIWu8Mo8tvYHZyblqh8G8pFw7vUERiDzJQ+68kxj2O6s8s7ry9LY7z3HFPKSHALwUeKi7A3J4OmKnSbw2Z/o85ahSvXFnuTo2Z3o8Z7qlPO3h2rwYntQ7acXWPPQqrbsmXkS8pB4mPcL3lTz4EkQ85T94OvlrVLxYCoC8ZCsfPKz+nbuRS1q8zf05PTaiCbwjv/M85E/CvFuZhjxyGdq6aNUgvX6zHT3kuJw8dbgqvQJnx7svWTe8LIybvZWcyzvSaaY8VOfZu2b4OrnJFSO9p+tBuwF3kTxmj2A8jEjIvIZFtjwILMQ8ZO0JPZj9BrybyiI9OQbLOjMTAzykXDu7olGKPBAntzzcfxQ96iSJPB7MKzsqViU9QCTYuxmLhDu4tuI7oAtKO7arsbsmxx68f2W+PBDOpjx1T1A85sPNPLJK9ryMsaI8wQpmu6frwbvURoy75ajSuyGJfbysLGm8CUc/vbEve7y2BEK9CCzEu3Rfmrv8OPA7+lgEO6UOXL3i27Y8qzyzu5yMDTyeh/S8naeIuBKbwrzi2zY9gpu0PPT/57sr+Hu9IYl9PPUaYzxEdck8JdruPCn9FL1u2LI7v2iPu9F89jzCNSu9HjWGu5SBUDxOTaI8pvsLvSKk+DwE21K86qtkO4xIyDzdBnA8N4J1vLLDGrwhiX08It+HPPHJ8TsrcSA74SkWvLabZzzOgY+8EkIyPA0vVrq4tuK8i1gSveM0xzxqsoY8TZsBO7LDGr2kxRU94DzmPHpSYjwWg1m9+7GUvFjP8Dy4tmI7EGVMO7mjkjuMsSI9oAtKPcmsSDywqB87gIC5PHVPUD2/aI88e32nPNTdMTzWYYe8pvsLPeRPwjz2Nd68GuSUvJ1s+bokkSi6elLiPDZn+ru0oIA9+HsePWXdv7yPQKm7ppKxPGH1qLvmLKi7qERSPPSTh7xiPu88okHAO7rs2Dp+o9M6me28vGBx0zzy5Gw7mNLBu+jeyDyAkIO8RN4jPeFX4Tud1VO85ajSvFy0gbxUEh88mNLBO7SQNjy2m2e8Kf0UvOp9GTyQApQ7vfSDvHKw/7u7rsM8iGAxvIrUPD01tVm8fqPTvKfrwbqVM3G8wdyaO+LbNrygNo88+h11PCeJCTyzdbu8lOoqvLPelTxOe+28aS4xOy4Ap70+CV28NndEPMrXjbyIuUE7yJFNvc9hezwQkJE8ty8HPPWDPTuySnY8jueYPJMowDwgAiI8QREIvVgKAD2Wx5A8QI2yO2ZhlTygdKQ8vj3KObEvezqMCjM8iRJSPJUFJj1H1gQ8oKLvPJj9hjwoeb+7EptCvLFqijt09r+8YYzOvJJm1bxTfv+8pB6mvKNshTw1HrQ8d5WQPJy6WLxBP9O77C86PD4Zp7q/aI87XaQ3PXzWt7sl2u42DOaPvALQITsi3wc9VdQJvJ6HdDxcSyc8+paZOLine truncated
|
||||
\ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\":
|
||||
12,\n \"total_tokens\": 12\n }\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8f1042f3ac7867dd-SJC
|
||||
- 93bd2df2cdb6ceb1-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -52,14 +159,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 12 Dec 2024 19:53:37 GMT
|
||||
- Wed, 07 May 2025 02:10:11 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=PyJpKeiIPAL09jhZ7TAVgnQ5YB7Ha4MplnRyZkvQvDs-1734033217-1.0.1.1-mA.DBohqAynypzvd3K.0J2JY6_HWQcv6SdHAowE18qI9SJ2IsiSScEKWTGPAC3erWYzVwkYFa.cETaf9EhpyAA;
|
||||
path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos;
|
||||
path=/; expires=Wed, 07-May-25 02:40:11 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=o.8CU3JYqdXlO9ULnGn2to.2TlmlWc6i1_64SoVhZFA-1734033217203-0.0.1.1-604800000;
|
||||
- _cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -71,16 +178,22 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '104'
|
||||
- '123'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-678b766599-cgwjk
|
||||
x-envoy-upstream-service-time:
|
||||
- '98'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -94,12 +207,24 @@ interactions:
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_85d126466fc11bbf5ef4ee743d0c157a
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- req_97dfa15ce72eff259ad90bd7bc9b5742
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."],
|
||||
"model": "text-embedding-3-small", "encoding_format": "base64"}'
|
||||
body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the
|
||||
user query so that it is optimized for retrieval from a vector database. Consider
|
||||
how the query will be used to find relevant documents, and aim to make it more
|
||||
specific and context-aware. \n\n Do not include any other text than the rewritten
|
||||
query, especially any preamble or postamble and only add expected output format
|
||||
if its relevant to the rewritten query. \n\n Focus on the key words of the intended
|
||||
task and to retrieve the most relevant information. \n\n There will be some
|
||||
extra context provided that might need to be removed such as expected_output
|
||||
formats structured_outputs and other instructions."}, {"role": "user", "content":
|
||||
"The original query is: What is Brandon''s favorite color?\n\nThis is the expected
|
||||
criteria for your final answer: Brandon''s favorite color.\nyou MUST return
|
||||
the actual complete content as the final answer, not a summary.."}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
@@ -108,13 +233,13 @@ interactions:
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '137'
|
||||
- '992'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
@@ -124,25 +249,35 @@ interactions:
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.9
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\":
|
||||
\"embedding\",\n \"index\": 0,\n \"embedding\": \"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 truncated
|
||||
\ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\":
|
||||
12,\n \"total_tokens\": 12\n }\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jFLRbtQwEHzPV1j7fEG53JW73uOBKiFOIIRKhVAVufYmMXW8xt5UoOr+
|
||||
HTm5XlIoEi9+8OyMZ8b7mAkBRsNOgGolq87bfH/98UbGN1f379vDdf3jqj58/vDua/lpf/hy8xYW
|
||||
iUF331HxE+uVos5bZENuhFVAyZhUl5v164vtarssB6AjjTbRGs/5mvLOOJOXRbnOi02+3J7YLRmF
|
||||
EXbiWyaEEI/DmXw6jT9hJ4rF002HMcoGYXceEgIC2XQDMkYTWTqGxQQqcoxusL4P0mlyopYPFAyj
|
||||
UGQpzIcD1n2UybDrrZ0B0jlimQIPNm9PyPFszFLjA93FP6hQG2diWwWUkVwyEZk8DOgxE+J2KKB/
|
||||
lgl8oM5zxXSPw3PLzWrUg6n3Cb04YUws7Zy0XbwgV2lkaWycNQhKqhb1RJ3qlr02NAOyWei/zbyk
|
||||
PQY3rvkf+QlQCj2jrnxAbdTzwNNYwLSV/xo7lzwYhojhwSis2GBIH6Gxlr0ddwXir8jYVbVxDQYf
|
||||
zLgwta+K1WW5LcvisoDsmP0GAAD//wMApUG7jD4DAAA=
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8f1042f89e85cf2b-SJC
|
||||
- 93bd2df8e9db3023-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -150,55 +285,52 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 12 Dec 2024 19:53:37 GMT
|
||||
- Wed, 07 May 2025 02:10:12 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg;
|
||||
path=/; expires=Thu, 12-Dec-24 20:23:37 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE;
|
||||
path=/; expires=Wed, 07-May-25 02:40:12 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000;
|
||||
- _cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-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:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '75'
|
||||
- '138'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '140'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999986'
|
||||
- '149999783'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_531afeb97985d1513eb1c8f311a1d62a
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- req_bd031dddb84a21749dbe09f42b3f8c00
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"input": ["What is Brandon''s favorite color? This is the expect criteria
|
||||
for your final answer: Brandon''s favorite color. you MUST return the actual
|
||||
complete content as the final answer, not a summary."], "model": "text-embedding-3-small",
|
||||
body: '{"input": ["Brandon favorite color"], "model": "text-embedding-3-small",
|
||||
"encoding_format": "base64"}'
|
||||
headers:
|
||||
accept:
|
||||
@@ -208,16 +340,16 @@ interactions:
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '270'
|
||||
- '101'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=OEqOxpPl0XuTSedCFKlaysHtx3Xbo9entNjNd5SahSU-1734033217-1.0.1.1-a.bCXL5.lBOiCyjue9I01oG8aqQHT7tbU0REUBpUu7xMNr7b32iqefcgm6O1l2ToQ_oUtDhAzSBTK7Espxgykg;
|
||||
_cfuvid=8eVoktQyZSE413nzKx4zVo82AF3MS96DjnHQeN.E6Pk-1734033217682-0.0.1.1-604800000
|
||||
- __cf_bm=u.v.Ljv84ep79XydCTMQK.9w88QD56KFcms_QmFTmoA-1746583811-1.0.1.1-VozUy49upqnXzrPGLVSYQim11m9LYuTLcr0cqXGazOI2W4Iq2Vp8sEfeRGcf0HpCOZrHM9r5vdPPk9kwDxJPddltrYDlKF1_.wK0JnRNUos;
|
||||
_cfuvid=6WaFjB6rWmnHkFfNPnSRG5da_gR_iACY69uwXj8bWMw-1746583811840-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
@@ -227,25 +359,132 @@ interactions:
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.9
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\":
|
||||
\"embedding\",\n \"index\": 0,\n \"embedding\": \"E6oePU+4O7x56vq7zVngPEM2EjzFXKG9oHeAPQmemjyDkc28NhtJPcrjOjwZMTg9BBkwvVnCkLwdG1S78xNLPHHv6jxrySS95VnVvIsp27vm9KO88ACovCKej7xFR4Y9I9o5vS4eCrwPwIK8KF+kO28UlDxV3NK8RRFpvA3rOLxMbcw6QpvDvG7aGLumOBW9Lh4KPDui4jvTs5Q8ppsXPB22IryFBUQ8IqC+vGeA5LxLax095LooPXesoTyR5hG9ZG1BO4d3Cz2n10G8ETjXvDYZGj1DnXI9cie3u9AFozqGB/O8S86fPAZVWjxkaxK95zJ9OVSiV70f8ky9fDM7PaOMUruAfqq8er0VvWMzRjy4QVg9UskvPGsu1rz4M4Q9LUeRvOEKCDpV3NK8k/cFuzSloz3LuAQ6WIiVPF1ysby43Ka89sNrPLqzn7yHdwu9Yb0gvY92+bxUolc8LuY9vVdQybwHKiS978hbvZBLQ7zss4k8FKxNPDj0cLuxfpQ86+DuvPtGpzuQSZS8VdqjPCDHlrwxMa28MjNcuzksPTzK4Qs98ALXvGL3G7w+sSc9sat5PIOT/DpLzp+9U2atPEFhyLxm34g9iLGGvCn+ULxxJYi9QmN3vYsnLDzOLiq9lZjhPLXJAz0wkgC97FI2vYxjVr0lTAE98TxSPYTNdzyBuKW8LoVqvEKZFL2GokE8qKyLO5O/ubyzH/C8u1JMu7KAQzunchA7L1iFu2m637uO10y8IMcWO0WstzyGokG8YVoevV/mJ7rgbQq9Ew9QPStyxzxL0n25BBeBujSnUjtzY2G9FYNGPRaF9TwlTIG9yuGLPcb9/Lx6JHa9tmiwu1dOGj04Kg69WmG9OzD1grydzWw8Kp39vNCiIL2+Y8A8VnnQvMxXsbueBbm85VemPBkz57uOchs8WSnxPLtU+zv9HSA89OgUvAEIPD1dDYA7iLEGPO/GLD0G8Ci8aBuzvDV8nDxuQXm8Ew2hvDYZGr0HKqS8kiRrvSAqmbvQB9I8A90FPSFocrzpP5O9TnwRvHGICj3i4QC8BVMrvau/LjzJRr2878hbPQrYFT0Ykgs9+6tYvQ/Agj0Q/ls8xfmePEbkA72V0C29meV/PdLg+bzvxqw8u+0aPSHJRb3t7YS8MZSvORWDRrwdtiI9o4xSvNbEiDr0TUY9IclFPU1ERT3Jq+68s1UNPRe/cDyAG6i8Pk4lvWJefLx+pzE9hM33u7cHXb29xBO8YCAjvUqUJL0IZJ+8EThXvMc3eDzeXkW9U2YtvbNXPDx3sH89vI72O4MsHDzzE0u8YIXUvMxXMTv1ifA8LoM7PFjvdTterCw89EuXuxRHHL1ZikS8QcTKvA9dADxXsRy6UfTlPMXBUr0PxGC97LMJvF4RXrwYLwm9btxHvX5CgD3Jp5A8FiBEvexQh7w9FCo87e8zvcsfZbygdwA9NEKhu784Cryitdm84G0KvVe1+jradti7Lh4KPZSWMjj+Vxs6tSyGPHNjYTw/7VG8fQiFvGd+tbu+/o47WOsXuyAsSDxotoE7eIMavaXI/LyFAxW8CQNMvHq9FbtV2iO9XDi2u1jv9Ty9xJM8ou0lPAwUQDw7ngQ9ZG1BPXInt7vlVyY8IcnFPAaNpjw0paM7YzEXOsOFKD0iO408o4zSubyKmDzCsN68pzxzvSTcaDuitVk84aeFvCAqGT082q46kEtDu2MzRj083F08pQDJu7kWIr2OOk+9wayAPJ3LPT3iRrK8u1R7vJHq77x11ag7zZGsvL86Oby/nTu9e15xPNl0qTyWCqk7XQ+vux+Nm73c6k69NUb/O8sfZbx6JPa8CaDJvHHtu7zq3j87elqTPGi2AbsNhge9OgGHvPeWhjwc4di83CKbucB0tLwsqpO8twddvbIbEr39glE8tsuyPHzOCb0G8Cg9PD2xOwNCt70ZaQS9qBE9vVyd57y/OAo9RNdtuqh2br1ZKXE8c/6vvEylGLsxMS29rZYnPcaWHL3/kZY8VhbOOfYkvztGS+S7XhHePH9GXrwN6zi9ExF/Pd8zjzyQsPS7HN+pvOp5Dr27UB29ZaUNvPk3YrwTDSE98ALXvJHq7zpcOLY9AM7Au+aRoT1f5ic9UscAPcxVgrvhcei8c18DvOqm8zv0T/U8RktkOjYZGr23B928JbGyvDNtV713sH879lwLvR+PyjzOLio9tmaBvFIu4TwPxGA93sP2POcuHzuaukm8UskvvC6BDDz3+zc8NUb/OzSlI73HN3g9dnImPf8uFLybWfa8cLVvvSFo8ryrv667wrBeOlexnDyR6u+79E1GPGWlDTykxB49ADNyvXGIir1ngGS8pzxzvMPoqjxuQXk7S9J9vehs+DzTUJK8/5EWu/E6o7y2ZoE8mh/7OwDOQLwzbVe9DBZvPSqd/Tv7qak8ibXkO4lOhD3sGuo887BIPGZG6TxHhd88rfkpu6fVkryJ6wG9KjYdvQFtbb3gbQq98AJXPVtjbL1xJQg7eiR2PXNjYT22ZgE8KMTVO0DCGztud5a8TxkPPdbIZrxx7+q7MPcxukvOHzxnGYS8yaeQvLhBWLxXs0s8W2PsPMmnkDycLBG9kr2Ku8lEjjxve3S83sP2vO/IW7zTGMa7g4+eusgKkzyvbaC8tS41PDC/5bxmQgu8PhZZPGfhtzpEcA09LoXqPPa/jTswv2U9uNymPMGuLzzariQ9iu2wvIAbKD1CmRS9ngfovIxhp7zEvyM7UwMrvFuZCbz4MwS95B0rvcy6s7xlpzw76+BuPHpak7wtS2+8YlxNvPE80ryPdnm9SjPRvB5TIL1Ecry8elqTPNTtD7yjJyG8h9w8u7vvST32JD88nJHCOw/E4DxLzh+9oHtevEn3JrvXAuI8OmY4u1nCkLwniKs7c2NhvLtU+zzWxAg8eer6uxWBFz2QsPS7vv4OPb1hET3R3Ju8//h2PNHcm7wdG9S8ICzIPA6Itrw/66K7oHcAvTe4xjx0ndw7mRudvCDHljzyds08ZxmEPA9dgDvKfom7IWjyvKDcMTyQS8O8kepvveS6KD2770m8fgo0vAEGjTxcOLa80nmZPF9L2byOPH48z2ilvAwW7zs7O4K8nJPxvDSnUjuUXua70xr1vJnl/7zFXCG9uEHYvNSKjbtNRMU8wDzoujRE0LwxlC+8OI8/O5BLw7zFXCE8e17xPHv5P73vyNu8X0mqvCrTmjt0m608n0FjvOOALbt+QoA8EtOlO5IiPDywDM28hqLBvLHjxbyFA5U7eOYcvYRmF70lrwO9l6cmPGL3m7wEGTC8xv38vEvOnz2XDFg8ZkKLO+reP7zstbg8UfI2PAPdBT1sBc8787BIPGZEOr2aH/s8b7GRveFvubzhcei7qyACPRE2KD17XvG8yavuPEAlnjyzVY08ce9qvRpt4rx8zok82nZYPC4eirtdDQC9k/cFvEaBgbxve/S8s1UNvCFklLuC8iC9U2YtOdcCYrpJ+VW92DxdvBgvCb0UrE07FUt6O10PL73JRI48R4OwvCo2nby8Jxa8OS7sOy9YhbwZzrU8+Ji1vKu/Lr1bmYk7hM33Oj/t0Tpve/Q8mX4fvEqW0zxQUwq9K3JHPCHJRTwiOw08wrDevI92ebx3rKG8RuayPDIz3LvqeY48USqDPI48/rtiXnw8WSWTvLl7UzztioK7+DOEvNMadTziRAM8+dCBvB5ToDwc3yk8SflVvaskYDwlsbK7fDEMvSTcaLyK79+81sjmu5T5tDq0jwg9gbpUPROqnrtbmzi8FEnLPOGnhbxHIK48fDEMu/E6IzxngOS6FEccPBkxuDyPEci7d0kfPJ1ou7rTtUM8Y5h3uyjE1TvFwVI7QSl8PDoBB7ypS7g8uRYiPeOArbzt77M478hbPKX+GbzXALO6ou0lPMfSxryx4Ra8JbGyvF3X4rzQoqA8mriavCZQ37z3loa8zVngO73I8TwJoEk8TnyRPPE8Ur0TEf87GTG4vB0ZJTwTDaG80t5KumJe/DzYnbC7ou0lPRj5azux48W84kQDPS1L7zvr4O48LeSOO+p5jryDjx686+BuPNCiID1dDQC9pMbNPN5cljvRQc27a8mkvPpxXTz3+zc8ZaWNPBzh2DyM/qS7cSUIPaY4Fb22aLA73lwWPJofe7wMr447sKlKO5IgjTvzsEi6TuHCvJIk6zwUrE28v9UHvBf3vDyWbSs87o7gPC3kDr0haPI8wrDePJGDDzwxlK+9c/4vPfk3YjvWyOa8DVDqu9cAM7z2w+s8f+Gsu6dykDyTvzm8mlWYO7O4jz2Rgw89UfTlPHP+r7kWu5K8QzhBPXv5P7wTctK8OzuCvX4M4zrrFgy87LMJvO4nAL0AzJE8cic3vJq6Sb1ORvS8e15xPfzlU7xi+cq8NKfSPHesIbsMFu880hYXvbbNYbqVmOG8a8vTvA4jBT1lDG48CGQfPGUIEL2vb8882XSpO5jhobtSya+8jGNWO3yWPbz7q9g8twfdvE2nRzumAvi8qBE9O5wsEbxQ8Ac9twddvG5B+TplpQ08jTigvEEp/DyO10y9NXycvP+RFj145py88hGcu/MTy7zJqT+8QIrPO+Kr47zBEbI7K3LHu7ZmgTwuheq8glUjPey1OL31IhA7elqTPL3Icbx6vRW9oNyxu/RLl7wlr4M8gywcPFyd5zvkH1q80T8ePJCuRT1zYTK9eloTvQt1Ez156vo8NhmavADMkTuOchs8yx/lvG5B+bs6AzY8gldSvbHjxTy5e9O8K9d4O6mw6TwniKu8ts3hvF9LWbzhb7m7h3k6vb3I8TzwnSW87LU4PBMRfzxY7UY7LoEMPeOALb02G0m62hEnPJbSXLu7Ukw8RyAuPdqupLvOyye8lwxYPcYzmjy77Ro95vbSO7oY0Tzx1yA8mRsdvLine truncated
|
||||
\ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\":
|
||||
39,\n \"total_tokens\": 39\n }\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
r/8DAAD//wMAhvFupN4gAAA=
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8f1042fb580acf2b-SJC
|
||||
- 93bd2dfc5889ceb1-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -253,7 +492,7 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 12 Dec 2024 19:53:38 GMT
|
||||
- Wed, 07 May 2025 02:10:13 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
@@ -266,16 +505,22 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '85'
|
||||
- '189'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-6b78fbf94c-rkptb
|
||||
x-envoy-upstream-service-time:
|
||||
- '192'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -283,29 +528,30 @@ interactions:
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999953'
|
||||
- '9999994'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_52a59c31ea2beb8578511f56da5ea2dd
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- req_91abc313f74bce8daaf5f8d411143f28
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
You have access to specific knowledge sources.\nYour personal goal is: Provide
|
||||
information based on knowledge sources\nTo give my best complete final answer
|
||||
to the task use the exact following format:\n\nThought: I now can give a great
|
||||
answer\nFinal Answer: Your final answer must be the great and the most complete
|
||||
as possible, it must be outcome described.\n\nI MUST use these formats, my job
|
||||
depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s
|
||||
favorite color?\n\nThis is the expect criteria for your final answer: Brandon''s
|
||||
favorite color.\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.Additional Information: Brandon''s favorite color is red and he
|
||||
likes Mexican food.\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:"}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"], "stream": false}'
|
||||
to the task respond using the exact following format:\n\nThought: I now can
|
||||
give a great answer\nFinal Answer: Your final answer must be the great and the
|
||||
most complete as possible, it must be outcome described.\n\nI MUST use these
|
||||
formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task:
|
||||
What is Brandon''s favorite color?\n\nThis is the expected criteria for your
|
||||
final answer: Brandon''s favorite color.\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.Additional Information: Brandon''s
|
||||
favorite color is red and he likes Mexican food.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
@@ -314,13 +560,16 @@ interactions:
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1013'
|
||||
- '1008'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=NC5Gl3J2PS6v0hkekzpQQDUENehQNq2JMlXGtoZGYKU-1746583812-1.0.1.1-BtPPeA80MGyGPcHeJxrD33q4p.gLUxQIj9GYAavoeX8Cub2CbnppccHh5_9Q3eRqlhxol7evdgkk0kQWUc00eL2cQ5nBiqj8gtewLoqsrFE;
|
||||
_cfuvid=sls5nnOfsQtx13YdRLxgTXu0xxrDa7lhMRbaFqfQXwk-1746583812401-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
@@ -330,35 +579,34 @@ interactions:
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.9
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-AdjXeg7urmMdz087X2AhPdSsqamzb\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1734033218,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
|
||||
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
|
||||
\"assistant\",\n \"content\": \"I now can give a great answer \\nFinal
|
||||
Answer: Brandon's favorite color is red.\",\n \"refusal\": null\n },\n
|
||||
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
|
||||
\ \"usage\": {\n \"prompt_tokens\": 182,\n \"completion_tokens\": 18,\n
|
||||
\ \"total_tokens\": 200,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
|
||||
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
|
||||
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
|
||||
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"system_fingerprint\":
|
||||
\"fp_bba3c8e70b\"\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xSTW/bMAy9+1cQuuwSF7aTLYlv66FDTz1twz4Kg5FoR60sCpKSbi3y3wc5aex2
|
||||
HbCLAfPxUe898ikDEFqJGoTcYpS9M/nl55uvm+J+effti68qGa6+4/pT+Yjba3nzKGaJwZs7kvGZ
|
||||
dSG5d4aiZnuEpSeMlKaWy8WH96v5qpwPQM+KTKJ1LuYLznttdV4V1SIvlnm5OrG3rCUFUcOPDADg
|
||||
afgmnVbRL1FDMXuu9BQCdiTqcxOA8GxSRWAIOkS0UcxGULKNZAfp12D5ASRa6PSeAKFLsgFteCAP
|
||||
8NNeaYsGPg7/NVx6tIrtuwAt7tnrSCDZsAcdwJO6mL7iqd0FTE7tzpgJgNZyxJTU4O/2hBzOjgx3
|
||||
zvMmvKKKVlsdto0nDGyT+hDZiQE9ZAC3Q3K7F2EI57l3sYl8T8Nz5Wp+nCfGhU3Q9QmMHNGM9aqo
|
||||
Zm/MaxRF1CZMshcS5ZbUSB0XhTuleQJkE9d/q3lr9tG5tt3/jB8BKclFUo3zpLR86Xhs85Tu+V9t
|
||||
55QHwSKQ32tJTdTk0yYUtbgzxysT4XeI1Detth155/Xx1FrXFPN1taqqYl2I7JD9AQAA//8DACIr
|
||||
2O54AwAA
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8f1042fffca367e8-SJC
|
||||
- 93bd2dffffbc3023-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -366,15 +614,9 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 12 Dec 2024 19:53:39 GMT
|
||||
- Wed, 07 May 2025 02:10:13 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=klZf7yZ0CFfDo9eLCfStVSScD0mVgsmNrSz6Ud9on_I-1734033219-1.0.1.1-ar.FWpGgFvtFOTAbByMA5fp9JAycsUeRzBSv6anze.RFpxDOtJVYWslYhhCFIdPyPiHAZGPcuQJxlRbkyr8vRw;
|
||||
path=/; expires=Thu, 12-Dec-24 20:23:39 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=xecEkmr_qTiKn7EKC7aeGN5bpsbPM9ofyIsipL4VCYM-1734033219265-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
@@ -383,14 +625,18 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '412'
|
||||
- '334'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '336'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -398,13 +644,14 @@ interactions:
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999769'
|
||||
- '149999782'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_15b9d1b27239c538a259e964b502f4d9
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- req_ceae74c516df806c888d819e14ca9da3
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -6,7 +6,7 @@ interactions:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
@@ -18,7 +18,7 @@ interactions:
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- x64
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
@@ -38,13 +38,120 @@ interactions:
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\":
|
||||
\"embedding\",\n \"index\": 0,\n \"embedding\": \"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 truncated
|
||||
\ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\":
|
||||
12,\n \"total_tokens\": 12\n }\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
AP//AwDiS0D64CAAAA==
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 92606d69df737e05-GRU
|
||||
- 93bd4e5fa8affa9e-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -52,14 +159,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Tue, 25 Mar 2025 18:21:21 GMT
|
||||
- Wed, 07 May 2025 02:32:19 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU;
|
||||
path=/; expires=Tue, 25-Mar-25 18:51:21 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8;
|
||||
path=/; expires=Wed, 07-May-25 03:02:19 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000;
|
||||
- _cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -78,15 +185,15 @@ interactions:
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '111'
|
||||
- '554'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-678fbc785b-244c7
|
||||
- envoy-router-548b76db4d-24xct
|
||||
x-envoy-upstream-service-time:
|
||||
- '82'
|
||||
- '557'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -100,191 +207,33 @@ interactions:
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_eec876b36a4e41890b2123c7595d82bf
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: '{"input": ["What is Brandon''s favorite color? This is the expected criteria
|
||||
for your final answer: Brandon''s favorite color. you MUST return the actual
|
||||
complete content as the final answer, not a summary."], "model": "text-embedding-3-small",
|
||||
"encoding_format": "base64"}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '272'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=YQe0r6xlg5bRl1wJ70dt0Aocti_r13sABgw2peP46Yw-1742926881-1.0.1.1-.p2IX5HrpoSy4WAMkQFz0iswmLdbuLJl2rLIWZkOOdUZ3jUTwTTGdAZqO8N084.xjQYo12Qj_tSEQnzCcc4a8DtoXIRULYMPRzIPeTezIkU;
|
||||
_cfuvid=T7Hv3cCn64SAlcAT1xFBTjlHSm.Ut3gTDw3SwYO5H9o-1742926881514-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- x64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
content: "{\n \"object\": \"list\",\n \"data\": [\n {\n \"object\":
|
||||
\"embedding\",\n \"index\": 0,\n \"embedding\": \"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 truncated
|
||||
\ }\n ],\n \"model\": \"text-embedding-3-small\",\n \"usage\": {\n \"prompt_tokens\":
|
||||
39,\n \"total_tokens\": 39\n }\n}\n"
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 92606d71fadd7e05-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Tue, 25 Mar 2025 18:21:22 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-allow-origin:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '176'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-84d4976dd6-kn9b2
|
||||
x-envoy-upstream-service-time:
|
||||
- '76'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999951'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_4a397f4ae14d9fcb88333d9ecb5be969
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: !!binary |
|
||||
CocLCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS3goKEgoQY3Jld2FpLnRl
|
||||
bGVtZXRyeRK2CAoQro1thsfReS7yOp6MTxegrxIItR6JoTTghDkqDENyZXcgQ3JlYXRlZDABOZgk
|
||||
XbC/HjAYQdgJurC/HjAYShsKDmNyZXdhaV92ZXJzaW9uEgkKBzAuMTA4LjBKGgoOcHl0aG9uX3Zl
|
||||
cnNpb24SCAoGMy4xMi45Si4KCGNyZXdfa2V5EiIKIDU1MjczOGJmMDQwZTcxZGEyMjJmOWQzNjU1
|
||||
MjIzMjdjSjEKB2NyZXdfaWQSJgokMmUzMGJhOWQtZWNkOS00MDg5LTk5YTctMGIwYTE0ODk5ODdh
|
||||
ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3
|
||||
X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUqaAwoLY3Jl
|
||||
d19hZ2VudHMSigMKhwNbeyJrZXkiOiAiYTk2YTQyMjM1Y2U0M2RiZDgwNzc0ZWIyODhhNzM3MzUi
|
||||
LCAiaWQiOiAiZjU5NjZlYTktODk2Zi00MDRmLWIwOGUtZDk1MWI4OWNmZTM3IiwgInJvbGUiOiAi
|
||||
SW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlwdGlvbiB0aGF0IGlz
|
||||
IGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAidmVyYm9zZT8iOiBmYWxzZSwgIm1heF9pdGVy
|
||||
IjogMjUsICJtYXhfcnBtIjogbnVsbCwgImZ1bmN0aW9uX2NhbGxpbmdfbGxtIjogIiIsICJsbG0i
|
||||
OiAiZ3B0LTRvLW1pbmkiLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29k
|
||||
ZV9leGVjdXRpb24/IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMi
|
||||
OiBbXX1dSsgCCgpjcmV3X3Rhc2tzErkCCrYCW3sia2V5IjogIjg2ZmU1NTY3ZDFmNDFiMWY4NDQ1
|
||||
ZTRmOGQ0YmY0MGU2IiwgImlkIjogImM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3
|
||||
NCIsICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFn
|
||||
ZW50X3JvbGUiOiAiSW5mb3JtYXRpb24gQWdlbnQgd2l0aCBleHRlbnNpdmUgcm9sZSBkZXNjcmlw
|
||||
dGlvbiB0aGF0IGlzIGxvbmdlciB0aGFuIDgwIGNoYXJhY3RlcnMiLCAiYWdlbnRfa2V5IjogImE5
|
||||
NmE0MjIzNWNlNDNkYmQ4MDc3NGViMjg4YTczNzM1IiwgInRvb2xzX25hbWVzIjogW119XXoCGAGF
|
||||
AQABAAASjgIKELNeNWDbp5Ua0wTFrxxeOrASCIhmnaGTrxBNKgxUYXNrIENyZWF0ZWQwATkQlzso
|
||||
wB4wGEE4Kz4owB4wGEouCghjcmV3X2tleRIiCiA1NTI3MzhiZjA0MGU3MWRhMjIyZjlkMzY1NTIy
|
||||
MzI3Y0oxCgdjcmV3X2lkEiYKJDJlMzBiYTlkLWVjZDktNDA4OS05OWE3LTBiMGExNDg5OTg3YUou
|
||||
Cgh0YXNrX2tleRIiCiA4NmZlNTU2N2QxZjQxYjFmODQ0NWU0ZjhkNGJmNDBlNkoxCgd0YXNrX2lk
|
||||
EiYKJGM1ZTU3MTcwLWFkZWQtNDNkNS1iZTE3LTZhZDliM2ZjM2U3NHoCGAGFAQABAAA=
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate, zstd
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '1418'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
User-Agent:
|
||||
- OTel-OTLP-Exporter-Python/1.31.1
|
||||
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:
|
||||
- Tue, 25 Mar 2025 18:21:24 GMT
|
||||
- req_61a2cd23c379f8ce51385df82ba1c744
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent
|
||||
with extensive role description that is longer than 80 characters. You have
|
||||
access to specific knowledge sources.\nYour personal goal is: Provide information
|
||||
based on knowledge sources\nTo give my best complete final answer to the task
|
||||
respond using the exact following format:\n\nThought: I now can give a great
|
||||
answer\nFinal Answer: Your final answer must be the great and the most complete
|
||||
as possible, it must be outcome described.\n\nI MUST use these formats, my job
|
||||
depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s
|
||||
favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s
|
||||
favorite color.\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.Additional Information: Brandon''s favorite color is red and he
|
||||
likes Mexican food.\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:"}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the
|
||||
user query so that it is optimized for retrieval from a vector database. Consider
|
||||
how the query will be used to find relevant documents, and aim to make it more
|
||||
specific and context-aware. \n\n Do not include any other text than the rewritten
|
||||
query, especially any preamble or postamble and only add expected output format
|
||||
if its relevant to the rewritten query. \n\n Focus on the key words of the intended
|
||||
task and to retrieve the most relevant information. \n\n There will be some
|
||||
extra context provided that might need to be removed such as expected_output
|
||||
formats structured_outputs and other instructions."}, {"role": "user", "content":
|
||||
"The original query is: What is Brandon''s favorite color?\n\nThis is the expected
|
||||
criteria for your final answer: Brandon''s favorite color.\nyou MUST return
|
||||
the actual complete content as the final answer, not a summary.."}], "model":
|
||||
"gpt-4o", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1074'
|
||||
- '987'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
@@ -292,7 +241,7 @@ interactions:
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- x64
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
@@ -314,21 +263,21 @@ interactions:
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-BF3Br9QWbmiaKiPLFd5URBfj1B7NQ\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1742926883,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
|
||||
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
|
||||
\"assistant\",\n \"content\": \"I now can give a great answer \\nFinal
|
||||
Answer: Brandon's favorite color is red.\",\n \"refusal\": null,\n \"annotations\":
|
||||
[]\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
|
||||
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 194,\n \"completion_tokens\":
|
||||
19,\n \"total_tokens\": 213,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
|
||||
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
|
||||
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
|
||||
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
|
||||
\"default\",\n \"system_fingerprint\": \"fp_27322b4e16\"\n}\n"
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xSwW7UMBS85yssX7gQlC1pNtpjJZA4IA6IE6oir/2Sdev4WX4vBVTtvyM76SZb
|
||||
QOLig+fNeGb8ngshpDXyIKQ+KdZjcOXdty9U/YjgTN183FefPkSwYQf8uf46sXybGHh8AM0vrHca
|
||||
x+CALfoZ1hEUQ1Ld7evmtr3d1VUGRjTgEm0IXNZY3lQ3dVm1ZdUsxBNaDSQP4nshhBDP+UwWvYGf
|
||||
8iCyTL4ZgUgNIA+XISFkRJdupCKyxMrPdhdQo2fw2fVdVN6gf0OiV08YLYPQ6DAK63uMo7pEedGF
|
||||
fiKVnPvJuQ2gvEfO49n0/YKcLzYdDiHikV5RZW+9pVMXQRH6ZIkYg8zouRDiPtcxXSWUIeIYuGN8
|
||||
hPzcbv9+1pPrB6zofsEYWbkNqV06vJbrDLCyjjZ9Sq30CcxKXctXk7G4AYpN6D/N/E17Dm798D/y
|
||||
K6A1BAbThQjG6uvA61iEtJ7/GruUnA1LgvhkNXRsIaaPMNCryS2LTr+IYex66weIIdp5ffrQmbZt
|
||||
6r49NkdZnIvfAAAA//8DADqQ5CxHAwAA
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 92606d78cdcb7def-GRU
|
||||
- 93bd4e648bb75850-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -336,14 +285,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Tue, 25 Mar 2025 18:21:24 GMT
|
||||
- Wed, 07 May 2025 02:32:20 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=akSDYPP.eTuyDBep9apt00XQn2By0q4quUKYKaowxB4-1742926884-1.0.1.1-nmj4tC9iquLz9Y4C_Lm9AYbMb7_yjKru3.wztYGzcO7o4_kIFqmjYjAAdLL2ZOWQUXzhWiH_XRvDTY94ubficIUm7WB.5o4CQ41GRGDc6c0;
|
||||
path=/; expires=Tue, 25-Mar-25 18:51:24 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI;
|
||||
path=/; expires=Wed, 07-May-25 03:02:20 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=eJkVy2yBJBQb66LFc5ao3Y_Xwek6ZYZdKM7l5_pxS_E-1742926884663-0.0.1.1-604800000;
|
||||
- _cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -353,30 +302,357 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '316'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '319'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '30000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '29999784'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_c87b9fbb3b92014f978845e5773a01c6
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"input": ["Brandon''s favorite color information"], "model": "text-embedding-3-small",
|
||||
"encoding_format": "base64"}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '115'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=OPw6ztA5EppsJ3y6C7lEoqGqTbJTr_EBNyZlIzRzR2E-1746585139-1.0.1.1-rZnEfzLCc.FOL.S2PSaPD0KCOc4tdFUg57LXOhFR2FbBm3TYjWXeNMi.Om2bCsj.QEG9FqbGy03gA1WVGhbGUUqGJUHYgK1YEFwgpUx33O8;
|
||||
_cfuvid=SglpS002Q61Pecur1plBAPPzB5XA.dNRJHDcY0UWwlc-1746585139769-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
zGXeIAAA
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 93bd4e67791dfa9e-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:32:21 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-allow-origin:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '268'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-7d545f8f56-xh67c
|
||||
x-envoy-upstream-service-time:
|
||||
- '233'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999991'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_aee72a2d476c61f01211fa5b25537740
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent
|
||||
with extensive role description that is longer than 80 characters. You have
|
||||
access to specific knowledge sources.\nYour personal goal is: Provide information
|
||||
based on knowledge sources\nTo give my best complete final answer to the task
|
||||
respond using the exact following format:\n\nThought: I now can give a great
|
||||
answer\nFinal Answer: Your final answer must be the great and the most complete
|
||||
as possible, it must be outcome described.\n\nI MUST use these formats, my job
|
||||
depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s
|
||||
favorite color?\n\nThis is the expected criteria for your final answer: Brandon''s
|
||||
favorite color.\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.Additional Information: Brandon''s favorite color is red and he
|
||||
likes Mexican food.\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:"}], "model":
|
||||
"gpt-4o", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1069'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=ZjI36hLyf9Da1Y8yeR1Zgg8XCD7rmT1aXbO_gEbPdNs-1746585140-1.0.1.1-TlQix1fCrHyIU6zIRsJvFZlp5S1YrZH1pM0JcFGHXsB7fOk_DfDwkz.r8NiFfBM6sBaLAYZNtXZ7L_6qPNeL22OhXTrbA5wIPyYNGUdE9aI;
|
||||
_cfuvid=j1aSi.0AgeQ41HXT2FrDI_tx3yzmdoKTXlbNy_vIn0k-1746585140368-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jFKxbtswEN31FQcuXezAUhU71uYMNToUHZqiRdNAoMmTxIbiESTlOAj8
|
||||
7wUlx1LaBMgiQPfuPb57d08JAFOSFcBEw4NorZ5ff//q02X362ZjJG1/7B6X6dYefm623xrM2Cwy
|
||||
aPcHRXhmXQhqrcagyAywcMgDRtV0lS8vry7TPO2BliTqSKttmOc0zxZZPl9czRfLE7EhJdCzAm4T
|
||||
AICn/hstGokHVsBi9lxp0XteIyvOTQDMkY4Vxr1XPnAT2GwEBZmApnd901BXN6GAz2DoAQQ3UKs9
|
||||
Aoc6Wgdu/AM6gN/mkzJcw6b/L+DacSPJfPBQ8T05FRAEaXKgPDiUM+BGQoOg1T16+IIHFaUrInkx
|
||||
deKw6jyPQZhO6wnAjaHAY5B9Bncn5HieWlNtHe38P1RWKaN8Uzrknkyc0AeyrEePCcBdn273IjBm
|
||||
HbU2lIHusX8uXeeDHhv3OaLZ6gQGClxP6lk6e0WvlBi40n6yHya4aFCO1HGZvJOKJkAymfp/N69p
|
||||
D5MrU79HfgSEQBtQltahVOLlxGObw3jub7WdU+4NM49urwSWQaGLm5BY8U4Pl8j8ow/YlpUyNTrr
|
||||
1HCOlS3XizTL5Hr1UbDkmPwFAAD//wMAUYDw9pcDAAA=
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd4e6c1f115850-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:32:21 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '1351'
|
||||
- '290'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '294'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
- '30000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999765'
|
||||
- '29999765'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_126a3481ff4c4d9e8e75ed2dacbe3719
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- req_e0c3819ab814496d457e48eacc4df51f
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,660 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: '{"input": ["Brandon''s favorite color is red and he likes Mexican food."],
|
||||
"model": "text-embedding-3-small", "encoding_format": "base64"}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '137'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd468618792506-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:26:58 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk;
|
||||
path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-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:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '271'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-6fcbcbb5fd-rlx2b
|
||||
x-envoy-upstream-service-time:
|
||||
- '276'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999986'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_dfb1b7e20cfae7dd4c21a591f5989210
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the
|
||||
user query so that it is optimized for retrieval from a vector database. Consider
|
||||
how the query will be used to find relevant documents, and aim to make it more
|
||||
specific and context-aware. \n\n Do not include any other text than the rewritten
|
||||
query, especially any preamble or postamble and only add expected output format
|
||||
if its relevant to the rewritten query. \n\n Focus on the key words of the intended
|
||||
task and to retrieve the most relevant information. \n\n There will be some
|
||||
extra context provided that might need to be removed such as expected_output
|
||||
formats structured_outputs and other instructions."}, {"role": "user", "content":
|
||||
"The original query is: What is Brandon''s favorite color?\n\nThis is the expected
|
||||
criteria for your final answer: The answer to the question, in a format like
|
||||
this: `{{name: str, favorite_color: str}}`\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.."}], "model": "gpt-4o-mini", "stop":
|
||||
["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1054'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xSsW7bMBTc9RXEW7pYhaw6leylQJClU4AGyRIEAkM+yUwoPoJ8MloE/veAkmMp
|
||||
aQp04cB7d7w7vpdMCDAadgLUXrLqvc0vb697eroKNzdey/hLF9XzdXm4uLqTZfUTVolBj0+o+I31
|
||||
VVHvLbIhN8EqoGRMqutq8/2i3tTregR60mgTrfOcbyjvjTN5WZSbvKjydX1i78kojLAT95kQQryM
|
||||
Z/LpNP6GnShWbzc9xig7hN15SAgIZNMNyBhNZOkYVjOoyDG60fplkE6T+xJFKw8UDKNQZCn8WM4H
|
||||
bIcok2c3WLsApHPEMmUenT6ckOPZm6XOB3qMH6jQGmfivgkoI7nkIzJ5GNFjJsTD2MHwLhb4QL3n
|
||||
hukZx+fW23LSg7n6Ga1OGBNLuyRtV5/INRpZGhsXJYKSao96ps6Ny0EbWgDZIvTfZj7TnoIb1/2P
|
||||
/AwohZ5RNz6gNup94HksYFrMf42dSx4NQ8RwMAobNhjSR2hs5WCndYH4JzL2TWtch8EHM+1M65vi
|
||||
27asy7LYFpAds1cAAAD//wMA3xmId0EDAAA=
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd468ac97dcedd-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:26:58 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4;
|
||||
path=/; expires=Wed, 07-May-25 02:56:58 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '267'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '300'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999769'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_9be67025184f64bbc77df86b89c5f894
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"input": ["Brandon''s favorite color?"], "model": "text-embedding-3-small",
|
||||
"encoding_format": "base64"}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '104'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=b8RyPEId4yq9HJyuFnK7KNXV1hEa38vaf3KsPaYMi6U-1746584818-1.0.1.1-D2L05owANBA1NNJNxdD5avYizVIMB0Q9M_6PgN4YJzuXkQLOyORtRMDfNCF4SCptihGS_hISsNIh4LqfOcp9pQDRlLaFsYpAvHOaWt6teXk;
|
||||
_cfuvid=xH94XekAl_WXtZ8yJYk4wagWOpjufglIcgBHuIK4j5s-1746584818263-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd468e08302506-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:26:59 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-allow-origin:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '140'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-678b766599-k7s96
|
||||
x-envoy-upstream-service-time:
|
||||
- '61'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999994'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_22e020337220a8384462c62d1e51bcc6
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent
|
||||
with extensive role description that is longer than 80 characters. You have
|
||||
access to specific knowledge sources.\nYour personal goal is: Provide information
|
||||
based on knowledge sources\nTo give my best complete final answer to the task
|
||||
respond using the exact following format:\n\nThought: I now can give a great
|
||||
answer\nFinal Answer: Your final answer must be the great and the most complete
|
||||
as possible, it must be outcome described.\n\nI MUST use these formats, my job
|
||||
depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is Brandon''s
|
||||
favorite color?\n\nThis is the expected criteria for your final answer: The
|
||||
answer to the question, in a format like this: `{{name: str, favorite_color:
|
||||
str}}`\nyou MUST return the actual complete content as the final answer, not
|
||||
a summary.Additional Information: Brandon''s favorite color is red and he likes
|
||||
Mexican food.\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:"}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1136'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=RAnX9bxMu6FRFRvWLdkruoVeTpKeJSsewnbE5u1SKNc-1746584818-1.0.1.1-08O3HvJLNgXLW2GhIFer0bWIw7kc_bnco7201aq5kLNaI2.5R_LzcmmIHlEQmos6TsjWG..AYDzzeYQBts4AfDWCT__jWc1iMNREXvz_Bk4;
|
||||
_cfuvid=hVuA8E89306pCEvNIEtxK0bavBXUyyJLC45CNZ0NFcY-1746584818774-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jFNNb+IwEL3nV4x8JqsQYAu50UOl7mG/JE5LFU3tSXBxPJZt6K4Q/33l
|
||||
QCHtdqVeInnevOf3ZpxDBiC0EhUIucEoO2fy29W3zq2+L2dmpb4sFj+2X5dm80Td9qe8j2KUGPz4
|
||||
RDK+sD5J7pyhqNmeYOkJIyXV8c3082w+nY8XPdCxIpNorYv5lPNOW52XRTnNi5t8PD+zN6wlBVHB
|
||||
rwwA4NB/k0+r6LeooBi9VDoKAVsS1aUJQHg2qSIwBB0i2pPnMyjZRrK99Xuw/AwSLbR6T4DQJtuA
|
||||
NjyTB1jbO23RwLI/V3A4WOyogrW49WgV27UYQYN79jpSLdmwT6AntRbH4/BOT80uYMptd8YMALSW
|
||||
I6a59Wkfzsjxks9w6zw/hjdU0Wirw6b2hIFtyhIiO9GjxwzgoZ/j7tVohPPcuVhH3lJ/XTmenPTE
|
||||
dX0DdHYGI0c0g/pkPnpHr1YUUZsw2ISQKDekrtTr2nCnNA+AbJD6XzfvaZ+Sa9t+RP4KSEkukqqd
|
||||
J6Xl68TXNk/pdf+v7TLl3rAI5PdaUh01+bQJRQ3uzPk/CX9CpK5utG3JO69PD69xdTFZlPOyLBaF
|
||||
yI7ZXwAAAP//AwCISUFdhgMAAA==
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 93bd46929f55cedd-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:27:00 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '394'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '399'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999749'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_08f3bc0843f6a5d9afa8380d28251c47
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -6,7 +6,7 @@ interactions:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
@@ -151,7 +151,7 @@ interactions:
|
||||
6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA==
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 931fcf607c16eb34-SJC
|
||||
- 93bd535cca31f973-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -159,14 +159,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 17 Apr 2025 23:47:53 GMT
|
||||
- Wed, 07 May 2025 02:35:43 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=CncSMPCav.9EJL3emmM0sTqugx5GN6_Oy8JPFBssVho-1744933673-1.0.1.1-Q1XMvHbQdrfEWkkCYeeNHwFdZ1NpjAGJ_0jOUYIk_APelFe7nCanjW_xlOj12b3JQql9.iWQDiHvCeYJDTWkdxnNiMQOEiFMYHX5YZXUuJs;
|
||||
path=/; expires=Fri, 18-Apr-25 00:17:53 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=FaqN2sfsTata5eZF3jpzsswr9Ry6.aLOWPP..HstyKk-1746585343-1.0.1.1-9IGOA.WxYd0mtZoXXs5PV_DSi6IzwCB.H8l4mQxLdl3V1cQ9rGr5FSQPLoDVJA5uPwxduxFEbLVxJobTW2J_P0iBVcEQSvxcMnsJ8Jtnsxk;
|
||||
path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=unfPTYCpF5COtm5PuZDuaJqlhefP0iibfjsXHc9lKq0-1744933673515-0.0.1.1-604800000;
|
||||
- _cfuvid=SlYSO8wQlhrJsTTYoTXd7IBl_D9ZddMlIzW1PTFiZIE-1746585343627-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -185,15 +185,15 @@ interactions:
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '75'
|
||||
- '38'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-8687b6cbdb-4qpmr
|
||||
- envoy-router-6fcbcbb5fd-pxw6t
|
||||
x-envoy-upstream-service-time:
|
||||
- '46'
|
||||
- '41'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -207,32 +207,33 @@ interactions:
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_b8c884a7fe2bd4732903ecbdc632576d
|
||||
- req_39d01dc72178a8952d00ba36c7512521
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
You have access to specific knowledge sources.\nYour personal goal is: Provide
|
||||
information based on knowledge sources\nTo give my best complete final answer
|
||||
to the task respond using the exact following format:\n\nThought: I now can
|
||||
give a great answer\nFinal Answer: Your final answer must be the great and the
|
||||
most complete as possible, it must be outcome described.\n\nI MUST use these
|
||||
formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task:
|
||||
What is Brandon''s favorite color?\n\nThis is the expected criteria for your
|
||||
final answer: Brandon''s favorite color.\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the
|
||||
user query so that it is optimized for retrieval from a vector database. Consider
|
||||
how the query will be used to find relevant documents, and aim to make it more
|
||||
specific and context-aware. \n\n Do not include any other text than the rewritten
|
||||
query, especially any preamble or postamble and only add expected output format
|
||||
if its relevant to the rewritten query. \n\n Focus on the key words of the intended
|
||||
task and to retrieve the most relevant information. \n\n There will be some
|
||||
extra context provided that might need to be removed such as expected_output
|
||||
formats structured_outputs and other instructions."}, {"role": "user", "content":
|
||||
"The original query is: What is Brandon''s favorite color?\n\nThis is the expected
|
||||
criteria for your final answer: Brandon''s favorite color.\nyou MUST return
|
||||
the actual complete content as the final answer, not a summary.."}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '926'
|
||||
- '992'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
@@ -264,18 +265,19 @@ interactions:
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jJNNi9swEIbv+RWDLr0ki/NBvm5NYUsplFK29NAuZiKNnWlkjVaSk02X
|
||||
/PdiJxtn2y30YrCeecfvvCM/9QAUG7UEpTeYdOXtYPXp7vbLw7evm4ePmObvt/jrsVgVn9/5dbhj
|
||||
1W8Usv5JOj2rbrRU3lJicSesA2GiputwNpksxuPpbNyCSgzZRlb6NJjIoGLHg1E2mgyy2WA4P6s3
|
||||
wpqiWsL3HgDAU/tsfDpDj2oJWf/5pKIYsSS1vBQBqCC2OVEYI8eELql+B7W4RK61/gGc7EGjg5J3
|
||||
BAhlYxvQxT0FgB/ulh1aeNu+L2EV0BlxbyIUuJPAiUCLlQAcwUkCX68ta3sAI7quyCUywA72bMge
|
||||
AHfIFteWYOtkb8mUBFHqoCneXPsLVNQRm4xcbe0VQOckYZNxm8z9mRwvWVgpfZB1/EOqCnYcN3kg
|
||||
jOKauWMSr1p67AHct5nXL2JUPkjlU55kS+3nhtP5qZ/qVt3R0fQMkyS0V6rFpP9Kv9xQQrbxamtK
|
||||
o96Q6aTdirE2LFegdzX1325e632anF35P+07oDX5RCb3gQzrlxN3ZYGaP+FfZZeUW8MqUtixpjwx
|
||||
hWYThgqs7el+qniIiaq8YFdS8IFPl7TweTZejOajUbbIVO/Y+w0AAP//AwA4a1/QsgMAAA==
|
||||
H4sIAAAAAAAAAwAAAP//jFJNa9wwFLz7V4h36WVdvF5nv46BQEsPpYWeSjCK9GwrlfVU6XlpCfvf
|
||||
i+zN2klT6EUHzZvRzOg9ZUKA0XAUoDrJqvc2v/32+fTh68e7bel/UtXFR6/vKv+FP6191cMqMejh
|
||||
ERU/s94r6r1FNuQmWAWUjEl1vau2N/ubTbUZgZ402kRrPecV5b1xJi+LssqLXb7eX9gdGYURjuJ7
|
||||
JoQQT+OZfDqNv+AoitXzTY8xyhbheB0SAgLZdAMyRhNZOobVDCpyjG60fhuk0+TeRdHIEwXDKBRZ
|
||||
CsvxgM0QZbLsBmsXgHSOWKbIo9H7C3K+WrPU+kAP8RUVGuNM7OqAMpJLNiKThxE9Z0LcjxUML1KB
|
||||
D9R7rpl+4PjcereZ9GBufka3F4yJpV2SDqs35GqNLI2Niw5BSdWhnqlz4XLQhhZAtgj9t5m3tKfg
|
||||
xrX/Iz8DSqFn1LUPqI16GXgeC5j28l9j15JHwxAxnIzCmg2G9BEaGznYaVsg/o6Mfd0Y12LwwUwr
|
||||
0/i62BzKfVkWhwKyc/YHAAD//wMAwl9O/EADAAA=
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 931fcf649bdbed40-SJC
|
||||
- 93bd535e5f0b3ad4-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -283,14 +285,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 17 Apr 2025 23:47:54 GMT
|
||||
- Wed, 07 May 2025 02:35:43 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=8vySwO0xqpm0u93_1_rXQwTeEIWa2ei3_CD5sAdoo3o-1744933674-1.0.1.1-iqZDpH5poOUp4Rcnhfrb0N2Z0c2662RBiPEcx_gefNW.m3tBA3qyFa8tmFv7PitH8u9vyYK7jxUwy4lPiSi830QWNbTMgCMTbrJ7iaUV7hY;
|
||||
path=/; expires=Fri, 18-Apr-25 00:17:54 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo;
|
||||
path=/; expires=Wed, 07-May-25 03:05:43 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=IXAyT8eWpFERM53ngcYNmaqhocfGbOHWSoe7SFNdoGI-1744933674288-0.0.1.1-604800000;
|
||||
- _cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -300,16 +302,133 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '167'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '174'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999783'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_efb615e12a042605322c615ab896925c
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
You have access to specific knowledge sources.\nYour personal goal is: Provide
|
||||
information based on knowledge sources\nTo give my best complete final answer
|
||||
to the task respond using the exact following format:\n\nThought: I now can
|
||||
give a great answer\nFinal Answer: Your final answer must be the great and the
|
||||
most complete as possible, it must be outcome described.\n\nI MUST use these
|
||||
formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task:
|
||||
What is Brandon''s favorite color?\n\nThis is the expected criteria for your
|
||||
final answer: Brandon''s favorite color.\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '926'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=4ExRXOhgXGvPCnJZJFlvggG1kkRKGLpJmVtf53soQhg-1746585343-1.0.1.1-X3_EsGB.4aHojKVKihPI6WFlCtq43Qvk.iFgVlsU18nGDyeau8Mi0Y.LCQ8J8.g512gWoCQCEakoWWjNpR4G.sMDqDrKit3KUFaL71iPZXo;
|
||||
_cfuvid=vNgB2gnZiY_kSsrGNv.zug22PCkhqeyHmMQUQ5_FfM8-1746585343998-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xTTU/bQBC951eM9tJLghITIORWVKFSDq0qoR5aZE12x/aW9Yy7O06IEP+9shPi
|
||||
0FKpF0ueN+/tm6+nEYDxzizB2ArV1k2YXN19Xt/cVtnjh+2XbLH99W399a759HFzy8Xs0Yw7hqx+
|
||||
ktUX1omVugmkXngH20io1KnOLubnZ4uz0/m8B2pxFDpa2ehkLpPas59k02w+mV5MZos9uxJvKZkl
|
||||
fB8BADz1384nO3o0S5iOXyI1pYQlmeUhCcBECV3EYEo+KbKa8QBaYSXurd8AywYsMpR+TYBQdrYB
|
||||
OW0oAvzga88Y4H3/v4SriOyE3yUocC3RK4GVIBF8AhaFpl0Fb8MWnNi2JlZy4Bms1LVw2AKu0Qdc
|
||||
BYIHlk0gVxIkaaOldALXEgGtbSMqgedCYo1dP8fgFTbSBgcrghUlBRXA9PBiB5yPZDVsQSJY4dQG
|
||||
hYZiks77Xh82FUUCrXw6Focat51sqjCSOzluU6SiTdiNitsQjgBkFu3Z/YDu98jzYSRByibKKv1B
|
||||
NYVnn6o8Eibhrv1JpTE9+jwCuO9H376apmmi1I3mKg/UPzc7X+z0zLBxAzq/3IMqimGIZ7OL8Rt6
|
||||
uSNFH9LR8hiLtiI3UIdNw9Z5OQJGR1X/7eYt7V3lnsv/kR8Aa6lRcnkTyXn7uuIhLVJ3kP9KO3S5
|
||||
N2wSxbW3lKun2E3CUYFt2J2JSdukVOeF55JiE/3uVoomn55eZossm15Ozeh59BsAAP//AwAaTaZd
|
||||
OQQAAA==
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd53604e3f3ad4-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:35:45 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '489'
|
||||
- '933'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '936'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -317,13 +436,13 @@ interactions:
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999801'
|
||||
- '149999802'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_151f9d0b786f2022f249ee20ea108b43
|
||||
- req_0001c38df543cc383617c370087f0ee3
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
|
||||
@@ -6,7 +6,7 @@ interactions:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
@@ -150,8 +150,10 @@ interactions:
|
||||
Mj9mH/7zuxXwX//68+d//G4YtN0jf30vBkz5Mv3H/7kq8B/if4xt+nr9vYZAxrTI//n3/76B8M9n
|
||||
6NrP9D+nrsnf4z///rMV/t41+GfqpvT1/z7/1/dV//Wv/wUAAP//AwBcfFVx4CAAAA==
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 931fceef786ded38-SJC
|
||||
- 93bd57189acf15be-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -159,14 +161,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 17 Apr 2025 23:47:35 GMT
|
||||
- Wed, 07 May 2025 02:38:16 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=fj4RMXSXRDQjE2CFC6CGC3dVcJ8cl2Cbu8alijwMHA8-1744933655-1.0.1.1-M3c3AI4XQa.0GJoanNACuOm2aEL4xjqHR1grxIP3olFvq3e0eFHwQTvCF20YwR_OLiMJUH87eNUwgziawMccsxjR9OVZyDr5._5Wts6CrqA;
|
||||
path=/; expires=Fri, 18-Apr-25 00:17:35 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=VGdrMAj2834vuX5RC6lPbHVNwWHXnBmqLb0kAhiGO4g-1746585496-1.0.1.1-kvgkEGO9fI9sasCfJjizGBG4k82_KhCRbH8CEyFrjJatzMoxhM0Z3suJO_hFFH13Wyi2wThiM9QSPvH3dddjfC7hC_tscxijZwiGqtCVnnE;
|
||||
path=/; expires=Wed, 07-May-25 03:08:16 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=MSkpJsQZtdyIGvrl2mIwy0a_We8H6CIrS7etFgRBl2Y-1744933655703-0.0.1.1-604800000;
|
||||
- _cfuvid=sAoMYVxAaEFBkQttcKO7GlBZ5NlUNUIaJomZ05pGlCs-1746585496569-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -178,22 +180,20 @@ interactions:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '140'
|
||||
- '69'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-84959bbcd5-rzqvq
|
||||
- envoy-router-7d545f8f56-jx5wk
|
||||
x-envoy-upstream-service-time:
|
||||
- '110'
|
||||
- '52'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -207,32 +207,33 @@ interactions:
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_dd3ef61c4765b46ed7db80ddfe261f41
|
||||
- req_73f3f0d371e3c19b16c7a6d7cc45d3ee
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
You have access to specific knowledge sources.\nYour personal goal is: Provide
|
||||
information based on knowledge sources\nTo give my best complete final answer
|
||||
to the task respond using the exact following format:\n\nThought: I now can
|
||||
give a great answer\nFinal Answer: Your final answer must be the great and the
|
||||
most complete as possible, it must be outcome described.\n\nI MUST use these
|
||||
formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task:
|
||||
What is Brandon''s favorite color?\n\nThis is the expected criteria for your
|
||||
final answer: Brandon''s favorite color.\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
body: '{"messages": [{"role": "system", "content": "Your goal is to rewrite the
|
||||
user query so that it is optimized for retrieval from a vector database. Consider
|
||||
how the query will be used to find relevant documents, and aim to make it more
|
||||
specific and context-aware. \n\n Do not include any other text than the rewritten
|
||||
query, especially any preamble or postamble and only add expected output format
|
||||
if its relevant to the rewritten query. \n\n Focus on the key words of the intended
|
||||
task and to retrieve the most relevant information. \n\n There will be some
|
||||
extra context provided that might need to be removed such as expected_output
|
||||
formats structured_outputs and other instructions."}, {"role": "user", "content":
|
||||
"The original query is: What is Brandon''s favorite color?\n\nThis is the expected
|
||||
criteria for your final answer: Brandon''s favorite color.\nyou MUST return
|
||||
the actual complete content as the final answer, not a summary.."}], "model":
|
||||
"gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '926'
|
||||
- '992'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
@@ -264,20 +265,19 @@ interactions:
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jFLBbtswDL37KwhdeokLx0mbOLd2WIAC63YZdthWGIpMO9xkUZDkpEWR
|
||||
fx/kpLG7dUAvBszHR733yOcEQFAlViDUVgbVWp3efv66LvKPRd7Q/f57vtaf7m6ePjze774sv23E
|
||||
JDJ48wtVeGFdKm6txkBsjrByKAPGqdPFfF7MZtdXVz3QcoU60hob0jmnLRlK8yyfp9kinS5P7C2T
|
||||
Qi9W8CMBAHjuv1GnqfBRrCCbvFRa9F42KFbnJgDhWMeKkN6TD9IEMRlAxSag6aXfgeE9KGmgoR2C
|
||||
hCbKBmn8Hh3AT7MmIzXc9P8ruHXSVGwuPNRyx44CgmLNDsjDRnd4OX7GYd15Ga2aTusRII3hIGNU
|
||||
vcGHE3I4W9LcWMcb/xdV1GTIb0uH0rOJ8n1gK3r0kAA89NF1r9IQ1nFrQxn4N/bPTa+Xx3li2NgI
|
||||
LU5g4CD1qL5cTN6YV1YYJGk/Cl8oqbZYDdRhU7KriEdAMnL9r5q3Zh+dk2neM34AlEIbsCqtw4rU
|
||||
a8dDm8N40P9rO6fcCxYe3Y4UloHQxU1UWMtOH89M+CcfsC1rMg066+h4a7Uts1mRL/M8KzKRHJI/
|
||||
AAAA//8DALRhJdF5AwAA
|
||||
H4sIAAAAAAAAA4xSy27bMBC86yuIvfRiFbKs+HVLUKBFL0YPRosWgcCQK5kNxSXItZEi8L8XlBxL
|
||||
aVOgFx44O8OZ4T5nQoDRsBWgDpJV521+t989PX78tF/fnr5X+w/fdgv6WnxuWruzX25hlhj08BMV
|
||||
v7DeK+q8RTbkBlgFlIxJdb6qljfrm2qz7IGONNpEaz3nFeWdcSYvi7LKi1U+X1/YBzIKI2zFj0wI
|
||||
IZ77M/l0Gp9gK4rZy02HMcoWYXsdEgIC2XQDMkYTWTqG2Qgqcoyut34XpNPk3kXRyBMFwygUWQrT
|
||||
8YDNMcpk2R2tnQDSOWKZIvdG7y/I+WrNUusDPcQ/qNAYZ+KhDigjuWQjMnno0XMmxH1fwfFVKvCB
|
||||
Os810yP2z81Xi0EPxuZHdHnBmFjaKWkze0Ou1sjS2DjpEJRUB9QjdSxcHrWhCZBNQv9t5i3tIbhx
|
||||
7f/Ij4BS6Bl17QNqo14HHscCpr3819i15N4wRAwno7BmgyF9hMZGHu2wLRB/RcauboxrMfhghpVp
|
||||
fF0sNuW6LItNAdk5+w0AAP//AwDAmd1xQAMAAA==
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 931fcef51a67f947-SJC
|
||||
- 93bd571a5a7267e2-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
@@ -285,14 +285,14 @@ interactions:
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Thu, 17 Apr 2025 23:47:36 GMT
|
||||
- Wed, 07 May 2025 02:38:17 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=7agwu5JV1OJvEFNhvfvqdgWf.HoMyIni9D85soRl3WE-1744933656-1.0.1.1-dKUwAZnjjuuiswFKWGsxpwHNBJUpjhYlZvfZpyNQIejxEJrXMCppgPvtQ9wa4SKezLmKqftvn_H.bAx_AEFJD2EWm5V6R_uK8.odneErR6A;
|
||||
path=/; expires=Fri, 18-Apr-25 00:17:36 GMT; domain=.api.openai.com; HttpOnly;
|
||||
- __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k;
|
||||
path=/; expires=Wed, 07-May-25 03:08:17 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=LdTrzwZYrB6ZyQLY7NdaaHVpDVFvIjYm3arSpNy87wU-1744933656504-0.0.1.1-604800000;
|
||||
- _cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
@@ -305,11 +305,130 @@ interactions:
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '540'
|
||||
- '183'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '187'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999783'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_50fa35cb9ba592c55aacf7ddded877ac
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
You have access to specific knowledge sources.\nYour personal goal is: Provide
|
||||
information based on knowledge sources\nTo give my best complete final answer
|
||||
to the task respond using the exact following format:\n\nThought: I now can
|
||||
give a great answer\nFinal Answer: Your final answer must be the great and the
|
||||
most complete as possible, it must be outcome described.\n\nI MUST use these
|
||||
formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent Task:
|
||||
What is Brandon''s favorite color?\n\nThis is the expected criteria for your
|
||||
final answer: Brandon''s favorite color.\nyou MUST return the actual complete
|
||||
content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '926'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- __cf_bm=62_LRbzx15KBnTorpnulb_ZMoUJCYXHWEnTXVApNOr4-1746585497-1.0.1.1-KqnrR_1Udr1SzCiZW4umsNj1gQgcKOjAPf24HsqotTebuxO48nvo8g_X5O7Mng9tGurC0otvvkjYjsSWuRaddXculJnfdeGq5W3hJhxI21k;
|
||||
_cfuvid=LPWfk79PGAoGrMHseblqRazN9H8qdBY0BP50Y1Bp5wI-1746585497006-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAAwAAAP//jFNNb9swDL3nVxC67JIMSZo0aW4ttmI77bIO3UdhMBLtcJVJQZKTBkX/
|
||||
+2CnrdOuA3YxYD4+8lGPvB8AGHZmBcZuMNs6+NHF1Zc7Xycnp/Rhdv3x2/fL82r+9Tr/uDrxn8yw
|
||||
Zej6N9n8xHpvtQ6eMqscYBsJM7VVJ4vZ6Xw5n50tOqBWR76lVSGPZjqqWXg0HU9no/FiNFk+sjfK
|
||||
lpJZwc8BAMB99211iqM7s4Lx8ClSU0pYkVk9JwGYqL6NGEyJU0bJZtiDViWTdNI/g+gOLApUvCVA
|
||||
qFrZgJJ2FAF+ySULejjv/ldwEVGcyrsEJW41ciaw6jUCJxDNEJq1Z+v3cCu6E9AIuEX2uPYELGC1
|
||||
rlU60JOrCJI20VIaAiYIFJO2zUKkkiKJpQSeb+lVrwQYCfI+sEXv9xAibzEToLhukC3GPezYkd8D
|
||||
1ioVsDjesmvQJ9hx3mhzpDRtMJIDllJjja1/74/fKlLZJGz9ksb7IwBFNHf5nUs3j8jDsy9eqxB1
|
||||
nV5RTcnCaVNEwqTSepCyBtOhDwOAm87/5oWlJkStQy6y3lLXbnK6PNQz/dr16GzxCGbN6Pv4dDIf
|
||||
vlGvcJSRfTraIGPRbsj11H7dsHGsR8DgaOq/1bxV+zA5S/U/5XvAWgqZXBEiObYvJ+7TIrVX+a+0
|
||||
51fuBJtEccuWiswUWyccldj4w62YtE+Z6qJkqSiGyIeDKUMxPjmbLqfT8dnYDB4GfwAAAP//AwA/
|
||||
0jeHPgQAAA==
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93bd571c9cf367e2-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 02:38:18 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '785'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '931'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
@@ -323,7 +442,7 @@ interactions:
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_8837be6510731522fd5ac4b75c11d486
|
||||
- req_9bf7c8e011b2b1a8e8546b68c82384a7
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
|
||||
@@ -0,0 +1,333 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: '{"input": ["Capital of France"], "model": "text-embedding-3-small", "encoding_format":
|
||||
"base64"}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '96'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-read-timeout:
|
||||
- '600'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/embeddings
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 93c2407849cb943e-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 16:56:39 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=iRcThWdZ.NO0HPhZg.pUV1AiG0u.0Dkd58N9HGucKdQ-1746636999-1.0.1.1-Cswtia9bUNC0npExHV2GcZLT2MVo6tEQbFU_dsKpjNN5R3s37B6JGWTE1IIZV9V0UGLhiy04og474anpJW4c6yLw0.9q5F4MPcxtAOjwBvo;
|
||||
path=/; expires=Wed, 07-May-25 17:26:39 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=rvDDZbBWaissP0luvtyuyyAWcPx3AiaoZS9LkAuK4sM-1746636999152-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:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
openai-model:
|
||||
- text-embedding-3-small
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '116'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
via:
|
||||
- envoy-router-6b78fbf94c-z6prb
|
||||
x-envoy-upstream-service-time:
|
||||
- '123'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '10000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '9999996'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_3f67e7a1b90d845c25e9cef31147aba0
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Information Agent.
|
||||
I have access to knowledge sources\nYour personal goal is: Provide information
|
||||
based on knowledge sources\nTo give my best complete final answer to the task
|
||||
respond using the exact following format:\n\nThought: I now can give a great
|
||||
answer\nFinal Answer: Your final answer must be the great and the most complete
|
||||
as possible, it must be outcome described.\n\nI MUST use these formats, my job
|
||||
depends on it!"}, {"role": "user", "content": "\nCurrent Task: What is the capital
|
||||
of France?\n\nThis is the expected criteria for your final answer: The capital
|
||||
of France is Paris.\nyou MUST return the actual complete content as the final
|
||||
answer, not a summary.\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:"}],
|
||||
"model": "gpt-4", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '911'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xSwW7bMAy9+ysIXXpJgmbN0iW3DEPQAtswDBt2WAuDlWhbjSxpEt00KPLvg+Uk
|
||||
drYeetGBj3x6fHwvGYDQSixByApZ1t6MP/6UX75vV82n7Yf17uvKX4dVuXn/Sxc3n2+uxKidcA+P
|
||||
JPk4NZGu9oZYO9vBMhAytazT69l8fjVfLBYJqJ0i046Vnsez8eV8eiCUldOSoljC7wwA4CW9rTar
|
||||
6Fks4XJ0rNQUI5YklqcmABGcaSsCY9SR0bIY9aB0lskmubcg0VrH4IN70ooA7Q4cVxRA28KFGtst
|
||||
ACNwRcAYNyANYTA7iIxMXZ2ePUkmBYW2aABt3FIAtAqUo2gvGAL9aXQgQKV0y4hmyD+BW4iVa4w6
|
||||
6ehoUfKR7cCgJnf2zq7TP6uELOFHRSDRa0YDroB1QCsJdIRvGHScDFcPVDQRW8ttY8wASC4kMcn0
|
||||
+wOyP9lsXOmDe4j/jIpCWx2rPBBGZ1tLIzsvErrPAO7TOZuzCwkfXO05Z7eh9N10vuj4RJ+cHp1N
|
||||
DyA7RtPX300PITjnyxUxahMHgRASZUWqH+3Tg43SbgBkg63/V/Mad7e5tuVb6HtASvJMKveBlJbn
|
||||
G/dtgR5Tsl5vO7mcBItI4UlLyllTaC+hqMDGdNEXcReZ6rzQtqTgg075by+Z7bO/AAAA//8DAI9H
|
||||
rN32AwAA
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93c2407d5cfaface-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 07 May 2025 16:56:41 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=g.ZMxB8fB7ZSkwD6w5ws93pGGw6nEi3uFVh.JDp2OOU-1746637001-1.0.1.1-59mPPW0bDWyD6ngFx6m9LdHurrdN9Kaem.eFcKAwWp_H_4kabp2CzCRiEaW2QhRYYPWE6fZPgqWU8amQtZqpRZHtEjTyoL8t6UtyzyTCoAQ;
|
||||
path=/; expires=Wed, 07-May-25 17:26:41 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=WOtfHIloFTPkupN1gC2z.3cExzObgfz.p4fXYpCK0aI-1746637001631-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '2084'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '2086'
|
||||
x-ratelimit-limit-requests:
|
||||
- '10000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '1000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '9999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '999805'
|
||||
x-ratelimit-reset-requests:
|
||||
- 6ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 11ms
|
||||
x-request-id:
|
||||
- req_1ff0f0c079f8e7f5feb17fe762b5e40a
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -16,7 +16,7 @@ interactions:
|
||||
answer MUST contain all the information requested in the following format: {\n \"summary\":
|
||||
str,\n \"confidence\": int\n}\n\nIMPORTANT: Ensure the final output does not
|
||||
include any code block markers like ```json or ```python."}, {"role": "user",
|
||||
"content": "What is the population of Tokyo? Return your strucutred output in
|
||||
"content": "What is the population of Tokyo? Return your structured output in
|
||||
JSON format with the following fields: summary, confidence"}], "model": "gpt-4o-mini",
|
||||
"stop": []}'
|
||||
headers:
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Researcher. You''re
|
||||
an expert researcher, specialized in technology, software engineering, AI and
|
||||
startups. You work as a freelancer and is now working on doing research and
|
||||
analysis for a new customer.\nYour personal goal is: be an assistant that responds
|
||||
with say hello world\nTo give my best complete final answer to the task respond
|
||||
using the exact following format:\n\nThought: I now can give a great answer\nFinal
|
||||
Answer: Your final answer must be the great and the most complete as possible,
|
||||
it must be outcome described.\n\nI MUST use these formats, my job depends on
|
||||
it!"}, {"role": "user", "content": "\nCurrent Task: be an assistant that responds
|
||||
with say hello world\n\nThis is the expected criteria for your final answer:
|
||||
The response should be addressing: say hello world\nyou MUST return the actual
|
||||
complete content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop": ["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate, zstd
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '1108'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.68.2
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.68.2
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.12.9
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAAA4xSTW/UMBC951cMPicoScMu3RuIooUDcOOrVeS1J4mp4zG2sy2q9r9XTrqbtBSJ
|
||||
iyX7zXt+b2buEgCmJNsAEx0Porc6e/vt4nf3xVxweVZ+3v/Q17fF9+pjs92+O//0iqWRQbtfKMKR
|
||||
9VJQbzUGRWaChUMeMKoW62pdropVfjYCPUnUkdbakFWU9cqorMzLKsvXWfH6gd2REujZBn4mAAB3
|
||||
4xl9Gom3bAN5enzp0XveItucigCYIx1fGPde+cBNYOkMCjIBzWj9Axi6AcENtGqPwKGNtoEbf4MO
|
||||
4NK8V4ZreDPeN7BFrSmFr+S0fLGUdNgMnsdYZtB6AXBjKPDYljHM1QNyONnX1FpHO/+EyhpllO9q
|
||||
h9yTiVZ9IMtG9JAAXI1tGh4lZ9ZRb0Md6BrH78p8NemxeTozWhzBQIHrBass02f0aomBK+0XjWaC
|
||||
iw7lTJ2nwgepaAEki9R/u3lOe0quTPs/8jMgBNqAsrYOpRKPE89lDuPy/qvs1OXRMPPo9kpgHRS6
|
||||
OAmJDR/0tFLM//EB+7pRpkVnnZr2qrH1utjl5bo6bzhLDsk9AAAA//8DAAxaM/dlAwAA
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93fdd19cdbfb6428-SJC
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Wed, 14 May 2025 22:26:43 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=eCtOgOCsKt_ybdNPdtFAocCmuQbNltR52chaHVe7Y_Q-1747261603-1.0.1.1-827eoA7wHS5SOkTsTqoMq6OSioi0VznQBVjvmabNSVX1bf5PpWZvblw58iggZ_wyKDB0EuVoeLKFspgBJa0kuQYR17hu43Y2C14sgdvOXIE;
|
||||
path=/; expires=Wed, 14-May-25 22:56:43 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=QUa5MnypdaVxO826bwdQaN4G6CBEV8HYVV.7OLF.qvQ-1747261603742-0.0.1.1-604800000;
|
||||
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '307'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-envoy-upstream-service-time:
|
||||
- '309'
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999757'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_61d9066e0258b7095517f9f9c01d38e9
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,221 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers: {}
|
||||
method: GET
|
||||
uri: https://pypi.org/pypi/agentops/json
|
||||
response:
|
||||
body:
|
||||
string: '{"info":{"author":null,"author_email":"Alex Reibman <areibman@gmail.com>,
|
||||
Shawn Qiu <siyangqiu@gmail.com>, Braelyn Boynton <bboynton97@gmail.com>, Howard
|
||||
Gil <howardbgil@gmail.com>, Constantin Teodorescu <teocns@gmail.com>, Pratyush
|
||||
Shukla <ps4534@nyu.edu>, Travis Dent <tcdent@gmail.com>, Dwij Patel <dwijpatel1704@gmail.com>","bugtrack_url":null,"classifiers":["License
|
||||
:: OSI Approved :: MIT License","Operating System :: OS Independent","Programming
|
||||
Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming
|
||||
Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming
|
||||
Language :: Python :: 3.13","Programming Language :: Python :: 3.9"],"description":"","description_content_type":null,"docs_url":null,"download_url":null,"downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"dynamic":null,"home_page":null,"keywords":null,"license":null,"license_expression":null,"license_files":["LICENSE"],"maintainer":null,"maintainer_email":null,"name":"agentops","package_url":"https://pypi.org/project/agentops/","platform":null,"project_url":"https://pypi.org/project/agentops/","project_urls":{"Homepage":"https://github.com/AgentOps-AI/agentops","Issues":"https://github.com/AgentOps-AI/agentops/issues"},"provides_extra":null,"release_url":"https://pypi.org/project/agentops/0.4.9/","requires_dist":["opentelemetry-api==1.29.0;
|
||||
python_version < \"3.10\"","opentelemetry-api>1.29.0; python_version >= \"3.10\"","opentelemetry-exporter-otlp-proto-http==1.29.0;
|
||||
python_version < \"3.10\"","opentelemetry-exporter-otlp-proto-http>1.29.0;
|
||||
python_version >= \"3.10\"","opentelemetry-instrumentation==0.50b0; python_version
|
||||
< \"3.10\"","opentelemetry-instrumentation>0.50b0; python_version >= \"3.10\"","opentelemetry-sdk==1.29.0;
|
||||
python_version < \"3.10\"","opentelemetry-sdk>1.29.0; python_version >= \"3.10\"","opentelemetry-semantic-conventions==0.50b0;
|
||||
python_version < \"3.10\"","opentelemetry-semantic-conventions>0.50b0; python_version
|
||||
>= \"3.10\"","ordered-set<5.0.0,>=4.0.0","packaging<25.0,>=21.0","psutil<6.1.0,>=5.9.8","pyyaml<7.0,>=5.3","requests<3.0.0,>=2.0.0","termcolor<2.5.0,>=2.3.0","wrapt<2.0.0,>=1.0.0"],"requires_python":"<3.14,>=3.9","summary":"Observability
|
||||
and DevTool Platform for AI Agents","version":"0.4.9","yanked":false,"yanked_reason":null},"last_serial":28851779,"releases":{"0.0.1":[{"comment_text":"","digests":{"blake2b_256":"9b4641d084346e88671acc02e3a0049d3e0925fe99edd88c8b82700dc3c04d01","md5":"2b491f3b3dd01edd4ee37c361087bb46","sha256":"f2cb9d59a0413e7977a44a23dbd6a9d89cda5309b63ed08f5c346c7488acf645"},"downloads":-1,"filename":"agentops-0.0.1-py3-none-any.whl","has_sig":false,"md5_digest":"2b491f3b3dd01edd4ee37c361087bb46","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":10328,"upload_time":"2023-08-21T18:33:47","upload_time_iso_8601":"2023-08-21T18:33:47.827866Z","url":"https://files.pythonhosted.org/packages/9b/46/41d084346e88671acc02e3a0049d3e0925fe99edd88c8b82700dc3c04d01/agentops-0.0.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"b280bf609d98778499bd42df723100a8e910d9b9827cbd00b804cf0b13bb3c87","md5":"ff218fc16d45cf72f73d50ee9a0afe82","sha256":"5c3d4311b9dde0c71cb475ec99d2963a71604c78d468b333f55e81364f4fe79e"},"downloads":-1,"filename":"agentops-0.0.1.tar.gz","has_sig":false,"md5_digest":"ff218fc16d45cf72f73d50ee9a0afe82","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":11452,"upload_time":"2023-08-21T18:33:49","upload_time_iso_8601":"2023-08-21T18:33:49.613830Z","url":"https://files.pythonhosted.org/packages/b2/80/bf609d98778499bd42df723100a8e910d9b9827cbd00b804cf0b13bb3c87/agentops-0.0.1.tar.gz","yanked":false,"yanked_reason":null}],"0.0.10":[{"comment_text":"","digests":{"blake2b_256":"92933862af53105332cb524db237138d3284b5d6abcc7df5fd4406e382372d94","md5":"8bdea319b5579775eb88efac72e70cd6","sha256":"e8a333567458c1df35538d626bc596f3ba7b8fa2aac5015bc378f3f7f8850669"},"downloads":-1,"filename":"agentops-0.0.10-py3-none-any.whl","has_sig":false,"md5_digest":"8bdea319b5579775eb88efac72e70cd6","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":14752,"upload_time":"2023-12-16T01:40:40","upload_time_iso_8601":"2023-12-16T01:40:40.867657Z","url":"https://files.pythonhosted.org/packages/92/93/3862af53105332cb524db237138d3284b5d6abcc7df5fd4406e382372d94/agentops-0.0.10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"c63136b1f2e508b67f92ddb5f51f2acf5abdf2bf4b32d5b355d8018b368dc854","md5":"87bdcd4d7469d22ce922234d4f0b2b98","sha256":"5fbc567bece7b218fc35ce70d208e88e89bb399a9dbf84ab7ad59a2aa559648c"},"downloads":-1,"filename":"agentops-0.0.10.tar.gz","has_sig":false,"md5_digest":"87bdcd4d7469d22ce922234d4f0b2b98","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":15099,"upload_time":"2023-12-16T01:40:42","upload_time_iso_8601":"2023-12-16T01:40:42.281826Z","url":"https://files.pythonhosted.org/packages/c6/31/36b1f2e508b67f92ddb5f51f2acf5abdf2bf4b32d5b355d8018b368dc854/agentops-0.0.10.tar.gz","yanked":false,"yanked_reason":null}],"0.0.11":[{"comment_text":"","digests":{"blake2b_256":"7125ed114f918332cda824092f620b1002fd76ab6b538dd83711b31c93907139","md5":"83ba7e621f01412144aa38306fc1e04c","sha256":"cb80823e065d17dc26bdc8fe951ea7e04b23677ef2b4da939669c6fe1b2502bf"},"downloads":-1,"filename":"agentops-0.0.11-py3-none-any.whl","has_sig":false,"md5_digest":"83ba7e621f01412144aa38306fc1e04c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":16627,"upload_time":"2023-12-21T19:50:28","upload_time_iso_8601":"2023-12-21T19:50:28.595886Z","url":"https://files.pythonhosted.org/packages/71/25/ed114f918332cda824092f620b1002fd76ab6b538dd83711b31c93907139/agentops-0.0.11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9e037750b04398cda2548bbf3d84ce554c4009592095c060c4904e773f3a43da","md5":"5bbb120cc9a5f5ff6fb5dd45691ba279","sha256":"cbf0f39768d47e32be448a3ff3ded665fce64ff8a90c0e10692fd7a3ab4790ee"},"downloads":-1,"filename":"agentops-0.0.11.tar.gz","has_sig":false,"md5_digest":"5bbb120cc9a5f5ff6fb5dd45691ba279","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":16794,"upload_time":"2023-12-21T19:50:29","upload_time_iso_8601":"2023-12-21T19:50:29.881561Z","url":"https://files.pythonhosted.org/packages/9e/03/7750b04398cda2548bbf3d84ce554c4009592095c060c4904e773f3a43da/agentops-0.0.11.tar.gz","yanked":false,"yanked_reason":null}],"0.0.12":[{"comment_text":"","digests":{"blake2b_256":"adf5cc3e93b2328532ea80b8b36450b8b48a8199ebbe1f75ebb490e57a926b88","md5":"694ba49ca8841532039bdf8dc0250b85","sha256":"9a2c773efbe3353f60d1b86da12333951dad288ba54839615a53b57e5965bea8"},"downloads":-1,"filename":"agentops-0.0.12-py3-none-any.whl","has_sig":false,"md5_digest":"694ba49ca8841532039bdf8dc0250b85","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":18602,"upload_time":"2024-01-03T03:47:07","upload_time_iso_8601":"2024-01-03T03:47:07.184203Z","url":"https://files.pythonhosted.org/packages/ad/f5/ccLine truncated
|
||||
breaking bug"},{"comment_text":"","digests":{"blake2b_256":"b2447ce75e71fcc9605a609b41adc52d517eba4356d15f7ca77d46f683ca07f1","md5":"9a9bb22af4b30c454d46b9a01e8701a0","sha256":"70d22e9a71ea13af6e6ad9c1cffe63c98f9dbccf91bda199825609379b2babaf"},"downloads":-1,"filename":"agentops-0.1.7.tar.gz","has_sig":false,"md5_digest":"9a9bb22af4b30c454d46b9a01e8701a0","packagetype":"sdist","python_version":"source","requires_python":">=3.10","size":28122,"upload_time":"2024-05-03T19:21:39","upload_time_iso_8601":"2024-05-03T19:21:39.415523Z","url":"https://files.pythonhosted.org/packages/b2/44/7ce75e71fcc9605a609b41adc52d517eba4356d15f7ca77d46f683ca07f1/agentops-0.1.7.tar.gz","yanked":true,"yanked_reason":"Introduced
|
||||
breaking bug"}],"0.1.8":[{"comment_text":"","digests":{"blake2b_256":"38c63d0d19eeae4c3c9e3ff5957b10c3c16a4a9fd2be6673fbfc965f8bb4fd08","md5":"e12d3d92f51f5b2fed11a01742e5b5b5","sha256":"d49d113028a891d50900bb4fae253218cc49519f7fe39f9ea15f8f2b29d6d7ef"},"downloads":-1,"filename":"agentops-0.1.8-py3-none-any.whl","has_sig":false,"md5_digest":"e12d3d92f51f5b2fed11a01742e5b5b5","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.10","size":27977,"upload_time":"2024-05-04T03:01:53","upload_time_iso_8601":"2024-05-04T03:01:53.905081Z","url":"https://files.pythonhosted.org/packages/38/c6/3d0d19eeae4c3c9e3ff5957b10c3c16a4a9fd2be6673fbfc965f8bb4fd08/agentops-0.1.8-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9269e51fa1714f169f692e4fad0a42ebeb77c7a27c48f62b751c869ad6441c69","md5":"07dbdb45f9ec086b1bc314d6a8264423","sha256":"5762137a84e2309e1b6ca9a0fd72c8b72c90f6f73ba49549980722221960cac8"},"downloads":-1,"filename":"agentops-0.1.8.tar.gz","has_sig":false,"md5_digest":"07dbdb45f9ec086b1bc314d6a8264423","packagetype":"sdist","python_version":"source","requires_python":">=3.10","size":28189,"upload_time":"2024-05-04T03:01:55","upload_time_iso_8601":"2024-05-04T03:01:55.328668Z","url":"https://files.pythonhosted.org/packages/92/69/e51fa1714f169f692e4fad0a42ebeb77c7a27c48f62b751c869ad6441c69/agentops-0.1.8.tar.gz","yanked":false,"yanked_reason":null}],"0.1.9":[{"comment_text":"","digests":{"blake2b_256":"eb5a920e71729bd1f06b002ee146b38b0d1862357a1f484628e6b20a7d3dcca1","md5":"6ae4929d91c4bb8025edc86b5322630c","sha256":"af7983ba4929b04a34714dd97d7e82c11384ebbe9d7d8bc7b673e1263c4c79a1"},"downloads":-1,"filename":"agentops-0.1.9-py3-none-any.whl","has_sig":false,"md5_digest":"6ae4929d91c4bb8025edc86b5322630c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":28458,"upload_time":"2024-05-07T07:07:30","upload_time_iso_8601":"2024-05-07T07:07:30.798380Z","url":"https://files.pythonhosted.org/packages/eb/5a/920e71729bd1f06b002ee146b38b0d1862357a1f484628e6b20a7d3dcca1/agentops-0.1.9-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"df2b8fc76d629d8a83b0796612a27b966426550114c930eee5d730654fcd9fe9","md5":"43090632f87cd398ed77b57daa8c28d6","sha256":"7f428bfda2db57a994029b1c9f72b63ca7660616635c9c671b2b729d112a833e"},"downloads":-1,"filename":"agentops-0.1.9.tar.gz","has_sig":false,"md5_digest":"43090632f87cd398ed77b57daa8c28d6","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":28596,"upload_time":"2024-05-07T07:07:35","upload_time_iso_8601":"2024-05-07T07:07:35.242350Z","url":"https://files.pythonhosted.org/packages/df/2b/8fc76d629d8a83b0796612a27b966426550114c930eee5d730654fcd9fe9/agentops-0.1.9.tar.gz","yanked":false,"yanked_reason":null}],"0.2.0":[{"comment_text":"","digests":{"blake2b_256":"483560ec38a81a7e9588d32730ed4f581621169216f968771d5f611388f68a9b","md5":"bdda5480977cccd55628e117e8c8da04","sha256":"bee84bf046c9b4346c5f0f50e2087a992e8d2eae80b3fe9f01c456b49c299bcc"},"downloads":-1,"filename":"agentops-0.2.0-py3-none-any.whl","has_sig":false,"md5_digest":"bdda5480977cccd55628e117e8c8da04","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":35921,"upload_time":"2024-05-28T22:04:14","upload_time_iso_8601":"2024-05-28T22:04:14.813154Z","url":"https://files.pythonhosted.org/packages/48/35/60ec38a81a7e9588d32730ed4f581621169216f968771d5f611388f68a9b/agentops-0.2.0-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"8d7591c79141d31da4e56d6c6a00737b50dcc2f1ce8a711c1293d2a1d70478fc","md5":"71e3c3b9fe0286c9b58d81ba1c12a42d","sha256":"ca340136abff6a3727729c3eda87f0768e5ba2b672ce03320cb52ad138b05598"},"downloads":-1,"filename":"agentops-0.2.0.tar.gz","has_sig":false,"md5_digest":"71e3c3b9fe0286c9b58d81ba1c12a42d","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":35498,"upload_time":"2024-05-28T22:04:16","upload_time_iso_8601":"2024-05-28T22:04:16.598374Z","url":"https://files.pythonhosted.org/packages/8d/75/91c79141d31da4e56d6c6a00737b50dcc2f1ce8a711c1293d2a1d70478fc/agentops-0.2.0.tar.gz","yanked":false,"yanked_reason":null}],"0.2.1":[{"comment_text":"","digests":{"blake2b_256":"fa3b84032b7dca3d7315b329db6681bbfe0872c2a46d62ca992a05f2d6a078e1","md5":"ce3fc46711fa8225a3d6a9566f95f875","sha256":"7dde95db92c8306c0a17e193bfb5ee20e71e16630ccc629db685e148b3aca3f6"},"downloads":-1,"filename":"agentops-0.2.1-py3-none-any.whl","has_sig":false,"md5_digest":"ce3fc46711fa8225a3d6a9566f95f875","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":36375,"upload_time":"2024-06-03T18:40:02","upload_time_iso_8601":"2024-06-03T18:40:02.820700Z","url":"https://files.pythonhosted.org/packages/fa/3b/84032b7dca3d7315b329db6681bbfe0872c2a46d62ca992a05f2d6a078e1/agentops-0.2.1-py3-none-any.whl","yanked":false,"yanked_reasoLine truncated
|
||||
breaking change"},{"comment_text":"","digests":{"blake2b_256":"8e4b920629e08c956cdc74a31ab466d005eb13d86c2d58fa2d2bd261cf36c37b","md5":"527c82f21f01f13b879a1fca90ddb209","sha256":"d263de21eb40e15eb17adc31821fc0dee4ff4ca4501a9feb7ed376d473063208"},"downloads":-1,"filename":"agentops-0.2.4.tar.gz","has_sig":false,"md5_digest":"527c82f21f01f13b879a1fca90ddb209","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37656,"upload_time":"2024-06-24T19:32:01","upload_time_iso_8601":"2024-06-24T19:32:01.155014Z","url":"https://files.pythonhosted.org/packages/8e/4b/920629e08c956cdc74a31ab466d005eb13d86c2d58fa2d2bd261cf36c37b/agentops-0.2.4.tar.gz","yanked":true,"yanked_reason":"Potential
|
||||
breaking change"}],"0.2.5":[{"comment_text":"","digests":{"blake2b_256":"47c73ab9d7d971b664a9bdff6e6464afb6c1de8eb0f845d8de93eb036d5dcc60","md5":"bed576cc1591da4783777920fb223761","sha256":"ff87b82d1efaf50b10624e00c6e9334f4c16ffe08ec7f9889b4417c231c31471"},"downloads":-1,"filename":"agentops-0.2.5-py3-none-any.whl","has_sig":false,"md5_digest":"bed576cc1591da4783777920fb223761","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":37529,"upload_time":"2024-06-26T22:57:15","upload_time_iso_8601":"2024-06-26T22:57:15.646328Z","url":"https://files.pythonhosted.org/packages/47/c7/3ab9d7d971b664a9bdff6e6464afb6c1de8eb0f845d8de93eb036d5dcc60/agentops-0.2.5-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"31c48f2af30ae75dbdb4697506f80f76ce786f79014deb8c6679fa62962fdd6f","md5":"42def99798edfaf201fa6f62846e77c5","sha256":"6bad7aca37af6174307769550a53ec00824049a57e97b8868a9a213b2272adb4"},"downloads":-1,"filename":"agentops-0.2.5.tar.gz","has_sig":false,"md5_digest":"42def99798edfaf201fa6f62846e77c5","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37703,"upload_time":"2024-06-26T22:57:17","upload_time_iso_8601":"2024-06-26T22:57:17.337904Z","url":"https://files.pythonhosted.org/packages/31/c4/8f2af30ae75dbdb4697506f80f76ce786f79014deb8c6679fa62962fdd6f/agentops-0.2.5.tar.gz","yanked":false,"yanked_reason":null}],"0.2.6":[{"comment_text":"","digests":{"blake2b_256":"5af2f90538b00d887c04a5570e8a3af4aef27a600a67c058a0ee6befafd60748","md5":"8ef3ed13ed582346b71648ca9df30f7c","sha256":"59e88000a9f108931fd68056f22def7a7f4b3015906de5791e777c23ba7dee52"},"downloads":-1,"filename":"agentops-0.2.6-py3-none-any.whl","has_sig":false,"md5_digest":"8ef3ed13ed582346b71648ca9df30f7c","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":37534,"upload_time":"2024-06-28T21:41:56","upload_time_iso_8601":"2024-06-28T21:41:56.933334Z","url":"https://files.pythonhosted.org/packages/5a/f2/f90538b00d887c04a5570e8a3af4aef27a600a67c058a0ee6befafd60748/agentops-0.2.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"bcf412c388dccc301ad54a501843ba5b5dd359575dcef9ac24c18a619a32214d","md5":"89a6b04f12801682b53ee0133593ce74","sha256":"7906a08c9154355484deb173b82631f9acddec3775b2d5e8ca946abdee27183b"},"downloads":-1,"filename":"agentops-0.2.6.tar.gz","has_sig":false,"md5_digest":"89a6b04f12801682b53ee0133593ce74","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":37874,"upload_time":"2024-06-28T21:41:59","upload_time_iso_8601":"2024-06-28T21:41:59.143953Z","url":"https://files.pythonhosted.org/packages/bc/f4/12c388dccc301ad54a501843ba5b5dd359575dcef9ac24c18a619a32214d/agentops-0.2.6.tar.gz","yanked":false,"yanked_reason":null}],"0.3.0":[{"comment_text":"","digests":{"blake2b_256":"b8e996f12ac457f46c370c6f70f344e975d534f2c92853703ee29802f0127024","md5":"d9c6995a843b49ac7eb6f500fa1f3c2a","sha256":"22aeb3355e66b32a2b2a9f676048b81979b2488feddb088f9266034b3ed50539"},"downloads":-1,"filename":"agentops-0.3.0-py3-none-any.whl","has_sig":false,"md5_digest":"d9c6995a843b49ac7eb6f500fa1f3c2a","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39430,"upload_time":"2024-07-17T18:38:24","upload_time_iso_8601":"2024-07-17T18:38:24.763919Z","url":"https://files.pythonhosted.org/packages/b8/e9/96f12ac457f46c370c6f70f344e975d534f2c92853703ee29802f0127024/agentops-0.3.0-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"7e2d6fda9613562c0394d7ef3dd8f0cb9fc4ebaa8d413862fce33940c73564d6","md5":"8fa67ca01ca726e3bfcd66898313f33f","sha256":"6c0c08a57410fa5e826a7bafa1deeba9f7b3524709427d9e1abbd0964caaf76b"},"downloads":-1,"filename":"agentops-0.3.0.tar.gz","has_sig":false,"md5_digest":"8fa67ca01ca726e3bfcd66898313f33f","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":41734,"upload_time":"2024-07-17T18:38:26","upload_time_iso_8601":"2024-07-17T18:38:26.447237Z","url":"https://files.pythonhosted.org/packages/7e/2d/6fda9613562c0394d7ef3dd8f0cb9fc4ebaa8d413862fce33940c73564d6/agentops-0.3.0.tar.gz","yanked":false,"yanked_reason":null}],"0.3.10":[{"comment_text":"","digests":{"blake2b_256":"eb5e3ac36b33d3e95747d64effd509f66a9b3b76b47216b16f492e27d8d90b0c","md5":"6fade0b81fc65b2c79a869b5f240590b","sha256":"b304d366691281e08c1f02307aabdd551ae4f68b0de82bbbb4cf6f651af2dd16"},"downloads":-1,"filename":"agentops-0.3.10-py3-none-any.whl","has_sig":false,"md5_digest":"6fade0b81fc65b2c79a869b5f240590b","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":41201,"upload_time":"2024-08-19T20:51:49","upload_time_iso_8601":"2024-08-19T20:51:49.487947Z","url":"https://files.pythonhosted.org/packages/eb/5e/3ac36b33d3e95747d64effd509f66a9b3b76b47216b16f492e27d8d90b0c/agentops-0.3.10-py3-none-any.whl","yanked":false,"yanked_rLine truncated
|
||||
dependency, please install 0.3.18"},{"comment_text":"","digests":{"blake2b_256":"b319bb0e9895cb6da29f764f8d7b95b10ac8fde400bc17028f9bd486e9574dbe","md5":"f6424c41464d438007e9628748a0bea6","sha256":"ca0d4ba35ae699169ae20f74f72ca6a5780a8768ba2a2c32589fc5292ed81674"},"downloads":-1,"filename":"agentops-0.3.19.tar.gz","has_sig":false,"md5_digest":"f6424c41464d438007e9628748a0bea6","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48360,"upload_time":"2024-12-04T00:54:01","upload_time_iso_8601":"2024-12-04T00:54:01.418776Z","url":"https://files.pythonhosted.org/packages/b3/19/bb0e9895cb6da29f764f8d7b95b10ac8fde400bc17028f9bd486e9574dbe/agentops-0.3.19.tar.gz","yanked":true,"yanked_reason":"Broken
|
||||
dependency, please install 0.3.18"}],"0.3.2":[{"comment_text":"","digests":{"blake2b_256":"9d2c23b745a61d48df788b8020e5ea37e94f9da59b322a17accafe18d8cb4006","md5":"62d576d9518a627fe4232709c0721eff","sha256":"b35988e04378624204572bb3d7a454094f879ea573f05b57d4e75ab0bfbb82af"},"downloads":-1,"filename":"agentops-0.3.2-py3-none-any.whl","has_sig":false,"md5_digest":"62d576d9518a627fe4232709c0721eff","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39527,"upload_time":"2024-07-21T03:09:56","upload_time_iso_8601":"2024-07-21T03:09:56.844372Z","url":"https://files.pythonhosted.org/packages/9d/2c/23b745a61d48df788b8020e5ea37e94f9da59b322a17accafe18d8cb4006/agentops-0.3.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"d2a1cc21406646c065e83435fe30fa205b99b2204d8074eca31926a5f8ef4381","md5":"30b247bcae25b181485a89213518241c","sha256":"55559ac4a43634831dfa8937c2597c28e332809dc7c6bb3bc3c8b233442e224c"},"downloads":-1,"filename":"agentops-0.3.2.tar.gz","has_sig":false,"md5_digest":"30b247bcae25b181485a89213518241c","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":41894,"upload_time":"2024-07-21T03:09:58","upload_time_iso_8601":"2024-07-21T03:09:58.409826Z","url":"https://files.pythonhosted.org/packages/d2/a1/cc21406646c065e83435fe30fa205b99b2204d8074eca31926a5f8ef4381/agentops-0.3.2.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20":[{"comment_text":"","digests":{"blake2b_256":"a854ae9147a490dd9bd03ab7bfc5af47f40ff675840a9aa143896b385a8f8d3a","md5":"a13af8737ddff8a0c7c0f05cee70085f","sha256":"b5396e11b0bfef46b85604e8e36ab17668057711edd56f1edb0a067b8676fdcc"},"downloads":-1,"filename":"agentops-0.3.20-py3-none-any.whl","has_sig":false,"md5_digest":"a13af8737ddff8a0c7c0f05cee70085f","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38674,"upload_time":"2024-12-07T00:06:31","upload_time_iso_8601":"2024-12-07T00:06:31.901162Z","url":"https://files.pythonhosted.org/packages/a8/54/ae9147a490dd9bd03ab7bfc5af47f40ff675840a9aa143896b385a8f8d3a/agentops-0.3.20-py3-none-any.whl","yanked":true,"yanked_reason":"Wrong
|
||||
release"},{"comment_text":"","digests":{"blake2b_256":"c1eb19d04c801854ba75e235eb87c51a6a9c5b1a89e8579cb745c83f8bf84e08","md5":"11754497191d8340eda7a831720d9b74","sha256":"c71406294804a82795310a4afc492064a8884b1ba47e12607230975bc1291ce3"},"downloads":-1,"filename":"agentops-0.3.20.tar.gz","has_sig":false,"md5_digest":"11754497191d8340eda7a831720d9b74","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48332,"upload_time":"2024-12-07T00:06:33","upload_time_iso_8601":"2024-12-07T00:06:33.568362Z","url":"https://files.pythonhosted.org/packages/c1/eb/19d04c801854ba75e235eb87c51a6a9c5b1a89e8579cb745c83f8bf84e08/agentops-0.3.20.tar.gz","yanked":true,"yanked_reason":"Wrong
|
||||
release"}],"0.3.20rc1":[{"comment_text":"","digests":{"blake2b_256":"073de7eba58e2a60c0136eee2760b20f99607001d372de26505feee891e0976b","md5":"73c6ac515ee9d555e27a7ba7e26e3a46","sha256":"079ea8138938e27a3e1319a235a6f4cf98c0d6846731d854aa83b8422d570bda"},"downloads":-1,"filename":"agentops-0.3.20rc1-py3-none-any.whl","has_sig":false,"md5_digest":"73c6ac515ee9d555e27a7ba7e26e3a46","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":38718,"upload_time":"2024-12-07T00:10:18","upload_time_iso_8601":"2024-12-07T00:10:18.796963Z","url":"https://files.pythonhosted.org/packages/07/3d/e7eba58e2a60c0136eee2760b20f99607001d372de26505feee891e0976b/agentops-0.3.20rc1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"02ff111d618c21aad946caedb666030f1f374a0d558228b9061ea2b46acb6bcd","md5":"17062e985b931dc85b4855922d7842ce","sha256":"ef48447e07a3eded246b2f7e10bba74422a34563ffdc667ac16b2d3383475a3f"},"downloads":-1,"filename":"agentops-0.3.20rc1.tar.gz","has_sig":false,"md5_digest":"17062e985b931dc85b4855922d7842ce","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":48329,"upload_time":"2024-12-07T00:10:20","upload_time_iso_8601":"2024-12-07T00:10:20.510407Z","url":"https://files.pythonhosted.org/packages/02/ff/111d618c21aad946caedb666030f1f374a0d558228b9061ea2b46acb6bcd/agentops-0.3.20rc1.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc10":[{"comment_text":"","digests":{"blake2b_256":"a7274706d8d9c8f4abecc1dda2b9b02cd02ffe895220bd39f58322a46ccc7254","md5":"2c66a93c691c6b8cac2f2dc8fab9efae","sha256":"3c10d77f2fe88b61d97ad007820c1ba968c62f692986ea2b2cbfd8b22ec9e5bc"},"downloads":-1,"filename":"agentops-0.3.20rc10-py3-none-any.whl","has_sig":false,"md5_digest":"2c66a93c691c6b8cac2f2dc8fab9efae","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":57423,"upload_time":"2024-12-10T03:41:04","upload_time_iso_8601":"2024-12-10T03:41:04.579814Z","url":"https://files.pythonhosted.org/packages/a7/27/4706d8d9c8f4abecc1dda2b9b02cd02ffe895220bd39f58322a46ccc7254/agentops-0.3.20rc10-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"efe9e304f465945f57e4c6d35cd35fff53dc2a2e36b9b32793fa57017467b0c2","md5":"9882d32866b94d925ba36ac376c30bea","sha256":"f0c72c20e7fe41054c22c6257420314863549dd91428a892ac9b47b81cdfcc8c"},"downloads":-1,"filename":"agentops-0.3.20rc10.tar.gz","has_sig":false,"md5_digest":"9882d32866b94d925ba36ac376c30bea","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":57564,"upload_time":"2024-12-10T03:41:06","upload_time_iso_8601":"2024-12-10T03:41:06.899043Z","url":"https://files.pythonhosted.org/packages/ef/e9/e304f465945f57e4c6d35cd35fff53dc2a2e36b9b32793fa57017467b0c2/agentops-0.3.20rc10.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc11":[{"comment_text":"","digests":{"blake2b_256":"8dbf598ec2532b713a228f4041c9b2c10358cd43e6aecf6128d0988a0b5f103e","md5":"d9ab67a850aefcb5bf9467b48f74675d","sha256":"3e5d4c19de6c58ae684693f47a2f03db35eaf4cd6d8aafc1e804a134462c2b55"},"downloads":-1,"filename":"agentops-0.3.20rc11-py3-none-any.whl","has_sig":false,"md5_digest":"d9ab67a850aefcb5bf9467b48f74675d","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":60280,"upload_time":"2024-12-10T22:45:05","upload_time_iso_8601":"2024-12-10T22:45:05.280119Z","url":"https://files.pythonhosted.org/packages/8d/bf/598ec2532b713a228f4041c9b2c10358cd43e6aecf6128d0988a0b5f103e/agentops-0.3.20rc11-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"210642e51fff6a4537fb811a15bc22d00343145285c6246dc069433d61436e1b","md5":"ca5279f4cb6ad82e06ef542a2d08d06e","sha256":"9211489c6a01bc9cda4061826f8b80d0989cfcd7fbabe1dd2ed5a5cb76b3d6f0"},"downloads":-1,"filename":"agentops-0.3.20rc11.tar.gz","has_sig":false,"md5_digest":"ca5279f4cb6ad82e06ef542a2d08d06e","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":59718,"upload_time":"2024-12-10T22:45:09","upload_time_iso_8601":"2024-12-10T22:45:09.616947Z","url":"https://files.pythonhosted.org/packages/21/06/42e51fff6a4537fb811a15bc22d00343145285c6246dc069433d61436e1b/agentops-0.3.20rc11.tar.gz","yanked":false,"yanked_reason":null}],"0.3.20rc12":[{"comment_text":"","digests":{"blake2b_256":"dc281db6f49f10ac849683de1d7f5b5ef492be2a996325302167b8388f375d51","md5":"8b2611d2510f0d4fac7ab824d7658ff7","sha256":"9237652d28db89315c49c0705829b291c17280e07d41272f909e2609acec650b"},"downloads":-1,"filename":"agentops-0.3.20rc12-py3-none-any.whl","has_sig":false,"md5_digest":"8b2611d2510f0d4fac7ab824d7658ff7","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":60282,"upload_time":"2024-12-10T23:10:54","upload_time_iso_8601":"2024-12-10T23:10:54.516317Z","url":"https://files.pythonhosted.org/packages/dc/28/1db6f49f10ac849683de1d7f5b5ef492be2a996325302167bLine truncated
|
||||
dependency"},{"comment_text":"","digests":{"blake2b_256":"e067e61aa4c2e329da10b5e95d325091e599d8a00a28843a54bdcefa7a2eef8d","md5":"bcf45b6c4c56884ed2409f835571af62","sha256":"705d772b6994f8bab0cd163b24602009353f7906c72d9db008af11683f6e9341"},"downloads":-1,"filename":"agentops-0.3.22.tar.gz","has_sig":false,"md5_digest":"bcf45b6c4c56884ed2409f835571af62","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":52845,"upload_time":"2025-01-11T03:21:41","upload_time_iso_8601":"2025-01-11T03:21:41.762282Z","url":"https://files.pythonhosted.org/packages/e0/67/e61aa4c2e329da10b5e95d325091e599d8a00a28843a54bdcefa7a2eef8d/agentops-0.3.22.tar.gz","yanked":true,"yanked_reason":"Broken
|
||||
dependency"}],"0.3.23":[{"comment_text":null,"digests":{"blake2b_256":"e67de1434765cf0a3d62372b74f47919aa17c0b01909823f7d3ee705edf821a9","md5":"1f0f02509b8ba713db72e57a072f01a6","sha256":"ecfff77d8f9006361ef2a2e8593271e97eb54b7b504abfb8abd6504006baca56"},"downloads":-1,"filename":"agentops-0.3.23-py3-none-any.whl","has_sig":false,"md5_digest":"1f0f02509b8ba713db72e57a072f01a6","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":70098,"upload_time":"2025-01-12T02:11:56","upload_time_iso_8601":"2025-01-12T02:11:56.319763Z","url":"https://files.pythonhosted.org/packages/e6/7d/e1434765cf0a3d62372b74f47919aa17c0b01909823f7d3ee705edf821a9/agentops-0.3.23-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"5c7fa4fd91f8fd819e1ecfdc608d1c7ade83de0f9dddd868e2c2c139a2fdae25","md5":"b7922399f81fb26517eb69fc7fef97c9","sha256":"4e4de49caeaf567b8746082f84a8cdd65afe2c698720f6f40251bbc4fdffe4c9"},"downloads":-1,"filename":"agentops-0.3.23.tar.gz","has_sig":false,"md5_digest":"b7922399f81fb26517eb69fc7fef97c9","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":64225,"upload_time":"2025-01-12T02:11:59","upload_time_iso_8601":"2025-01-12T02:11:59.360077Z","url":"https://files.pythonhosted.org/packages/5c/7f/a4fd91f8fd819e1ecfdc608d1c7ade83de0f9dddd868e2c2c139a2fdae25/agentops-0.3.23.tar.gz","yanked":false,"yanked_reason":null}],"0.3.24":[{"comment_text":null,"digests":{"blake2b_256":"254ea7d131802bac2ece5302ebf78dcef1ba1ba2f8b3a51fbe44c7f52bae6a53","md5":"39c39d8a7f1285add0fec21830a89a4a","sha256":"c5dfc8098b0dd49ddd819aa55280d07f8bfbf2f8fa088fc51ff5849b65062b10"},"downloads":-1,"filename":"agentops-0.3.24-py3-none-any.whl","has_sig":false,"md5_digest":"39c39d8a7f1285add0fec21830a89a4a","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":71957,"upload_time":"2025-01-18T19:08:02","upload_time_iso_8601":"2025-01-18T19:08:02.053316Z","url":"https://files.pythonhosted.org/packages/25/4e/a7d131802bac2ece5302ebf78dcef1ba1ba2f8b3a51fbe44c7f52bae6a53/agentops-0.3.24-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"71fee96e22c4bf762f34cd5ba435880470dad4576ab357ee61742fe053752322","md5":"3e1b7e0a31197936e099a7509128f794","sha256":"c97a3af959b728bcfbfb1ac2494cef82d8804defc9dac858648b39a9ecdcd2e4"},"downloads":-1,"filename":"agentops-0.3.24.tar.gz","has_sig":false,"md5_digest":"3e1b7e0a31197936e099a7509128f794","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":233974,"upload_time":"2025-01-18T19:08:04","upload_time_iso_8601":"2025-01-18T19:08:04.121618Z","url":"https://files.pythonhosted.org/packages/71/fe/e96e22c4bf762f34cd5ba435880470dad4576ab357ee61742fe053752322/agentops-0.3.24.tar.gz","yanked":false,"yanked_reason":null}],"0.3.25":[{"comment_text":null,"digests":{"blake2b_256":"e6e39cff4ed65c5deac34f427ed60cd7af3604ec7ed8a999c351f6411e190d3b","md5":"328dedc417be02fc28f8a4c7ed7b52e9","sha256":"4faebf73a62aa0bcac8578428277ca5b9af5e828f49f2cb03a9695b8426e6b9d"},"downloads":-1,"filename":"agentops-0.3.25-py3-none-any.whl","has_sig":false,"md5_digest":"328dedc417be02fc28f8a4c7ed7b52e9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":71971,"upload_time":"2025-01-22T10:43:16","upload_time_iso_8601":"2025-01-22T10:43:16.070593Z","url":"https://files.pythonhosted.org/packages/e6/e3/9cff4ed65c5deac34f427ed60cd7af3604ec7ed8a999c351f6411e190d3b/agentops-0.3.25-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"2fdfeb00eaabebb51feae0724a5928f25df4d71d1c8392204f4f849351fd748c","md5":"a40bc7037baf6dbba92d63331f561a28","sha256":"868d855b6531d1fa2d1047db2cb03ddb1121062fd51c44b564dc626f15cc1e40"},"downloads":-1,"filename":"agentops-0.3.25.tar.gz","has_sig":false,"md5_digest":"a40bc7037baf6dbba92d63331f561a28","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":234024,"upload_time":"2025-01-22T10:43:17","upload_time_iso_8601":"2025-01-22T10:43:17.986230Z","url":"https://files.pythonhosted.org/packages/2f/df/eb00eaabebb51feae0724a5928f25df4d71d1c8392204f4f849351fd748c/agentops-0.3.25.tar.gz","yanked":false,"yanked_reason":null}],"0.3.26":[{"comment_text":null,"digests":{"blake2b_256":"f521671c458951850bd3a445aa09eafd2793aae1104fa68351a5c3976cdf762b","md5":"c3f8fa92ff5a94a37516e774c7f58b9a","sha256":"20948f52e3ffb4ba1d52301c3a82e59490182c4dad22774ad831dce0181eb5c2"},"downloads":-1,"filename":"agentops-0.3.26-py3-none-any.whl","has_sig":false,"md5_digest":"c3f8fa92ff5a94a37516e774c7f58b9a","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":72090,"upload_time":"2025-01-24T23:44:06","upload_time_iso_8601":"2025-01-24T23:44:06.828461Z","url":"https://files.pythonhosted.org/packages/f5/21/671c458951850bd3a445aa09eafd2793aae1104fa68351a5c39Line truncated
|
||||
FileNotFoundError impacting OpenAI and LiteLLM integrations"},{"comment_text":"","digests":{"blake2b_256":"235508ce5915f1ceb86ea6f7a6e8c8dc025b34981408a1b638316b5140fad525","md5":"53ef2f5230de09260f4ead09633dde62","sha256":"ae98540355ce9b892a630e61a7224a9175657cad1b7e799269238748ca7bc0ea"},"downloads":-1,"filename":"agentops-0.3.5.tar.gz","has_sig":false,"md5_digest":"53ef2f5230de09260f4ead09633dde62","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":42699,"upload_time":"2024-08-01T19:32:21","upload_time_iso_8601":"2024-08-01T19:32:21.259555Z","url":"https://files.pythonhosted.org/packages/23/55/08ce5915f1ceb86ea6f7a6e8c8dc025b34981408a1b638316b5140fad525/agentops-0.3.5.tar.gz","yanked":true,"yanked_reason":"Introduces
|
||||
FileNotFoundError impacting OpenAI and LiteLLM integrations"}],"0.3.6":[{"comment_text":"","digests":{"blake2b_256":"be89412afc864df3715d377cff9fe15deadaccdc0902b0a242f742f286e6d84b","md5":"149922f5cd986a8641b6e88c991af0cc","sha256":"413f812eb015fb31175a507784afe08123adfa9e227870e315899b059f42b443"},"downloads":-1,"filename":"agentops-0.3.6-py3-none-any.whl","has_sig":false,"md5_digest":"149922f5cd986a8641b6e88c991af0cc","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39431,"upload_time":"2024-08-02T06:48:19","upload_time_iso_8601":"2024-08-02T06:48:19.594149Z","url":"https://files.pythonhosted.org/packages/be/89/412afc864df3715d377cff9fe15deadaccdc0902b0a242f742f286e6d84b/agentops-0.3.6-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"c3bf85f1439c3951ef69c81dbd7ef6df8a11df957e8d1180d835d71c11fa5131","md5":"b68d3124e365867f891bec4fb211a398","sha256":"0941f2486f3a561712ba6f77d560b49e2df55be141f243da0f9dc97ed43e6968"},"downloads":-1,"filename":"agentops-0.3.6.tar.gz","has_sig":false,"md5_digest":"b68d3124e365867f891bec4fb211a398","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":42933,"upload_time":"2024-08-02T06:48:21","upload_time_iso_8601":"2024-08-02T06:48:21.508300Z","url":"https://files.pythonhosted.org/packages/c3/bf/85f1439c3951ef69c81dbd7ef6df8a11df957e8d1180d835d71c11fa5131/agentops-0.3.6.tar.gz","yanked":false,"yanked_reason":null}],"0.3.7":[{"comment_text":"","digests":{"blake2b_256":"a34d05ba61e4fbd976dabe736d74fb2bb14d064ca758f05f084c0dadb6ac5cb1","md5":"551df1e89278270e0f5522d41f5c28ae","sha256":"7eeec5bef41e9ba397b3d880bcec8cd0818209ab31665c85e8b97615011a23d9"},"downloads":-1,"filename":"agentops-0.3.7-py3-none-any.whl","has_sig":false,"md5_digest":"551df1e89278270e0f5522d41f5c28ae","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":39816,"upload_time":"2024-08-08T23:21:45","upload_time_iso_8601":"2024-08-08T23:21:45.035395Z","url":"https://files.pythonhosted.org/packages/a3/4d/05ba61e4fbd976dabe736d74fb2bb14d064ca758f05f084c0dadb6ac5cb1/agentops-0.3.7-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"9f31034c3e062287f4fe9f57f2448e9508617a26bbb8a16b11c77cda9b28e1c0","md5":"1c48a797903a25988bae9b72559307ec","sha256":"048ee3caa5edf01b98c994e4e3ff90c09d83f820a43a70f07db96032c3386750"},"downloads":-1,"filename":"agentops-0.3.7.tar.gz","has_sig":false,"md5_digest":"1c48a797903a25988bae9b72559307ec","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":43495,"upload_time":"2024-08-08T23:21:46","upload_time_iso_8601":"2024-08-08T23:21:46.798531Z","url":"https://files.pythonhosted.org/packages/9f/31/034c3e062287f4fe9f57f2448e9508617a26bbb8a16b11c77cda9b28e1c0/agentops-0.3.7.tar.gz","yanked":false,"yanked_reason":null}],"0.3.9":[{"comment_text":"","digests":{"blake2b_256":"660ce931f892e0cedd40d861c3deff4134e1af1d226d6dc9762b32514d6dbc9f","md5":"82792de7bccabed058a24d3bd47443db","sha256":"582c9ddb30a9bb951b4d3ee2fd0428ba77d4a4367950b9cc6043f45b10bf12d8"},"downloads":-1,"filename":"agentops-0.3.9-py3-none-any.whl","has_sig":false,"md5_digest":"82792de7bccabed058a24d3bd47443db","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7","size":40235,"upload_time":"2024-08-15T21:21:33","upload_time_iso_8601":"2024-08-15T21:21:33.468748Z","url":"https://files.pythonhosted.org/packages/66/0c/e931f892e0cedd40d861c3deff4134e1af1d226d6dc9762b32514d6dbc9f/agentops-0.3.9-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"e17b68cef3aaf44d423046b7779e9325e4feef5257e6d784a55c9dadf84bd61a","md5":"470f3b2663b71eb2f1597903bf8922e7","sha256":"7c999edbc64196924acdb06da09ec664a09d9fec8e73ba4e0f89e5f3dafc79e5"},"downloads":-1,"filename":"agentops-0.3.9.tar.gz","has_sig":false,"md5_digest":"470f3b2663b71eb2f1597903bf8922e7","packagetype":"sdist","python_version":"source","requires_python":">=3.7","size":43796,"upload_time":"2024-08-15T21:21:34","upload_time_iso_8601":"2024-08-15T21:21:34.591272Z","url":"https://files.pythonhosted.org/packages/e1/7b/68cef3aaf44d423046b7779e9325e4feef5257e6d784a55c9dadf84bd61a/agentops-0.3.9.tar.gz","yanked":false,"yanked_reason":null}],"0.4.0":[{"comment_text":null,"digests":{"blake2b_256":"060e66184fab1fc3bdd955ac20ea7bdef78f5b9aecc4080ea3e054c2a2436991","md5":"250de44e3599992c75625cef67682ecd","sha256":"b4821b8ec69c05a4d13b34eaad4762bb06a4f14e1241d57c16fdd28de5c8c929"},"downloads":-1,"filename":"agentops-0.4.0-py3-none-any.whl","has_sig":false,"md5_digest":"250de44e3599992c75625cef67682ecd","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171419,"upload_time":"2025-03-13T11:24:15","upload_time_iso_8601":"2025-03-13T11:24:15.042606Z","url":"https://files.pythonhosted.org/packages/06/0e/66184fab1fc3bdd955ac20ea7bdef78f5b9aecc4080ea3e054c2a2436991/agentopLine truncated
|
||||
dependencies"},{"comment_text":null,"digests":{"blake2b_256":"ff7f8a57d060489c780db3e15c4d9ff8c670e5db583549c74dd2d32ae6ec10c0","md5":"ea0932849a7311750c6ac0e567c90182","sha256":"45f5367cecd8a0b648055b6ec76e8a6a2801425e80dede8f86b39e9c6cfe1d98"},"downloads":-1,"filename":"agentops-0.4.0.tar.gz","has_sig":false,"md5_digest":"ea0932849a7311750c6ac0e567c90182","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248757,"upload_time":"2025-03-13T11:24:16","upload_time_iso_8601":"2025-03-13T11:24:16.866033Z","url":"https://files.pythonhosted.org/packages/ff/7f/8a57d060489c780db3e15c4d9ff8c670e5db583549c74dd2d32ae6ec10c0/agentops-0.4.0.tar.gz","yanked":true,"yanked_reason":"broken
|
||||
dependencies"}],"0.4.1":[{"comment_text":null,"digests":{"blake2b_256":"736e7ab03c56260ec59bfaeeb08efb76f55ec6153861ad2a9cf20b38b222e4e7","md5":"3fcebe0141ca19b2fbcb53e918003ce9","sha256":"69c944e22628bc0f52c534007d2453da2a1988a7fd1f993720c4a15b0f70465a"},"downloads":-1,"filename":"agentops-0.4.1-py3-none-any.whl","has_sig":false,"md5_digest":"3fcebe0141ca19b2fbcb53e918003ce9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171402,"upload_time":"2025-03-13T16:29:26","upload_time_iso_8601":"2025-03-13T16:29:26.477091Z","url":"https://files.pythonhosted.org/packages/73/6e/7ab03c56260ec59bfaeeb08efb76f55ec6153861ad2a9cf20b38b222e4e7/agentops-0.4.1-py3-none-any.whl","yanked":true,"yanked_reason":"Broken
|
||||
dependencies"},{"comment_text":null,"digests":{"blake2b_256":"ca303217cd3480ad099ffa92848ccbc8672e5232c22918c95a4b99e49c0ef31e","md5":"ec421fa88b575b827fc0d3fd02f45515","sha256":"fec044f0346dca6aba17e458e669ac1f52f1b618a4a15b43342615096c5e7d56"},"downloads":-1,"filename":"agentops-0.4.1.tar.gz","has_sig":false,"md5_digest":"ec421fa88b575b827fc0d3fd02f45515","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248747,"upload_time":"2025-03-13T16:29:27","upload_time_iso_8601":"2025-03-13T16:29:27.905694Z","url":"https://files.pythonhosted.org/packages/ca/30/3217cd3480ad099ffa92848ccbc8672e5232c22918c95a4b99e49c0ef31e/agentops-0.4.1.tar.gz","yanked":true,"yanked_reason":"Broken
|
||||
dependencies"}],"0.4.2":[{"comment_text":null,"digests":{"blake2b_256":"b13fcb38831e86502e3a30460a27e72a254df39cc2f223d1952e063e2d0b1f70","md5":"c958500ff1e2b600064e980d526f3ad8","sha256":"4c376e3a95d1c65a864e8a5ab6f4bdb62f76abf2271b3c9a1cda2a0ad33b2b1a"},"downloads":-1,"filename":"agentops-0.4.2-py3-none-any.whl","has_sig":false,"md5_digest":"c958500ff1e2b600064e980d526f3ad8","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":171420,"upload_time":"2025-03-13T16:56:31","upload_time_iso_8601":"2025-03-13T16:56:31.589623Z","url":"https://files.pythonhosted.org/packages/b1/3f/cb38831e86502e3a30460a27e72a254df39cc2f223d1952e063e2d0b1f70/agentops-0.4.2-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"4bd0f2c1951661617febfd14c3e98a58fbd805e48f453356e912dc8efc950490","md5":"7a125604d2bb3494714462442f0ac47c","sha256":"42cbc30a0eecee5db468d01dcbe398d57f080cbf8bb09aecc2ce40c5a21509a5"},"downloads":-1,"filename":"agentops-0.4.2.tar.gz","has_sig":false,"md5_digest":"7a125604d2bb3494714462442f0ac47c","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":248754,"upload_time":"2025-03-13T16:56:33","upload_time_iso_8601":"2025-03-13T16:56:33.062966Z","url":"https://files.pythonhosted.org/packages/4b/d0/f2c1951661617febfd14c3e98a58fbd805e48f453356e912dc8efc950490/agentops-0.4.2.tar.gz","yanked":false,"yanked_reason":null}],"0.4.3":[{"comment_text":null,"digests":{"blake2b_256":"398892f5a663cf616607e92a0499f5b636fe4e5ae8a6b7febc436077cd02ecd5","md5":"e739880fc1b0cf1e15a816277ca1e8d9","sha256":"c69cf884fc20cd3b44dd07bc9bca9ecec72e44fd2b12c50523670e3743fbbe6c"},"downloads":-1,"filename":"agentops-0.4.3-py3-none-any.whl","has_sig":false,"md5_digest":"e739880fc1b0cf1e15a816277ca1e8d9","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":111111,"upload_time":"2025-03-14T17:35:53","upload_time_iso_8601":"2025-03-14T17:35:53.978325Z","url":"https://files.pythonhosted.org/packages/39/88/92f5a663cf616607e92a0499f5b636fe4e5ae8a6b7febc436077cd02ecd5/agentops-0.4.3-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"c296f6f5268ffd68079185c6b21190a6ab5b35997678ce89af211d3c3683cc16","md5":"8df7f60a4346721caf9a4a74b0ba2e32","sha256":"48379801976e5e6c830ee40b247d7e7834fb79fb18d2cec926a8c06bdf767090"},"downloads":-1,"filename":"agentops-0.4.3.tar.gz","has_sig":false,"md5_digest":"8df7f60a4346721caf9a4a74b0ba2e32","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":209668,"upload_time":"2025-03-14T17:35:55","upload_time_iso_8601":"2025-03-14T17:35:55.387572Z","url":"https://files.pythonhosted.org/packages/c2/96/f6f5268ffd68079185c6b21190a6ab5b35997678ce89af211d3c3683cc16/agentops-0.4.3.tar.gz","yanked":false,"yanked_reason":null}],"0.4.4":[{"comment_text":null,"digests":{"blake2b_256":"e230799eb1a6b63e6f072611e4d6c5f7d70d969b1c2d14735100a5295eb794fd","md5":"76de08f25b0f1765ec9b3ce200f2273c","sha256":"a33f32e0d09e942b501a4066460b77bc1f6be960bdbd8dfed1cfc5950702f87c"},"downloads":-1,"filename":"agentops-0.4.4-py3-none-any.whl","has_sig":false,"md5_digest":"76de08f25b0f1765ec9b3ce200f2273c","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":115456,"upload_time":"2025-03-17T21:08:16","upload_time_iso_8601":"2025-03-17T21:08:16.149499Z","url":"https://files.pythonhosted.org/packages/e2/30/799eb1a6b63e6f072611e4d6c5f7d70d969b1c2d14735100a5295eb794fd/agentops-0.4.4-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":null,"digests":{"blake2b_256":"65e969c80c4c8fbf27826644c2bbcaf657bf9882a7974b115bff5021c683560d","md5":"2c34c20f9b785c60ea1cc6011b50684b","sha256":"509daf197bb27f8e5b1ac87e516487883178335c70328fd74897b1a5fadbf0bd"},"downloads":-1,"filename":"agentops-0.4.4.tar.gz","has_sig":false,"md5_digest":"2c34c20f9b785c60ea1cc6011b50684b","packagetype":"sdist","python_version":"source","requires_python":"<3.14,>=3.9","size":209971,"upload_time":"2025-03-17T21:08:17","upload_time_iso_8601":"2025-03-17T21:08:17.396763Z","url":"https://files.pythonhosted.org/packages/65/e9/69c80c4c8fbf27826644c2bbcaf657bf9882a7974b115bff5021c683560d/agentops-0.4.4.tar.gz","yanked":false,"yanked_reason":null}],"0.4.5":[{"comment_text":null,"digests":{"blake2b_256":"5cf1848e02d7233e3bfe74119e28a4fb7cf9dd3363eb215cf8bb8ca835317cc7","md5":"e70f8b49cbbbf5b6a56bbfc51938581c","sha256":"ec45a775dd5f494fe137620ce3e43aa06a6858495bed31c4b9019b343a34d092"},"downloads":-1,"filename":"agentops-0.4.5-py3-none-any.whl","has_sig":false,"md5_digest":"e70f8b49cbbbf5b6a56bbfc51938581c","packagetype":"bdist_wheel","python_version":"py3","requires_python":"<3.14,>=3.9","size":148034,"upload_time":"2025-03-25T00:05:57","upload_time_iso_8601":"2025-03-25T00:05:57.075368Z","url":"https://files.pythonhosted.org/packages/5c/f1/848e02d7233e3bfe74119e28a4fb7cf9dd3363eb215cf8bb8ca835317cc7/Line truncated
|
||||
|
||||
'
|
||||
headers:
|
||||
Accept-Ranges:
|
||||
- bytes
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '136926'
|
||||
Date:
|
||||
- Mon, 05 May 2025 18:37:34 GMT
|
||||
Permissions-Policy:
|
||||
- publickey-credentials-create=(self),publickey-credentials-get=(self),accelerometer=(),ambient-light-sensor=(),autoplay=(),battery=(),camera=(),display-capture=(),document-domain=(),encrypted-media=(),execution-while-not-rendered=(),execution-while-out-of-viewport=(),fullscreen=(),gamepad=(),geolocation=(),gyroscope=(),hid=(),identity-credentials-get=(),idle-detection=(),local-fonts=(),magnetometer=(),microphone=(),midi=(),otp-credentials=(),payment=(),picture-in-picture=(),screen-wake-lock=(),serial=(),speaker-selection=(),storage-access=(),usb=(),web-share=(),xr-spatial-tracking=()
|
||||
Strict-Transport-Security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
X-Cache:
|
||||
- MISS, HIT, HIT
|
||||
X-Cache-Hits:
|
||||
- 0, 34, 0
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
X-Frame-Options:
|
||||
- deny
|
||||
X-Permitted-Cross-Domain-Policies:
|
||||
- none
|
||||
X-Served-By:
|
||||
- cache-iad-kjyo7100160-IAD, cache-iad-kjyo7100044-IAD, cache-gru-sbsp2090079-GRU
|
||||
X-Timer:
|
||||
- S1746470255.860857,VS0,VE1
|
||||
X-XSS-Protection:
|
||||
- 1; mode=block
|
||||
access-control-allow-headers:
|
||||
- Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since
|
||||
access-control-allow-methods:
|
||||
- GET
|
||||
access-control-allow-origin:
|
||||
- '*'
|
||||
access-control-expose-headers:
|
||||
- X-PyPI-Last-Serial
|
||||
access-control-max-age:
|
||||
- '86400'
|
||||
cache-control:
|
||||
- max-age=900, public
|
||||
content-security-policy:
|
||||
- base-uri 'self'; connect-src 'self' https://api.github.com/repos/ https://api.github.com/search/issues
|
||||
https://gitlab.com/api/ https://analytics.python.org fastly-insights.com *.fastly-insights.com
|
||||
*.ethicalads.io https://api.pwnedpasswords.com https://cdn.jsdelivr.net/npm/mathjax@3.2.2/es5/sre/mathmaps/
|
||||
https://2p66nmmycsj3.statuspage.io; default-src 'none'; font-src 'self' fonts.gstatic.com;
|
||||
form-action 'self' https://checkout.stripe.com; frame-ancestors 'none'; frame-src
|
||||
'none'; img-src 'self' https://pypi-camo.freetls.fastly.net/ *.fastly-insights.com
|
||||
*.ethicalads.io ethicalads.blob.core.windows.net; script-src 'self' https://analytics.python.org
|
||||
*.fastly-insights.com *.ethicalads.io 'sha256-U3hKDidudIaxBDEzwGJApJgPEf2mWk6cfMWghrAa6i0='
|
||||
https://cdn.jsdelivr.net/npm/mathjax@3.2.2/ 'sha256-1CldwzdEg2k1wTmf7s5RWVd7NMXI/7nxxjJM2C4DqII='
|
||||
'sha256-0POaN8stWYQxhzjKS+/eOfbbJ/u4YHO5ZagJvLpMypo='; style-src 'self' fonts.googleapis.com
|
||||
*.ethicalads.io 'sha256-2YHqZokjiizkHi1Zt+6ar0XJ0OeEy/egBnlm+MDMtrM=' 'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU='
|
||||
'sha256-JLEjeN9e5dGsz5475WyRaoA4eQOdNPxDIeUhclnJDCE=' 'sha256-mQyxHEuwZJqpxCw3SLmc4YOySNKXunyu2Oiz1r3/wAE='
|
||||
'sha256-OCf+kv5Asiwp++8PIevKBYSgnNLNUZvxAp4a7wMLuKA=' 'sha256-h5LOiLhk6wiJrGsG5ItM0KimwzWQH/yAcmoJDJL//bY=';
|
||||
worker-src *.fastly-insights.com
|
||||
content-type:
|
||||
- application/json
|
||||
etag:
|
||||
- '"ggQSbqfOWm/rak+86bKvfA"'
|
||||
referrer-policy:
|
||||
- origin-when-cross-origin
|
||||
x-pypi-last-serial:
|
||||
- '28851779'
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are agent. You are a helpful
|
||||
assistant that just says hi\nYour personal goal is: Just say hi\nTo give my
|
||||
best complete final answer to the task respond using the exact following format:\n\nThought:
|
||||
I now can give a great answer\nFinal Answer: Your final answer must be the great
|
||||
and the most complete as possible, it must be outcome described.\n\nI MUST use
|
||||
these formats, my job depends on it!"}, {"role": "user", "content": "\nCurrent
|
||||
Task: Just say hi\n\nThis is the expected criteria for your final answer: hi\nyou
|
||||
MUST return the actual complete content as the final answer, not a summary.\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:"}], "model": "gpt-4o-mini", "stop":
|
||||
["\nObservation:"]}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '833'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.75.0
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.75.0
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-read-timeout:
|
||||
- '600.0'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.10.16
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-BTuz1KipOkzuwIKTcVxvO9pLFSfkh\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1746470255,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
|
||||
\ \"choices\": [\n {\n \"index\": 0,\n \"message\": {\n \"role\":
|
||||
\"assistant\",\n \"content\": \"I now can give a great answer \\nFinal
|
||||
Answer: hi\",\n \"refusal\": null,\n \"annotations\": []\n },\n
|
||||
\ \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }\n ],\n
|
||||
\ \"usage\": {\n \"prompt_tokens\": 160,\n \"completion_tokens\": 13,\n
|
||||
\ \"total_tokens\": 173,\n \"prompt_tokens_details\": {\n \"cached_tokens\":
|
||||
0,\n \"audio_tokens\": 0\n },\n \"completion_tokens_details\": {\n
|
||||
\ \"reasoning_tokens\": 0,\n \"audio_tokens\": 0,\n \"accepted_prediction_tokens\":
|
||||
0,\n \"rejected_prediction_tokens\": 0\n }\n },\n \"service_tier\":
|
||||
\"default\",\n \"system_fingerprint\": \"fp_dbaca60df0\"\n}\n"
|
||||
headers:
|
||||
CF-RAY:
|
||||
- 93b259955a50a166-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Mon, 05 May 2025 18:37:35 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
X-Content-Type-Options:
|
||||
- nosniff
|
||||
access-control-expose-headers:
|
||||
- X-Request-ID
|
||||
alt-svc:
|
||||
- h3=":443"; ma=86400
|
||||
cf-cache-status:
|
||||
- DYNAMIC
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '333'
|
||||
openai-version:
|
||||
- '2020-10-01'
|
||||
strict-transport-security:
|
||||
- max-age=31536000; includeSubDomains; preload
|
||||
x-ratelimit-limit-requests:
|
||||
- '30000'
|
||||
x-ratelimit-limit-tokens:
|
||||
- '150000000'
|
||||
x-ratelimit-remaining-requests:
|
||||
- '29999'
|
||||
x-ratelimit-remaining-tokens:
|
||||
- '149999826'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_1821906e2f17a712ceb213bd130355ee
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
version: 1
|
||||
@@ -162,8 +162,18 @@ def test_reset_knowledge(mock_get_crews, runner):
|
||||
assert call_count == 1, "reset_memories should have been called once"
|
||||
|
||||
|
||||
def test_reset_memory_from_many_crews(mock_get_crews, runner):
|
||||
def test_reset_agent_knowledge(mock_get_crews, runner):
|
||||
result = runner.invoke(reset_memories, ["--agent-knowledge"])
|
||||
call_count = 0
|
||||
for crew in mock_get_crews.return_value:
|
||||
crew.reset_memories.assert_called_once_with(command_type="agent_knowledge")
|
||||
assert f"[Crew ({crew.name})] Agents knowledge has been reset." in result.output
|
||||
call_count += 1
|
||||
|
||||
assert call_count == 1, "reset_memories should have been called once"
|
||||
|
||||
|
||||
def test_reset_memory_from_many_crews(mock_get_crews, runner):
|
||||
crews = []
|
||||
for crew_id in ["id-1234", "id-5678"]:
|
||||
mock_crew = mock.Mock(spec=Crew)
|
||||
|
||||
@@ -2,22 +2,19 @@
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
import tempfile
|
||||
from concurrent.futures import Future
|
||||
from unittest import mock
|
||||
from unittest.mock import MagicMock, patch
|
||||
from unittest.mock import ANY, MagicMock, patch
|
||||
|
||||
import pydantic_core
|
||||
import pytest
|
||||
|
||||
from crewai.agent import Agent
|
||||
from crewai.agents import CacheHandler
|
||||
from crewai.agents.cache import CacheHandler
|
||||
from crewai.agents.crew_agent_executor import CrewAgentExecutor
|
||||
from crewai.crew import Crew
|
||||
from crewai.crews.crew_output import CrewOutput
|
||||
from crewai.flow import Flow, listen, start
|
||||
from crewai.flow import Flow, start
|
||||
from crewai.knowledge.knowledge import Knowledge
|
||||
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
|
||||
from crewai.llm import LLM
|
||||
from crewai.memory.contextual.contextual_memory import ContextualMemory
|
||||
@@ -3141,6 +3138,30 @@ def test_replay_with_context():
|
||||
assert crew.tasks[1].context[0].output.raw == "context raw output"
|
||||
|
||||
|
||||
def test_replay_with_context_set_to_nullable():
|
||||
agent = Agent(role="test_agent", backstory="Test Description", goal="Test Goal")
|
||||
task1 = Task(
|
||||
description="Context Task", expected_output="Say Task Output", agent=agent
|
||||
)
|
||||
task2 = Task(
|
||||
description="Test Task", expected_output="Say Hi", agent=agent, context=[]
|
||||
)
|
||||
task3 = Task(
|
||||
description="Test Task 3", expected_output="Say Hi", agent=agent, context=None
|
||||
)
|
||||
|
||||
crew = Crew(agents=[agent], tasks=[task1, task2, task3], process=Process.sequential)
|
||||
with patch("crewai.task.Task.execute_sync") as mock_execute_task:
|
||||
mock_execute_task.return_value = TaskOutput(
|
||||
description="Test Task Output",
|
||||
raw="test raw output",
|
||||
agent="test_agent",
|
||||
)
|
||||
crew.kickoff()
|
||||
|
||||
mock_execute_task.assert_called_with(agent=ANY, context="", tools=ANY)
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_replay_with_invalid_task_id():
|
||||
agent = Agent(role="test_agent", backstory="Test Description", goal="Test Goal")
|
||||
@@ -4383,3 +4404,165 @@ def test_sets_parent_flow_when_inside_flow(researcher, writer):
|
||||
flow = MyFlow()
|
||||
result = flow.kickoff()
|
||||
assert result.parent_flow is flow
|
||||
|
||||
|
||||
def test_reset_knowledge_with_no_crew_knowledge(researcher,writer):
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
]
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
crew.reset_memories(command_type='knowledge')
|
||||
|
||||
# Optionally, you can also check the error message
|
||||
assert "Crew Knowledge and Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message
|
||||
|
||||
|
||||
def test_reset_knowledge_with_only_crew_knowledge(researcher,writer):
|
||||
mock_ks = MagicMock(spec=Knowledge)
|
||||
|
||||
with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge:
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
knowledge=mock_ks
|
||||
)
|
||||
|
||||
crew.reset_memories(command_type='knowledge')
|
||||
mock_reset_agent_knowledge.assert_called_once_with([mock_ks])
|
||||
|
||||
|
||||
def test_reset_knowledge_with_crew_and_agent_knowledge(researcher,writer):
|
||||
mock_ks_crew = MagicMock(spec=Knowledge)
|
||||
mock_ks_research = MagicMock(spec=Knowledge)
|
||||
mock_ks_writer = MagicMock(spec=Knowledge)
|
||||
|
||||
researcher.knowledge = mock_ks_research
|
||||
writer.knowledge = mock_ks_writer
|
||||
|
||||
with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge:
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
knowledge=mock_ks_crew
|
||||
)
|
||||
|
||||
crew.reset_memories(command_type='knowledge')
|
||||
mock_reset_agent_knowledge.assert_called_once_with([mock_ks_crew,mock_ks_research,mock_ks_writer])
|
||||
|
||||
|
||||
def test_reset_knowledge_with_only_agent_knowledge(researcher,writer):
|
||||
mock_ks_research = MagicMock(spec=Knowledge)
|
||||
mock_ks_writer = MagicMock(spec=Knowledge)
|
||||
|
||||
researcher.knowledge = mock_ks_research
|
||||
writer.knowledge = mock_ks_writer
|
||||
|
||||
with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge:
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
)
|
||||
|
||||
crew.reset_memories(command_type='knowledge')
|
||||
mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer])
|
||||
|
||||
|
||||
def test_reset_agent_knowledge_with_no_agent_knowledge(researcher,writer):
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
crew.reset_memories(command_type='agent_knowledge')
|
||||
|
||||
# Optionally, you can also check the error message
|
||||
assert "Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message
|
||||
|
||||
|
||||
def test_reset_agent_knowledge_with_only_crew_knowledge(researcher,writer):
|
||||
mock_ks = MagicMock(spec=Knowledge)
|
||||
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
knowledge=mock_ks
|
||||
)
|
||||
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
crew.reset_memories(command_type='agent_knowledge')
|
||||
|
||||
# Optionally, you can also check the error message
|
||||
assert "Agent Knowledge memory system is not initialized" in str(excinfo.value) # Replace with the expected message
|
||||
|
||||
|
||||
def test_reset_agent_knowledge_with_crew_and_agent_knowledge(researcher,writer):
|
||||
mock_ks_crew = MagicMock(spec=Knowledge)
|
||||
mock_ks_research = MagicMock(spec=Knowledge)
|
||||
mock_ks_writer = MagicMock(spec=Knowledge)
|
||||
|
||||
researcher.knowledge = mock_ks_research
|
||||
writer.knowledge = mock_ks_writer
|
||||
|
||||
with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge:
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
knowledge=mock_ks_crew
|
||||
)
|
||||
|
||||
crew.reset_memories(command_type='agent_knowledge')
|
||||
mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer])
|
||||
|
||||
|
||||
def test_reset_agent_knowledge_with_only_agent_knowledge(researcher,writer):
|
||||
mock_ks_research = MagicMock(spec=Knowledge)
|
||||
mock_ks_writer = MagicMock(spec=Knowledge)
|
||||
|
||||
researcher.knowledge = mock_ks_research
|
||||
writer.knowledge = mock_ks_writer
|
||||
|
||||
with patch.object(Crew,'reset_knowledge') as mock_reset_agent_knowledge:
|
||||
crew = Crew(
|
||||
agents=[researcher, writer],
|
||||
process=Process.sequential,
|
||||
tasks=[
|
||||
Task(description="Task 1", expected_output="output", agent=researcher),
|
||||
Task(description="Task 2", expected_output="output", agent=writer),
|
||||
],
|
||||
)
|
||||
|
||||
crew.reset_memories(command_type='agent_knowledge')
|
||||
mock_reset_agent_knowledge.assert_called_once_with([mock_ks_research,mock_ks_writer])
|
||||
|
||||
|
||||
@@ -837,9 +837,6 @@ def test_interpolate_inputs():
|
||||
|
||||
def test_interpolate_only():
|
||||
"""Test the interpolate_only method for various scenarios including JSON structure preservation."""
|
||||
task = Task(
|
||||
description="Unused in this test", expected_output="Unused in this test"
|
||||
)
|
||||
|
||||
# Test JSON structure preservation
|
||||
json_string = '{"info": "Look at {placeholder}", "nested": {"val": "{nestedVal}"}}'
|
||||
@@ -871,10 +868,6 @@ def test_interpolate_only():
|
||||
|
||||
def test_interpolate_only_with_dict_inside_expected_output():
|
||||
"""Test the interpolate_only method for various scenarios including JSON structure preservation."""
|
||||
task = Task(
|
||||
description="Unused in this test",
|
||||
expected_output="Unused in this test: {questions}",
|
||||
)
|
||||
|
||||
json_string = '{"questions": {"main_question": "What is the user\'s name?", "secondary_question": "What is the user\'s age?"}}'
|
||||
result = interpolate_only(
|
||||
@@ -1094,11 +1087,6 @@ def test_task_execution_times():
|
||||
|
||||
|
||||
def test_interpolate_with_list_of_strings():
|
||||
task = Task(
|
||||
description="Test list interpolation",
|
||||
expected_output="List: {items}",
|
||||
)
|
||||
|
||||
# Test simple list of strings
|
||||
input_str = "Available items: {items}"
|
||||
inputs = {"items": ["apple", "banana", "cherry"]}
|
||||
@@ -1112,11 +1100,6 @@ def test_interpolate_with_list_of_strings():
|
||||
|
||||
|
||||
def test_interpolate_with_list_of_dicts():
|
||||
task = Task(
|
||||
description="Test list of dicts interpolation",
|
||||
expected_output="People: {people}",
|
||||
)
|
||||
|
||||
input_data = {
|
||||
"people": [
|
||||
{"name": "Alice", "age": 30, "skills": ["Python", "AI"]},
|
||||
@@ -1137,11 +1120,6 @@ def test_interpolate_with_list_of_dicts():
|
||||
|
||||
|
||||
def test_interpolate_with_nested_structures():
|
||||
task = Task(
|
||||
description="Test nested structures",
|
||||
expected_output="Company: {company}",
|
||||
)
|
||||
|
||||
input_data = {
|
||||
"company": {
|
||||
"name": "TechCorp",
|
||||
@@ -1165,11 +1143,6 @@ def test_interpolate_with_nested_structures():
|
||||
|
||||
|
||||
def test_interpolate_with_special_characters():
|
||||
task = Task(
|
||||
description="Test special characters in dicts",
|
||||
expected_output="Data: {special_data}",
|
||||
)
|
||||
|
||||
input_data = {
|
||||
"special_data": {
|
||||
"quotes": """This has "double" and 'single' quotes""",
|
||||
@@ -1188,11 +1161,6 @@ def test_interpolate_with_special_characters():
|
||||
|
||||
|
||||
def test_interpolate_mixed_types():
|
||||
task = Task(
|
||||
description="Test mixed type interpolation",
|
||||
expected_output="Mixed: {data}",
|
||||
)
|
||||
|
||||
input_data = {
|
||||
"data": {
|
||||
"name": "Test Dataset",
|
||||
@@ -1214,11 +1182,6 @@ def test_interpolate_mixed_types():
|
||||
|
||||
|
||||
def test_interpolate_complex_combination():
|
||||
task = Task(
|
||||
description="Test complex combination",
|
||||
expected_output="Report: {report}",
|
||||
)
|
||||
|
||||
input_data = {
|
||||
"report": [
|
||||
{
|
||||
@@ -1243,11 +1206,6 @@ def test_interpolate_complex_combination():
|
||||
|
||||
|
||||
def test_interpolate_invalid_type_validation():
|
||||
task = Task(
|
||||
description="Test invalid type validation",
|
||||
expected_output="Should never reach here",
|
||||
)
|
||||
|
||||
# Test with invalid top-level type
|
||||
with pytest.raises(ValueError) as excinfo:
|
||||
interpolate_only("{data}", {"data": set()}) # type: ignore we are purposely testing this failure
|
||||
@@ -1268,11 +1226,6 @@ def test_interpolate_invalid_type_validation():
|
||||
|
||||
|
||||
def test_interpolate_custom_object_validation():
|
||||
task = Task(
|
||||
description="Test custom object rejection",
|
||||
expected_output="Should never reach here",
|
||||
)
|
||||
|
||||
class CustomObject:
|
||||
def __init__(self, value):
|
||||
self.value = value
|
||||
@@ -1304,11 +1257,6 @@ def test_interpolate_custom_object_validation():
|
||||
|
||||
|
||||
def test_interpolate_valid_complex_types():
|
||||
task = Task(
|
||||
description="Test valid complex types",
|
||||
expected_output="Validation should pass",
|
||||
)
|
||||
|
||||
# Valid complex structure
|
||||
valid_data = {
|
||||
"name": "Valid Dataset",
|
||||
@@ -1328,11 +1276,6 @@ def test_interpolate_valid_complex_types():
|
||||
|
||||
|
||||
def test_interpolate_edge_cases():
|
||||
task = Task(
|
||||
description="Test edge cases",
|
||||
expected_output="Edge case handling",
|
||||
)
|
||||
|
||||
# Test empty dict and list
|
||||
assert interpolate_only("{}", {"data": {}}) == "{}"
|
||||
assert interpolate_only("[]", {"data": []}) == "[]"
|
||||
@@ -1347,11 +1290,6 @@ def test_interpolate_edge_cases():
|
||||
|
||||
|
||||
def test_interpolate_valid_types():
|
||||
task = Task(
|
||||
description="Test valid types including null and boolean",
|
||||
expected_output="Should pass validation",
|
||||
)
|
||||
|
||||
# Test with boolean and null values (valid JSON types)
|
||||
valid_data = {
|
||||
"name": "Test",
|
||||
@@ -1373,11 +1311,11 @@ def test_interpolate_valid_types():
|
||||
|
||||
def test_task_with_no_max_execution_time():
|
||||
researcher = Agent(
|
||||
role="Researcher",
|
||||
goal="Make the best research and analysis on content about AI and AI agents",
|
||||
backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.",
|
||||
allow_delegation=False,
|
||||
max_execution_time=None
|
||||
role="Researcher",
|
||||
goal="Make the best research and analysis on content about AI and AI agents",
|
||||
backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.",
|
||||
allow_delegation=False,
|
||||
max_execution_time=None,
|
||||
)
|
||||
|
||||
task = Task(
|
||||
@@ -1386,7 +1324,7 @@ def test_task_with_no_max_execution_time():
|
||||
agent=researcher,
|
||||
)
|
||||
|
||||
with patch.object(Agent, "_execute_without_timeout", return_value = "ok") as execute:
|
||||
with patch.object(Agent, "_execute_without_timeout", return_value="ok") as execute:
|
||||
result = task.execute_sync(agent=researcher)
|
||||
assert result.raw == "ok"
|
||||
execute.assert_called_once()
|
||||
@@ -1395,6 +1333,7 @@ def test_task_with_no_max_execution_time():
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_task_with_max_execution_time():
|
||||
from crewai.tools import tool
|
||||
|
||||
"""Test that execution raises TimeoutError when max_execution_time is exceeded."""
|
||||
|
||||
@tool("what amazing tool", result_as_answer=True)
|
||||
@@ -1412,7 +1351,7 @@ def test_task_with_max_execution_time():
|
||||
),
|
||||
allow_delegation=False,
|
||||
tools=[my_tool],
|
||||
max_execution_time=4
|
||||
max_execution_time=4,
|
||||
)
|
||||
|
||||
task = Task(
|
||||
@@ -1428,6 +1367,7 @@ def test_task_with_max_execution_time():
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_task_with_max_execution_time_exceeded():
|
||||
from crewai.tools import tool
|
||||
|
||||
"""Test that execution raises TimeoutError when max_execution_time is exceeded."""
|
||||
|
||||
@tool("what amazing tool", result_as_answer=True)
|
||||
@@ -1445,7 +1385,7 @@ def test_task_with_max_execution_time_exceeded():
|
||||
),
|
||||
allow_delegation=False,
|
||||
tools=[my_tool],
|
||||
max_execution_time=1
|
||||
max_execution_time=1,
|
||||
)
|
||||
|
||||
task = Task(
|
||||
@@ -1455,4 +1395,28 @@ def test_task_with_max_execution_time_exceeded():
|
||||
)
|
||||
|
||||
with pytest.raises(TimeoutError):
|
||||
task.execute_sync(agent=researcher)
|
||||
task.execute_sync(agent=researcher)
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_task_interpolation_with_hyphens():
|
||||
agent = Agent(
|
||||
role="Researcher",
|
||||
goal="be an assistant that responds with {interpolation-with-hyphens}",
|
||||
backstory="You're an expert researcher, specialized in technology, software engineering, AI and startups. You work as a freelancer and is now working on doing research and analysis for a new customer.",
|
||||
allow_delegation=False,
|
||||
)
|
||||
task = Task(
|
||||
description="be an assistant that responds with {interpolation-with-hyphens}",
|
||||
expected_output="The response should be addressing: {interpolation-with-hyphens}",
|
||||
agent=agent,
|
||||
)
|
||||
crew = Crew(
|
||||
agents=[agent],
|
||||
tasks=[task],
|
||||
verbose=True,
|
||||
)
|
||||
result = crew.kickoff(inputs={"interpolation-with-hyphens": "say hello world"})
|
||||
assert "say hello world" in task.prompt()
|
||||
|
||||
assert result.raw == "Hello, World!"
|
||||
@@ -0,0 +1,69 @@
|
||||
import os
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
|
||||
from crewai import Agent, Crew, Task
|
||||
from crewai.telemetry import Telemetry
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"env_var,value,expected_ready",
|
||||
[
|
||||
("OTEL_SDK_DISABLED", "true", False),
|
||||
("OTEL_SDK_DISABLED", "TRUE", False),
|
||||
("CREWAI_DISABLE_TELEMETRY", "true", False),
|
||||
("CREWAI_DISABLE_TELEMETRY", "TRUE", False),
|
||||
("OTEL_SDK_DISABLED", "false", True),
|
||||
("CREWAI_DISABLE_TELEMETRY", "false", True),
|
||||
],
|
||||
)
|
||||
def test_telemetry_environment_variables(env_var, value, expected_ready):
|
||||
"""Test telemetry state with different environment variable configurations."""
|
||||
with patch.dict(os.environ, {env_var: value}):
|
||||
with patch("crewai.telemetry.telemetry.TracerProvider"):
|
||||
telemetry = Telemetry()
|
||||
assert telemetry.ready is expected_ready
|
||||
|
||||
|
||||
def test_telemetry_enabled_by_default():
|
||||
"""Test that telemetry is enabled by default."""
|
||||
with patch.dict(os.environ, {}, clear=True):
|
||||
with patch("crewai.telemetry.telemetry.TracerProvider"):
|
||||
telemetry = Telemetry()
|
||||
assert telemetry.ready is True
|
||||
|
||||
|
||||
from opentelemetry import trace
|
||||
|
||||
|
||||
@patch("crewai.telemetry.telemetry.logger.error")
|
||||
@patch(
|
||||
"opentelemetry.exporter.otlp.proto.http.trace_exporter.OTLPSpanExporter.export",
|
||||
side_effect=Exception("Test exception"),
|
||||
)
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_telemetry_fails_due_connect_timeout(export_mock, logger_mock):
|
||||
error = Exception("Test exception")
|
||||
export_mock.side_effect = error
|
||||
|
||||
tracer = trace.get_tracer(__name__)
|
||||
with tracer.start_as_current_span("test-span"):
|
||||
agent = Agent(
|
||||
role="agent",
|
||||
llm="gpt-4o-mini",
|
||||
goal="Just say hi",
|
||||
backstory="You are a helpful assistant that just says hi",
|
||||
)
|
||||
task = Task(
|
||||
description="Just say hi",
|
||||
expected_output="hi",
|
||||
agent=agent,
|
||||
)
|
||||
crew = Crew(agents=[agent], tasks=[task], name="TestCrew")
|
||||
crew.kickoff()
|
||||
|
||||
trace.get_tracer_provider().force_flush()
|
||||
|
||||
export_mock.assert_called_once()
|
||||
logger_mock.assert_called_once_with(error)
|
||||
@@ -113,4 +113,434 @@ interactions:
|
||||
- req_2f9d1e3f0ace4944891dde05093486aa
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: '{"name": "llama3.2:3b"}'
|
||||
headers:
|
||||
accept:
|
||||
- '*/*'
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '23'
|
||||
content-type:
|
||||
- application/json
|
||||
host:
|
||||
- localhost:11434
|
||||
user-agent:
|
||||
- litellm/1.68.0
|
||||
method: POST
|
||||
uri: http://localhost:11434/api/show
|
||||
response:
|
||||
body:
|
||||
string: "{\"license\":\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version
|
||||
Release Date: September 25, 2024\\n\\n\u201CAgreement\u201D means the terms
|
||||
and conditions for use, reproduction, distribution \\nand modification of
|
||||
the Llama Materials set forth herein.\\n\\n\u201CDocumentation\u201D means
|
||||
the specifications, manuals and documentation accompanying Llama 3.2\\ndistributed
|
||||
by Meta at https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D
|
||||
or \u201Cyou\u201D means you, or your employer or any other person or entity
|
||||
(if you are \\nentering into this Agreement on such person or entity\u2019s
|
||||
behalf), of the age required under\\napplicable laws, rules or regulations
|
||||
to provide legal consent and that has legal authority\\nto bind your employer
|
||||
or such other person or entity if you are entering in this Agreement\\non
|
||||
their behalf.\\n\\n\u201CLlama 3.2\u201D means the foundational large language
|
||||
models and software and algorithms, including\\nmachine-learning model code,
|
||||
trained model weights, inference-enabling code, training-enabling code,\\nfine-tuning
|
||||
enabling code and other elements of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama
|
||||
Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and
|
||||
Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D
|
||||
or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located
|
||||
in or, \\nif you are an entity, your principal place of business is in the
|
||||
EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside
|
||||
of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below
|
||||
or by using or distributing any portion or element of the Llama Materials,\\nyou
|
||||
agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n
|
||||
\ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable
|
||||
and royalty-free limited license under Meta\u2019s intellectual property or
|
||||
other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce,
|
||||
distribute, copy, create derivative works \\nof, and make modifications to
|
||||
the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i.
|
||||
If you distribute or make available the Llama Materials (or any derivative
|
||||
works thereof), \\nor a product or service (including another AI model) that
|
||||
contains any of them, you shall (A) provide\\na copy of this Agreement with
|
||||
any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non
|
||||
a related website, user interface, blogpost, about page, or product documentation.
|
||||
If you use the\\nLlama Materials or any outputs or results of the Llama Materials
|
||||
to create, train, fine tune, or\\notherwise improve an AI model, which is
|
||||
distributed or made available, you shall also include \u201CLlama\u201D\\nat
|
||||
the beginning of any such AI model name.\\n\\n ii. If you receive Llama
|
||||
Materials, or any derivative works thereof, from a Licensee as part\\nof an
|
||||
integrated end user product, then Section 2 of this Agreement will not apply
|
||||
to you. \\n\\n iii. You must retain in all copies of the Llama Materials
|
||||
that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D
|
||||
text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed
|
||||
under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc.
|
||||
All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials
|
||||
must comply with applicable laws and regulations\\n(including trade compliance
|
||||
laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama
|
||||
Materials (available at https://www.llama.com/llama3_2/use-policy), which
|
||||
is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional
|
||||
Commercial Terms. If, on the Llama 3.2 version release date, the monthly active
|
||||
users\\nof the products or services made available by or for Licensee, or
|
||||
Licensee\u2019s affiliates, \\nis greater than 700 million monthly active
|
||||
users in the preceding calendar month, you must request \\na license from
|
||||
Meta, which Meta may grant to you in its sole discretion, and you are not
|
||||
authorized to\\nexercise any of the rights under this Agreement unless or
|
||||
until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer
|
||||
of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY
|
||||
OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS,
|
||||
WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY
|
||||
KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF
|
||||
TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING
|
||||
OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH
|
||||
YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation
|
||||
of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY
|
||||
THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY,
|
||||
OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY
|
||||
INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES,
|
||||
EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF
|
||||
ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark
|
||||
licenses are granted under this Agreement, and in connection with the Llama
|
||||
Materials, \\nneither Meta nor Licensee may use any name or mark owned by
|
||||
or associated with the other or any of its affiliates, \\nexcept as required
|
||||
for reasonable and customary use in describing and redistributing the Llama
|
||||
Materials or as \\nset forth in this Section 5(a). Meta hereby grants you
|
||||
a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required
|
||||
\\nto comply with the last sentence of Section 1.b.i. You will comply with
|
||||
Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/).
|
||||
All goodwill arising out of your use of the Mark \\nwill inure to the benefit
|
||||
of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and
|
||||
derivatives made by or for Meta, with respect to any\\n derivative works
|
||||
and modifications of the Llama Materials that are made by you, as between
|
||||
you and Meta,\\n you are and will be the owner of such derivative works
|
||||
and modifications.\\n\\n c. If you institute litigation or other proceedings
|
||||
against Meta or any entity (including a cross-claim or\\n counterclaim
|
||||
in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results,
|
||||
or any portion\\n of any of the foregoing, constitutes infringement of
|
||||
intellectual property or other rights owned or licensable\\n by you, then
|
||||
any licenses granted to you under this Agreement shall terminate as of the
|
||||
date such litigation or\\n claim is filed or instituted. You will indemnify
|
||||
and hold harmless Meta from and against any claim by any third\\n party
|
||||
arising out of or related to your use or distribution of the Llama Materials.\\n\\n6.
|
||||
Term and Termination. The term of this Agreement will commence upon your acceptance
|
||||
of this Agreement or access\\nto the Llama Materials and will continue in
|
||||
full force and effect until terminated in accordance with the terms\\nand
|
||||
conditions herein. Meta may terminate this Agreement if you are in breach
|
||||
of any term or condition of this\\nAgreement. Upon termination of this Agreement,
|
||||
you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and
|
||||
7 shall survive the termination of this Agreement. \\n\\n7. Governing Law
|
||||
and Jurisdiction. This Agreement will be governed and construed under the
|
||||
laws of the State of \\nCalifornia without regard to choice of law principles,
|
||||
and the UN Convention on Contracts for the International\\nSale of Goods does
|
||||
not apply to this Agreement. The courts of California shall have exclusive
|
||||
jurisdiction of\\nany dispute arising out of this Agreement.\\n**Llama 3.2**
|
||||
**Acceptable Use Policy**\\n\\nMeta is committed to promoting safe and fair
|
||||
use of its tools and features, including Llama 3.2. If you access or use Llama
|
||||
3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D). The
|
||||
most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited
|
||||
Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You
|
||||
agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1.
|
||||
Violate the law or others\u2019 rights, including to:\\n 1. Engage in,
|
||||
promote, generate, contribute to, encourage, plan, incite, or further illegal
|
||||
or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n
|
||||
\ 2. Exploitation or harm to children, including the solicitation, creation,
|
||||
acquisition, or dissemination of child exploitative content or failure to
|
||||
report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation,
|
||||
and sexual violence\\n 4. The illegal distribution of information or
|
||||
materials to minors, including obscene materials, or failure to employ legally
|
||||
required age-gating in connection with such information or materials.\\n 5.
|
||||
Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage
|
||||
in, promote, incite, or facilitate the harassment, abuse, threatening, or
|
||||
bullying of individuals or groups of individuals\\n 2. Engage in, promote,
|
||||
incite, or facilitate discrimination or other unlawful or harmful conduct
|
||||
in the provision of employment, employment benefits, credit, housing, other
|
||||
economic benefits, or other essential goods and services\\n 3. Engage in
|
||||
the unauthorized or unlicensed practice of any profession including, but not
|
||||
limited to, financial, legal, medical/health, or related professional practices\\n
|
||||
\ 4. Collect, process, disclose, generate, or infer private or sensitive
|
||||
information about individuals, including information about individuals\u2019
|
||||
identity, health, or demographic information, unless you have obtained the
|
||||
right to do so in accordance with applicable law\\n 5. Engage in or facilitate
|
||||
any action or generate any content that infringes, misappropriates, or otherwise
|
||||
violates any third-party rights, including the outputs or results of any products
|
||||
or services using the Llama Materials\\n 6. Create, generate, or facilitate
|
||||
the creation of malicious code, malware, computer viruses or do anything else
|
||||
that could disable, overburden, interfere with or impair the proper working,
|
||||
integrity, operation or appearance of a website or computer system\\n 7.
|
||||
Engage in any action, or facilitate any action, to intentionally circumvent
|
||||
or remove usage restrictions or other safety measures, or to enable functionality
|
||||
disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in
|
||||
the planning or development of activities that present a risk of death or
|
||||
bodily harm to individuals, including use of Llama 3.2 related to the following:\\n
|
||||
\ 8. Military, warfare, nuclear industries or applications, espionage, use
|
||||
for materials or activities that are subject to the International Traffic
|
||||
Arms Regulations (ITAR) maintained by the United States Department of State
|
||||
or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical
|
||||
Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons
|
||||
(including weapon development)\\n 10. Illegal drugs and regulated/controlled
|
||||
substances\\n 11. Operation of critical infrastructure, transportation
|
||||
technologies, or heavy machinery\\n 12. Self-harm or harm to others, including
|
||||
suicide, cutting, and eating disorders\\n 13. Any content intended to incite
|
||||
or promote violence, abuse, or any infliction of bodily harm to an individual\\n3.
|
||||
Intentionally deceive or mislead others, including use of Llama 3.2 related
|
||||
to the following:\\n 14. Generating, promoting, or furthering fraud or
|
||||
the creation or promotion of disinformation\\n 15. Generating, promoting,
|
||||
or furthering defamatory content, including the creation of defamatory statements,
|
||||
images, or other content\\n 16. Generating, promoting, or further distributing
|
||||
spam\\n 17. Impersonating another individual without consent, authorization,
|
||||
or legal right\\n 18. Representing that the use of Llama 3.2 or outputs
|
||||
are human-generated\\n 19. Generating or facilitating false online engagement,
|
||||
including fake reviews and other means of fake online engagement\\n4. Fail
|
||||
to appropriately disclose to end users any known dangers of your AI system\\n5.
|
||||
Interact with third party tools, models, or software designed to generate
|
||||
unlawful content or engage in unlawful or harmful conduct and/or represent
|
||||
that the outputs of such tools, models, or software are associated with Meta
|
||||
or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama
|
||||
3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License
|
||||
Agreement are not being granted to you if you are an individual domiciled
|
||||
in, or a company with a principal place of business in, the European Union.
|
||||
This restriction does not apply to end users of a product or service that
|
||||
incorporates any such multimodal models.\\n\\nPlease report any violation
|
||||
of this Policy, software \u201Cbug,\u201D or other problems that could lead
|
||||
to a violation of this Policy through one of the following means:\\n\\n\\n\\n*
|
||||
Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n*
|
||||
Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n*
|
||||
Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n*
|
||||
Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama
|
||||
3.2: LlamaUseReport@meta.com\",\"modelfile\":\"# Modelfile generated by \\\"ollama
|
||||
show\\\"\\n# To build a new Modelfile based on this, replace FROM with:\\n#
|
||||
FROM llama3.2:3b\\n\\nFROM /root/.ollama/models/blobs/sha256-dde5aa3fc5ffc17176b5e8bdc82f587b24b2678c6c66101bf7da77af9f7ccdff\\nTEMPLATE
|
||||
\\\"\\\"\\\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting
|
||||
Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end
|
||||
}}\\n{{- if .Tools }}When you receive a tool call response, use the output
|
||||
to format an answer to the orginal user question.\\n\\nYou are a helpful assistant
|
||||
with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range
|
||||
$i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{-
|
||||
if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{-
|
||||
if and $.Tools $last }}\\n\\nGiven the following functions, please respond
|
||||
with a JSON for a function call with its proper arguments that best answers
|
||||
the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name,
|
||||
\\\"parameters\\\": dictionary of argument name and its value}. Do not use
|
||||
variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{-
|
||||
else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last
|
||||
}}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{-
|
||||
if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name
|
||||
}}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else
|
||||
}}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{
|
||||
end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
.Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
end }}\\n{{- end }}\\n{{- end }}\\\"\\\"\\\"\\nPARAMETER stop \\u003c|start_header_id|\\u003e\\nPARAMETER
|
||||
stop \\u003c|end_header_id|\\u003e\\nPARAMETER stop \\u003c|eot_id|\\u003e\\nLICENSE
|
||||
\\\"LLAMA 3.2 COMMUNITY LICENSE AGREEMENT\\nLlama 3.2 Version Release Date:
|
||||
September 25, 2024\\n\\n\u201CAgreement\u201D means the terms and conditions
|
||||
for use, reproduction, distribution \\nand modification of the Llama Materials
|
||||
set forth herein.\\n\\n\u201CDocumentation\u201D means the specifications,
|
||||
manuals and documentation accompanying Llama 3.2\\ndistributed by Meta at
|
||||
https://llama.meta.com/doc/overview.\\n\\n\u201CLicensee\u201D or \u201Cyou\u201D
|
||||
means you, or your employer or any other person or entity (if you are \\nentering
|
||||
into this Agreement on such person or entity\u2019s behalf), of the age required
|
||||
under\\napplicable laws, rules or regulations to provide legal consent and
|
||||
that has legal authority\\nto bind your employer or such other person or entity
|
||||
if you are entering in this Agreement\\non their behalf.\\n\\n\u201CLlama
|
||||
3.2\u201D means the foundational large language models and software and algorithms,
|
||||
including\\nmachine-learning model code, trained model weights, inference-enabling
|
||||
code, training-enabling code,\\nfine-tuning enabling code and other elements
|
||||
of the foregoing distributed by Meta at \\nhttps://www.llama.com/llama-downloads.\\n\\n\u201CLlama
|
||||
Materials\u201D means, collectively, Meta\u2019s proprietary Llama 3.2 and
|
||||
Documentation (and \\nany portion thereof) made available under this Agreement.\\n\\n\u201CMeta\u201D
|
||||
or \u201Cwe\u201D means Meta Platforms Ireland Limited (if you are located
|
||||
in or, \\nif you are an entity, your principal place of business is in the
|
||||
EEA or Switzerland) \\nand Meta Platforms, Inc. (if you are located outside
|
||||
of the EEA or Switzerland). \\n\\n\\nBy clicking \u201CI Accept\u201D below
|
||||
or by using or distributing any portion or element of the Llama Materials,\\nyou
|
||||
agree to be bound by this Agreement.\\n\\n\\n1. License Rights and Redistribution.\\n\\n
|
||||
\ a. Grant of Rights. You are granted a non-exclusive, worldwide, \\nnon-transferable
|
||||
and royalty-free limited license under Meta\u2019s intellectual property or
|
||||
other rights \\nowned by Meta embodied in the Llama Materials to use, reproduce,
|
||||
distribute, copy, create derivative works \\nof, and make modifications to
|
||||
the Llama Materials. \\n\\n b. Redistribution and Use. \\n\\n i.
|
||||
If you distribute or make available the Llama Materials (or any derivative
|
||||
works thereof), \\nor a product or service (including another AI model) that
|
||||
contains any of them, you shall (A) provide\\na copy of this Agreement with
|
||||
any such Llama Materials; and (B) prominently display \u201CBuilt with Llama\u201D\\non
|
||||
a related website, user interface, blogpost, about page, or product documentation.
|
||||
If you use the\\nLlama Materials or any outputs or results of the Llama Materials
|
||||
to create, train, fine tune, or\\notherwise improve an AI model, which is
|
||||
distributed or made available, you shall also include \u201CLlama\u201D\\nat
|
||||
the beginning of any such AI model name.\\n\\n ii. If you receive Llama
|
||||
Materials, or any derivative works thereof, from a Licensee as part\\nof an
|
||||
integrated end user product, then Section 2 of this Agreement will not apply
|
||||
to you. \\n\\n iii. You must retain in all copies of the Llama Materials
|
||||
that you distribute the \\nfollowing attribution notice within a \u201CNotice\u201D
|
||||
text file distributed as a part of such copies: \\n\u201CLlama 3.2 is licensed
|
||||
under the Llama 3.2 Community License, Copyright \xA9 Meta Platforms,\\nInc.
|
||||
All Rights Reserved.\u201D\\n\\n iv. Your use of the Llama Materials
|
||||
must comply with applicable laws and regulations\\n(including trade compliance
|
||||
laws and regulations) and adhere to the Acceptable Use Policy for\\nthe Llama
|
||||
Materials (available at https://www.llama.com/llama3_2/use-policy), which
|
||||
is hereby \\nincorporated by reference into this Agreement.\\n \\n2. Additional
|
||||
Commercial Terms. If, on the Llama 3.2 version release date, the monthly active
|
||||
users\\nof the products or services made available by or for Licensee, or
|
||||
Licensee\u2019s affiliates, \\nis greater than 700 million monthly active
|
||||
users in the preceding calendar month, you must request \\na license from
|
||||
Meta, which Meta may grant to you in its sole discretion, and you are not
|
||||
authorized to\\nexercise any of the rights under this Agreement unless or
|
||||
until Meta otherwise expressly grants you such rights.\\n\\n3. Disclaimer
|
||||
of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE LLAMA MATERIALS AND ANY
|
||||
OUTPUT AND \\nRESULTS THEREFROM ARE PROVIDED ON AN \u201CAS IS\u201D BASIS,
|
||||
WITHOUT WARRANTIES OF ANY KIND, AND META DISCLAIMS\\nALL WARRANTIES OF ANY
|
||||
KIND, BOTH EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES\\nOF
|
||||
TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
||||
YOU ARE SOLELY RESPONSIBLE\\nFOR DETERMINING THE APPROPRIATENESS OF USING
|
||||
OR REDISTRIBUTING THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED\\nWITH
|
||||
YOUR USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.\\n\\n4. Limitation
|
||||
of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE LIABLE UNDER ANY
|
||||
THEORY OF LIABILITY, \\nWHETHER IN CONTRACT, TORT, NEGLIGENCE, PRODUCTS LIABILITY,
|
||||
OR OTHERWISE, ARISING OUT OF THIS AGREEMENT, \\nFOR ANY LOST PROFITS OR ANY
|
||||
INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES,
|
||||
EVEN \\nIF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF
|
||||
ANY OF THE FOREGOING.\\n\\n5. Intellectual Property.\\n\\n a. No trademark
|
||||
licenses are granted under this Agreement, and in connection with the Llama
|
||||
Materials, \\nneither Meta nor Licensee may use any name or mark owned by
|
||||
or associated with the other or any of its affiliates, \\nexcept as required
|
||||
for reasonable and customary use in describing and redistributing the Llama
|
||||
Materials or as \\nset forth in this Section 5(a). Meta hereby grants you
|
||||
a license to use \u201CLlama\u201D (the \u201CMark\u201D) solely as required
|
||||
\\nto comply with the last sentence of Section 1.b.i. You will comply with
|
||||
Meta\u2019s brand guidelines (currently accessible \\nat https://about.meta.com/brand/resources/meta/company-brand/).
|
||||
All goodwill arising out of your use of the Mark \\nwill inure to the benefit
|
||||
of Meta.\\n\\n b. Subject to Meta\u2019s ownership of Llama Materials and
|
||||
derivatives made by or for Meta, with respect to any\\n derivative works
|
||||
and modifications of the Llama Materials that are made by you, as between
|
||||
you and Meta,\\n you are and will be the owner of such derivative works
|
||||
and modifications.\\n\\n c. If you institute litigation or other proceedings
|
||||
against Meta or any entity (including a cross-claim or\\n counterclaim
|
||||
in a lawsuit) alleging that the Llama Materials or Llama 3.2 outputs or results,
|
||||
or any portion\\n of any of the foregoing, constitutes infringement of
|
||||
intellectual property or other rights owned or licensable\\n by you, then
|
||||
any licenses granted to you under this Agreement shall terminate as of the
|
||||
date such litigation or\\n claim is filed or instituted. You will indemnify
|
||||
and hold harmless Meta from and against any claim by any third\\n party
|
||||
arising out of or related to your use or distribution of the Llama Materials.\\n\\n6.
|
||||
Term and Termination. The term of this Agreement will commence upon your acceptance
|
||||
of this Agreement or access\\nto the Llama Materials and will continue in
|
||||
full force and effect until terminated in accordance with the terms\\nand
|
||||
conditions herein. Meta may terminate this Agreement if you are in breach
|
||||
of any term or condition of this\\nAgreement. Upon termination of this Agreement,
|
||||
you shall delete and cease use of the Llama Materials. Sections 3,\\n4 and
|
||||
7 shall survive the termination of this Agreement. \\n\\n7. Governing Law
|
||||
and Jurisdiction. This Agreement will be governed and construed under the
|
||||
laws of the State of \\nCalifornia without regard to choice of law principles,
|
||||
and the UN Convention on Contracts for the International\\nSale of Goods does
|
||||
not apply to this Agreement. The courts of California shall have exclusive
|
||||
jurisdiction of\\nany dispute arising out of this Agreement.\\\"\\nLICENSE
|
||||
\\\"**Llama 3.2** **Acceptable Use Policy**\\n\\nMeta is committed to promoting
|
||||
safe and fair use of its tools and features, including Llama 3.2. If you access
|
||||
or use Llama 3.2, you agree to this Acceptable Use Policy (\u201C**Policy**\u201D).
|
||||
The most recent copy of this policy can be found at [https://www.llama.com/llama3_2/use-policy](https://www.llama.com/llama3_2/use-policy).\\n\\n**Prohibited
|
||||
Uses**\\n\\nWe want everyone to use Llama 3.2 safely and responsibly. You
|
||||
agree you will not use, or allow others to use, Llama 3.2 to:\\n\\n\\n\\n1.
|
||||
Violate the law or others\u2019 rights, including to:\\n 1. Engage in,
|
||||
promote, generate, contribute to, encourage, plan, incite, or further illegal
|
||||
or unlawful activity or content, such as:\\n 1. Violence or terrorism\\n
|
||||
\ 2. Exploitation or harm to children, including the solicitation, creation,
|
||||
acquisition, or dissemination of child exploitative content or failure to
|
||||
report Child Sexual Abuse Material\\n 3. Human trafficking, exploitation,
|
||||
and sexual violence\\n 4. The illegal distribution of information or
|
||||
materials to minors, including obscene materials, or failure to employ legally
|
||||
required age-gating in connection with such information or materials.\\n 5.
|
||||
Sexual solicitation\\n 6. Any other criminal activity\\n 1. Engage
|
||||
in, promote, incite, or facilitate the harassment, abuse, threatening, or
|
||||
bullying of individuals or groups of individuals\\n 2. Engage in, promote,
|
||||
incite, or facilitate discrimination or other unlawful or harmful conduct
|
||||
in the provision of employment, employment benefits, credit, housing, other
|
||||
economic benefits, or other essential goods and services\\n 3. Engage in
|
||||
the unauthorized or unlicensed practice of any profession including, but not
|
||||
limited to, financial, legal, medical/health, or related professional practices\\n
|
||||
\ 4. Collect, process, disclose, generate, or infer private or sensitive
|
||||
information about individuals, including information about individuals\u2019
|
||||
identity, health, or demographic information, unless you have obtained the
|
||||
right to do so in accordance with applicable law\\n 5. Engage in or facilitate
|
||||
any action or generate any content that infringes, misappropriates, or otherwise
|
||||
violates any third-party rights, including the outputs or results of any products
|
||||
or services using the Llama Materials\\n 6. Create, generate, or facilitate
|
||||
the creation of malicious code, malware, computer viruses or do anything else
|
||||
that could disable, overburden, interfere with or impair the proper working,
|
||||
integrity, operation or appearance of a website or computer system\\n 7.
|
||||
Engage in any action, or facilitate any action, to intentionally circumvent
|
||||
or remove usage restrictions or other safety measures, or to enable functionality
|
||||
disabled by Meta\\n2. Engage in, promote, incite, facilitate, or assist in
|
||||
the planning or development of activities that present a risk of death or
|
||||
bodily harm to individuals, including use of Llama 3.2 related to the following:\\n
|
||||
\ 8. Military, warfare, nuclear industries or applications, espionage, use
|
||||
for materials or activities that are subject to the International Traffic
|
||||
Arms Regulations (ITAR) maintained by the United States Department of State
|
||||
or to the U.S. Biological Weapons Anti-Terrorism Act of 1989 or the Chemical
|
||||
Weapons Convention Implementation Act of 1997\\n 9. Guns and illegal weapons
|
||||
(including weapon development)\\n 10. Illegal drugs and regulated/controlled
|
||||
substances\\n 11. Operation of critical infrastructure, transportation
|
||||
technologies, or heavy machinery\\n 12. Self-harm or harm to others, including
|
||||
suicide, cutting, and eating disorders\\n 13. Any content intended to incite
|
||||
or promote violence, abuse, or any infliction of bodily harm to an individual\\n3.
|
||||
Intentionally deceive or mislead others, including use of Llama 3.2 related
|
||||
to the following:\\n 14. Generating, promoting, or furthering fraud or
|
||||
the creation or promotion of disinformation\\n 15. Generating, promoting,
|
||||
or furthering defamatory content, including the creation of defamatory statements,
|
||||
images, or other content\\n 16. Generating, promoting, or further distributing
|
||||
spam\\n 17. Impersonating another individual without consent, authorization,
|
||||
or legal right\\n 18. Representing that the use of Llama 3.2 or outputs
|
||||
are human-generated\\n 19. Generating or facilitating false online engagement,
|
||||
including fake reviews and other means of fake online engagement\\n4. Fail
|
||||
to appropriately disclose to end users any known dangers of your AI system\\n5.
|
||||
Interact with third party tools, models, or software designed to generate
|
||||
unlawful content or engage in unlawful or harmful conduct and/or represent
|
||||
that the outputs of such tools, models, or software are associated with Meta
|
||||
or Llama 3.2\\n\\nWith respect to any multimodal models included in Llama
|
||||
3.2, the rights granted under Section 1(a) of the Llama 3.2 Community License
|
||||
Agreement are not being granted to you if you are an individual domiciled
|
||||
in, or a company with a principal place of business in, the European Union.
|
||||
This restriction does not apply to end users of a product or service that
|
||||
incorporates any such multimodal models.\\n\\nPlease report any violation
|
||||
of this Policy, software \u201Cbug,\u201D or other problems that could lead
|
||||
to a violation of this Policy through one of the following means:\\n\\n\\n\\n*
|
||||
Reporting issues with the model: [https://github.com/meta-llama/llama-models/issues](https://l.workplace.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeta-llama%2Fllama-models%2Fissues\\u0026h=AT0qV8W9BFT6NwihiOHRuKYQM_UnkzN_NmHMy91OT55gkLpgi4kQupHUl0ssR4dQsIQ8n3tfd0vtkobvsEvt1l4Ic6GXI2EeuHV8N08OG2WnbAmm0FL4ObkazC6G_256vN0lN9DsykCvCqGZ)\\n*
|
||||
Reporting risky content generated by the model: [developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback)\\n*
|
||||
Reporting bugs and security concerns: [facebook.com/whitehat/info](http://facebook.com/whitehat/info)\\n*
|
||||
Reporting violations of the Acceptable Use Policy or unlicensed uses of Llama
|
||||
3.2: LlamaUseReport@meta.com\\\"\\n\",\"parameters\":\"stop \\\"\\u003c|start_header_id|\\u003e\\\"\\nstop
|
||||
\ \\\"\\u003c|end_header_id|\\u003e\\\"\\nstop \\\"\\u003c|eot_id|\\u003e\\\"\",\"template\":\"\\u003c|start_header_id|\\u003esystem\\u003c|end_header_id|\\u003e\\n\\nCutting
|
||||
Knowledge Date: December 2023\\n\\n{{ if .System }}{{ .System }}\\n{{- end
|
||||
}}\\n{{- if .Tools }}When you receive a tool call response, use the output
|
||||
to format an answer to the orginal user question.\\n\\nYou are a helpful assistant
|
||||
with tool calling capabilities.\\n{{- end }}\\u003c|eot_id|\\u003e\\n{{- range
|
||||
$i, $_ := .Messages }}\\n{{- $last := eq (len (slice $.Messages $i)) 1 }}\\n{{-
|
||||
if eq .Role \\\"user\\\" }}\\u003c|start_header_id|\\u003euser\\u003c|end_header_id|\\u003e\\n{{-
|
||||
if and $.Tools $last }}\\n\\nGiven the following functions, please respond
|
||||
with a JSON for a function call with its proper arguments that best answers
|
||||
the given prompt.\\n\\nRespond in the format {\\\"name\\\": function name,
|
||||
\\\"parameters\\\": dictionary of argument name and its value}. Do not use
|
||||
variables.\\n\\n{{ range $.Tools }}\\n{{- . }}\\n{{ end }}\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{-
|
||||
else }}\\n\\n{{ .Content }}\\u003c|eot_id|\\u003e\\n{{- end }}{{ if $last
|
||||
}}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
end }}\\n{{- else if eq .Role \\\"assistant\\\" }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n{{-
|
||||
if .ToolCalls }}\\n{{ range .ToolCalls }}\\n{\\\"name\\\": \\\"{{ .Function.Name
|
||||
}}\\\", \\\"parameters\\\": {{ .Function.Arguments }}}{{ end }}\\n{{- else
|
||||
}}\\n\\n{{ .Content }}\\n{{- end }}{{ if not $last }}\\u003c|eot_id|\\u003e{{
|
||||
end }}\\n{{- else if eq .Role \\\"tool\\\" }}\\u003c|start_header_id|\\u003eipython\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
.Content }}\\u003c|eot_id|\\u003e{{ if $last }}\\u003c|start_header_id|\\u003eassistant\\u003c|end_header_id|\\u003e\\n\\n{{
|
||||
end }}\\n{{- end }}\\n{{- end }}\",\"details\":{\"parent_model\":\"\",\"format\":\"gguf\",\"family\":\"llama\",\"families\":[\"llama\"],\"parameter_size\":\"3.2B\",\"quantization_level\":\"Q4_K_M\"},\"model_info\":{\"general.architecture\":\"llama\",\"general.basename\":\"Llama-3.2\",\"general.file_type\":15,\"general.finetune\":\"Instruct\",\"general.languages\":[\"en\",\"de\",\"fr\",\"it\",\"pt\",\"hi\",\"es\",\"th\"],\"general.parameter_count\":3212749888,\"general.quantization_version\":2,\"general.size_label\":\"3B\",\"general.tags\":[\"facebook\",\"meta\",\"pytorch\",\"llama\",\"llama-3\",\"text-generation\"],\"general.type\":\"model\",\"llama.attention.head_count\":24,\"llama.attention.head_count_kv\":8,\"llama.attention.key_length\":128,\"llama.attention.layer_norm_rms_epsilon\":0.00001,\"llama.attention.value_length\":128,\"llama.block_count\":28,\"llama.context_length\":131072,\"llama.embedding_length\":3072,\"llama.feed_forward_length\":8192,\"llama.rope.dimension_count\":128,\"llama.rope.freq_base\":500000,\"llama.vocab_size\":128256,\"tokenizer.ggml.bos_token_id\":128000,\"tokenizer.ggml.eos_token_id\":128009,\"tokenizer.ggml.merges\":null,\"tokenizer.ggml.model\":\"gpt2\",\"tokenizer.ggml.pre\":\"llama-bpe\",\"tokenizer.ggml.token_type\":null,\"tokenizer.ggml.tokens\":null},\"tensors\":[{\"name\":\"rope_freqs.weight\",\"type\":\"F32\",\"shape\":[64]},{\"name\":\"token_embd.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,128256]},{\"name\":\"blk.0.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.0.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.0.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.0.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.0.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.0.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.1.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.1.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.1.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.1.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.1.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.ffn_down.weight\",\"type\":\"Q4_K_S\",\"shape\":[8192,3072]},{\"name\":\"blk.10.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.10.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.10.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.10.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.10.attn_v.weight\",\"type\":\"Q4_K_S\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.11.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.11.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.11.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.11.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.11.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.ffn_down.weight\",\"type\":\"Q3_K_M\",\"shape\":[8192,3072]},{\"name\":\"blk.12.ffn_gate.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_up.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,8192]},{\"name\":\"blk.12.ffn_norm.weight\",\"type\":\"F32\",\"shape\":[3072]},{\"name\":\"blk.12.attn_k.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.12.attn_output.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_q.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,3072]},{\"name\":\"blk.12.attn_v.weight\",\"type\":\"Q3_K_M\",\"shape\":[3072,1024]},{\"name\":\"blk.13.attn_norm.weight\",\"type\Line truncated
|
||||
headers:
|
||||
Content-Type:
|
||||
- application/json; charset=utf-8
|
||||
Date:
|
||||
- Wed, 07 May 2025 01:18:39 GMT
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -357,14 +357,7 @@ def test_convert_with_instructions():
|
||||
assert output.age == 30
|
||||
|
||||
|
||||
# Skip tests that call external APIs when running in CI/CD
|
||||
skip_external_api = pytest.mark.skipif(
|
||||
os.getenv("CI") is not None, reason="Skipping tests that call external API in CI/CD"
|
||||
)
|
||||
|
||||
|
||||
@skip_external_api
|
||||
@pytest.mark.vcr(filter_headers=["authorization"], record_mode="once")
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_converter_with_llama3_2_model():
|
||||
llm = LLM(model="ollama/llama3.2:3b", base_url="http://localhost:11434")
|
||||
sample_text = "Name: Alice Llama, Age: 30"
|
||||
@@ -381,8 +374,7 @@ def test_converter_with_llama3_2_model():
|
||||
assert output.age == 30
|
||||
|
||||
|
||||
@skip_external_api
|
||||
@pytest.mark.vcr(filter_headers=["authorization"], record_mode="once")
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_converter_with_llama3_1_model():
|
||||
llm = LLM(model="ollama/llama3.1", base_url="http://localhost:11434")
|
||||
sample_text = "Name: Alice Llama, Age: 30"
|
||||
@@ -399,13 +391,6 @@ def test_converter_with_llama3_1_model():
|
||||
assert output.age == 30
|
||||
|
||||
|
||||
# Skip tests that call external APIs when running in CI/CD
|
||||
skip_external_api = pytest.mark.skipif(
|
||||
os.getenv("CI") is not None, reason="Skipping tests that call external API in CI/CD"
|
||||
)
|
||||
|
||||
|
||||
@skip_external_api
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_converter_with_nested_model():
|
||||
llm = LLM(model="gpt-4o-mini")
|
||||
|
||||
@@ -738,7 +738,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "crewai"
|
||||
version = "0.118.0"
|
||||
version = "0.120.1"
|
||||
source = { editable = "." }
|
||||
dependencies = [
|
||||
{ name = "appdirs" },
|
||||
@@ -828,14 +828,14 @@ requires-dist = [
|
||||
{ name = "blinker", specifier = ">=1.9.0" },
|
||||
{ name = "chromadb", specifier = ">=0.5.23" },
|
||||
{ name = "click", specifier = ">=8.1.7" },
|
||||
{ name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.42.2" },
|
||||
{ name = "crewai-tools", marker = "extra == 'tools'", specifier = "~=0.45.0" },
|
||||
{ name = "docling", marker = "extra == 'docling'", specifier = ">=2.12.0" },
|
||||
{ name = "fastembed", marker = "extra == 'fastembed'", specifier = ">=0.4.1" },
|
||||
{ name = "instructor", specifier = ">=1.3.3" },
|
||||
{ name = "json-repair", specifier = ">=0.25.2" },
|
||||
{ name = "json5", specifier = ">=0.10.0" },
|
||||
{ name = "jsonref", specifier = ">=1.1.0" },
|
||||
{ name = "litellm", specifier = "==1.67.1" },
|
||||
{ name = "litellm", specifier = "==1.68.0" },
|
||||
{ name = "mem0ai", marker = "extra == 'mem0'", specifier = ">=0.1.94" },
|
||||
{ name = "openai", specifier = ">=1.13.3" },
|
||||
{ name = "openpyxl", specifier = ">=3.1.5" },
|
||||
@@ -879,7 +879,7 @@ dev = [
|
||||
|
||||
[[package]]
|
||||
name = "crewai-tools"
|
||||
version = "0.42.2"
|
||||
version = "0.45.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "chromadb" },
|
||||
@@ -894,9 +894,9 @@ dependencies = [
|
||||
{ name = "pytube" },
|
||||
{ name = "requests" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/17/34/9e63e2db53d8f5c30353f271a3240687a48e55204bbd176a057c0b7658c8/crewai_tools-0.42.2.tar.gz", hash = "sha256:69365ffb168cccfea970e09b308905aa5007cfec60024d731ffac1362a0153c0", size = 754967 }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/e9/3a/7070dcacef56702c5d83ad1a87021b1666ff1850ff80b3aa7540892406e7/crewai_tools-0.45.0.tar.gz", hash = "sha256:1b2e4eff3f928ce5fac308d6e648719a0e4718a1228ae98980aa0d74fc16bfc7", size = 909723 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/4e/43/0f70b95350084e5cb1e1d74e9acb9e18a89ba675b1d579c787c2662baba7/crewai_tools-0.42.2-py3-none-any.whl", hash = "sha256:13727fb68f0efefd21edeb281be3d66ff2f5a3b5029d4e6adef388b11fd5846a", size = 583933 },
|
||||
{ url = "https://files.pythonhosted.org/packages/6e/72/db45626973027c992df75cbc7ef391f18393d631be3bceb6388c1b9f01e1/crewai_tools-0.45.0-py3-none-any.whl", hash = "sha256:9dd34e4792c075ee7a72134aedaab268e78d0e350114fd7fe2426e691c5f52a3", size = 602659 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -2387,7 +2387,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "litellm"
|
||||
version = "1.67.1"
|
||||
version = "1.68.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "aiohttp" },
|
||||
@@ -2402,9 +2402,9 @@ dependencies = [
|
||||
{ name = "tiktoken" },
|
||||
{ name = "tokenizers" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/54/a4/bb3e9ae59e5a9857443448de7c04752630dc84cddcbd8cee037c0976f44f/litellm-1.67.1.tar.gz", hash = "sha256:78eab1bd3d759ec13aa4a05864356a4a4725634e78501db609d451bf72150ee7", size = 7242044 }
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/ba/22/138545b646303ca3f4841b69613c697b9d696322a1386083bb70bcbba60b/litellm-1.68.0.tar.gz", hash = "sha256:9fb24643db84dfda339b64bafca505a2eef857477afbc6e98fb56512c24dbbfa", size = 7314051 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/88/86/c14d3c24ae13c08296d068e6f79fd4bd17a0a07bddbda94990b87c35d20e/litellm-1.67.1-py3-none-any.whl", hash = "sha256:8fff5b2a16b63bb594b94d6c071ad0f27d3d8cd4348bd5acea2fd40c8e0c11e8", size = 7607266 },
|
||||
{ url = "https://files.pythonhosted.org/packages/10/af/1e344bc8aee41445272e677d802b774b1f8b34bdc3bb5697ba30f0fb5d52/litellm-1.68.0-py3-none-any.whl", hash = "sha256:3bca38848b1a5236b11aa6b70afa4393b60880198c939e582273f51a542d4759", size = 7684460 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||