mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 12:28:30 +00:00
Compare commits
7 Commits
fix/knowle
...
pydantic_f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
df00876f7a | ||
|
|
47121316d4 | ||
|
|
79e428aff8 | ||
|
|
440883e9e8 | ||
|
|
d3da73136c | ||
|
|
7272fd15ac | ||
|
|
518800239c |
@@ -146,81 +146,106 @@ Here are examples of how to use different types of knowledge sources:
|
||||
|
||||
### Text File Knowledge Source
|
||||
```python
|
||||
from crewai.knowledge.source import CrewDoclingSource
|
||||
from crewai.knowledge.source.crew_docling_source import CrewDoclingSource
|
||||
|
||||
# Create a text file knowledge source
|
||||
text_source = CrewDoclingSource(
|
||||
file_paths=["document.txt", "another.txt"]
|
||||
)
|
||||
|
||||
# Create knowledge with text file source
|
||||
knowledge = Knowledge(
|
||||
collection_name="text_knowledge",
|
||||
sources=[text_source]
|
||||
# Create crew with text file source on agents or crew level
|
||||
agent = Agent(
|
||||
...
|
||||
knowledge_sources=[text_source]
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
...
|
||||
knowledge_sources=[text_source]
|
||||
)
|
||||
```
|
||||
|
||||
### PDF Knowledge Source
|
||||
```python
|
||||
from crewai.knowledge.source import PDFKnowledgeSource
|
||||
from crewai.knowledge.source.pdf_knowledge_source import PDFKnowledgeSource
|
||||
|
||||
# Create a PDF knowledge source
|
||||
pdf_source = PDFKnowledgeSource(
|
||||
file_paths=["document.pdf", "another.pdf"]
|
||||
)
|
||||
|
||||
# Create knowledge with PDF source
|
||||
knowledge = Knowledge(
|
||||
collection_name="pdf_knowledge",
|
||||
sources=[pdf_source]
|
||||
# Create crew with PDF knowledge source on agents or crew level
|
||||
agent = Agent(
|
||||
...
|
||||
knowledge_sources=[pdf_source]
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
...
|
||||
knowledge_sources=[pdf_source]
|
||||
)
|
||||
```
|
||||
|
||||
### CSV Knowledge Source
|
||||
```python
|
||||
from crewai.knowledge.source import CSVKnowledgeSource
|
||||
from crewai.knowledge.source.csv_knowledge_source import CSVKnowledgeSource
|
||||
|
||||
# Create a CSV knowledge source
|
||||
csv_source = CSVKnowledgeSource(
|
||||
file_paths=["data.csv"]
|
||||
)
|
||||
|
||||
# Create knowledge with CSV source
|
||||
knowledge = Knowledge(
|
||||
collection_name="csv_knowledge",
|
||||
sources=[csv_source]
|
||||
# Create crew with CSV knowledge source or on agent level
|
||||
agent = Agent(
|
||||
...
|
||||
knowledge_sources=[csv_source]
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
...
|
||||
knowledge_sources=[csv_source]
|
||||
)
|
||||
```
|
||||
|
||||
### Excel Knowledge Source
|
||||
```python
|
||||
from crewai.knowledge.source import ExcelKnowledgeSource
|
||||
from crewai.knowledge.source.excel_knowledge_source import ExcelKnowledgeSource
|
||||
|
||||
# Create an Excel knowledge source
|
||||
excel_source = ExcelKnowledgeSource(
|
||||
file_paths=["spreadsheet.xlsx"]
|
||||
)
|
||||
|
||||
# Create knowledge with Excel source
|
||||
knowledge = Knowledge(
|
||||
collection_name="excel_knowledge",
|
||||
sources=[excel_source]
|
||||
# Create crew with Excel knowledge source on agents or crew level
|
||||
agent = Agent(
|
||||
...
|
||||
knowledge_sources=[excel_source]
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
...
|
||||
knowledge_sources=[excel_source]
|
||||
)
|
||||
```
|
||||
|
||||
### JSON Knowledge Source
|
||||
```python
|
||||
from crewai.knowledge.source import JSONKnowledgeSource
|
||||
from crewai.knowledge.source.json_knowledge_source import JSONKnowledgeSource
|
||||
|
||||
# Create a JSON knowledge source
|
||||
json_source = JSONKnowledgeSource(
|
||||
file_paths=["data.json"]
|
||||
)
|
||||
|
||||
# Create knowledge with JSON source
|
||||
knowledge = Knowledge(
|
||||
collection_name="json_knowledge",
|
||||
sources=[json_source]
|
||||
# Create crew with JSON knowledge source on agents or crew level
|
||||
agent = Agent(
|
||||
...
|
||||
knowledge_sources=[json_source]
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
...
|
||||
knowledge_sources=[json_source]
|
||||
)
|
||||
```
|
||||
|
||||
@@ -232,7 +257,7 @@ Knowledge sources automatically chunk content for better processing.
|
||||
You can configure chunking behavior in your knowledge sources:
|
||||
|
||||
```python
|
||||
from crewai.knowledge.source import StringKnowledgeSource
|
||||
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource
|
||||
|
||||
source = StringKnowledgeSource(
|
||||
content="Your content here",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "crewai"
|
||||
version = "0.86.0"
|
||||
version = "0.95.0"
|
||||
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"
|
||||
|
||||
@@ -14,7 +14,7 @@ warnings.filterwarnings(
|
||||
category=UserWarning,
|
||||
module="pydantic.main",
|
||||
)
|
||||
__version__ = "0.86.0"
|
||||
__version__ = "0.95.0"
|
||||
__all__ = [
|
||||
"Agent",
|
||||
"Crew",
|
||||
|
||||
@@ -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.86.0,<1.0.0"
|
||||
"crewai[tools]>=0.95.0,<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.86.0,<1.0.0",
|
||||
"crewai[tools]>=0.95.0,<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.86.0"
|
||||
"crewai[tools]>=0.95.0"
|
||||
]
|
||||
|
||||
[tool.crewai]
|
||||
|
||||
@@ -4,6 +4,7 @@ import sys
|
||||
import threading
|
||||
import warnings
|
||||
from contextlib import contextmanager
|
||||
from importlib import resources
|
||||
from typing import Any, Dict, List, Optional, Union
|
||||
|
||||
with warnings.catch_warnings():
|
||||
@@ -78,6 +79,7 @@ CONTEXT_WINDOW_USAGE_RATIO = 0.75
|
||||
def suppress_warnings():
|
||||
with warnings.catch_warnings():
|
||||
warnings.filterwarnings("ignore")
|
||||
warnings.filterwarnings("ignore", message="open_text is deprecated*", category=DeprecationWarning)
|
||||
|
||||
# Redirect stdout and stderr
|
||||
old_stdout = sys.stdout
|
||||
@@ -216,16 +218,17 @@ class LLM:
|
||||
return self.context_window_size
|
||||
|
||||
def set_callbacks(self, callbacks: List[Any]):
|
||||
callback_types = [type(callback) for callback in callbacks]
|
||||
for callback in litellm.success_callback[:]:
|
||||
if type(callback) in callback_types:
|
||||
litellm.success_callback.remove(callback)
|
||||
with suppress_warnings():
|
||||
callback_types = [type(callback) for callback in callbacks]
|
||||
for callback in litellm.success_callback[:]:
|
||||
if type(callback) in callback_types:
|
||||
litellm.success_callback.remove(callback)
|
||||
|
||||
for callback in litellm._async_success_callback[:]:
|
||||
if type(callback) in callback_types:
|
||||
litellm._async_success_callback.remove(callback)
|
||||
for callback in litellm._async_success_callback[:]:
|
||||
if type(callback) in callback_types:
|
||||
litellm._async_success_callback.remove(callback)
|
||||
|
||||
litellm.callbacks = callbacks
|
||||
litellm.callbacks = callbacks
|
||||
|
||||
def set_env_callbacks(self):
|
||||
"""
|
||||
@@ -246,19 +249,20 @@ class LLM:
|
||||
This will set `litellm.success_callback` to ["langfuse", "langsmith"] and
|
||||
`litellm.failure_callback` to ["langfuse"].
|
||||
"""
|
||||
success_callbacks_str = os.environ.get("LITELLM_SUCCESS_CALLBACKS", "")
|
||||
success_callbacks = []
|
||||
if success_callbacks_str:
|
||||
success_callbacks = [
|
||||
callback.strip() for callback in success_callbacks_str.split(",")
|
||||
]
|
||||
with suppress_warnings():
|
||||
success_callbacks_str = os.environ.get("LITELLM_SUCCESS_CALLBACKS", "")
|
||||
success_callbacks = []
|
||||
if success_callbacks_str:
|
||||
success_callbacks = [
|
||||
callback.strip() for callback in success_callbacks_str.split(",")
|
||||
]
|
||||
|
||||
failure_callbacks_str = os.environ.get("LITELLM_FAILURE_CALLBACKS", "")
|
||||
failure_callbacks = []
|
||||
if failure_callbacks_str:
|
||||
failure_callbacks = [
|
||||
callback.strip() for callback in failure_callbacks_str.split(",")
|
||||
]
|
||||
failure_callbacks_str = os.environ.get("LITELLM_FAILURE_CALLBACKS", "")
|
||||
failure_callbacks = []
|
||||
if failure_callbacks_str:
|
||||
failure_callbacks = [
|
||||
callback.strip() for callback in failure_callbacks_str.split(",")
|
||||
]
|
||||
|
||||
litellm.success_callback = success_callbacks
|
||||
litellm.failure_callback = failure_callbacks
|
||||
litellm.success_callback = success_callbacks
|
||||
litellm.failure_callback = failure_callbacks
|
||||
|
||||
@@ -41,6 +41,7 @@ from crewai.tools.base_tool import BaseTool
|
||||
from crewai.utilities.config import process_config
|
||||
from crewai.utilities.converter import Converter, convert_to_model
|
||||
from crewai.utilities.i18n import I18N
|
||||
from crewai.utilities.printer import Printer
|
||||
|
||||
|
||||
class Task(BaseModel):
|
||||
@@ -133,7 +134,6 @@ class Task(BaseModel):
|
||||
default=3, description="Maximum number of retries when guardrail fails"
|
||||
)
|
||||
retry_count: int = Field(default=0, description="Current number of retries")
|
||||
|
||||
start_time: Optional[datetime.datetime] = Field(
|
||||
default=None, description="Start time of the task execution"
|
||||
)
|
||||
@@ -391,10 +391,14 @@ class Task(BaseModel):
|
||||
)
|
||||
|
||||
self.retry_count += 1
|
||||
context = (
|
||||
f"### Previous attempt failed validation: {guardrail_result.error}\n\n\n"
|
||||
f"### Previous result:\n{task_output.raw}\n\n\n"
|
||||
"Try again, making sure to address the validation error."
|
||||
context = self.i18n.errors("validation_error").format(
|
||||
guardrail_result_error=guardrail_result.error,
|
||||
task_output=task_output.raw
|
||||
)
|
||||
printer = Printer()
|
||||
printer.print(
|
||||
content=f"Guardrail blocked, retrying, due to:{guardrail_result.error}\n",
|
||||
color="yellow",
|
||||
)
|
||||
return self._execute_core(agent, context, tools)
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import logging
|
||||
from typing import Optional, Union
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
@@ -54,12 +54,12 @@ class BaseAgentTool(BaseTool):
|
||||
) -> str:
|
||||
"""
|
||||
Execute delegation to an agent with case-insensitive and whitespace-tolerant matching.
|
||||
|
||||
|
||||
Args:
|
||||
agent_name: Name/role of the agent to delegate to (case-insensitive)
|
||||
task: The specific question or task to delegate
|
||||
context: Optional additional context for the task execution
|
||||
|
||||
|
||||
Returns:
|
||||
str: The execution result from the delegated agent or an error message
|
||||
if the agent cannot be found
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
import warnings
|
||||
from abc import ABC, abstractmethod
|
||||
from inspect import signature
|
||||
from typing import Any, Callable, Type, get_args, get_origin
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, create_model, validator
|
||||
from pydantic import (
|
||||
BaseModel,
|
||||
ConfigDict,
|
||||
Field,
|
||||
PydanticDeprecatedSince20,
|
||||
create_model,
|
||||
validator,
|
||||
)
|
||||
from pydantic import BaseModel as PydanticBaseModel
|
||||
|
||||
from crewai.tools.structured_tool import CrewStructuredTool
|
||||
|
||||
# Ignore all "PydanticDeprecatedSince20" warnings globally
|
||||
warnings.filterwarnings("ignore", category=PydanticDeprecatedSince20)
|
||||
|
||||
|
||||
class BaseTool(BaseModel, ABC):
|
||||
class _ArgsSchemaPlaceholder(PydanticBaseModel):
|
||||
|
||||
@@ -19,7 +19,15 @@ try:
|
||||
import agentops # type: ignore
|
||||
except ImportError:
|
||||
agentops = None
|
||||
OPENAI_BIGGER_MODELS = ["gpt-4", "gpt-4o", "o1-preview", "o1-mini", "o1", "o3", "o3-mini"]
|
||||
OPENAI_BIGGER_MODELS = [
|
||||
"gpt-4",
|
||||
"gpt-4o",
|
||||
"o1-preview",
|
||||
"o1-mini",
|
||||
"o1",
|
||||
"o3",
|
||||
"o3-mini",
|
||||
]
|
||||
|
||||
|
||||
class ToolUsageErrorException(Exception):
|
||||
@@ -104,7 +112,10 @@ class ToolUsage:
|
||||
self._printer.print(content=f"\n\n{error}\n", color="red")
|
||||
return error
|
||||
|
||||
if isinstance(tool, CrewStructuredTool) and tool.name == self._i18n.tools("add_image")["name"]: # type: ignore
|
||||
if (
|
||||
isinstance(tool, CrewStructuredTool)
|
||||
and tool.name == self._i18n.tools("add_image")["name"]
|
||||
): # type: ignore
|
||||
try:
|
||||
result = self._use(tool_string=tool_string, tool=tool, calling=calling)
|
||||
return result
|
||||
@@ -169,7 +180,9 @@ class ToolUsage:
|
||||
|
||||
if calling.arguments:
|
||||
try:
|
||||
acceptable_args = tool.args_schema.model_json_schema()["properties"].keys() # type: ignore
|
||||
acceptable_args = tool.args_schema.model_json_schema()[
|
||||
"properties"
|
||||
].keys() # type: ignore # Item "None" of "type[BaseModel] | None" has no attribute "schema"
|
||||
arguments = {
|
||||
k: v
|
||||
for k, v in calling.arguments.items()
|
||||
|
||||
@@ -34,7 +34,8 @@
|
||||
"tool_arguments_error": "Error: the Action Input is not a valid key, value dictionary.",
|
||||
"wrong_tool_name": "You tried to use the tool {tool}, but it doesn't exist. You must use one of the following tools, use one at time: {tools}.",
|
||||
"tool_usage_exception": "I encountered an error while trying to use the tool. This was the error: {error}.\n Tool {tool} accepts these inputs: {tool_inputs}",
|
||||
"agent_tool_execution_error": "Error executing task with agent '{agent_role}'. Error: {error}"
|
||||
"agent_tool_execution_error": "Error executing task with agent '{agent_role}'. Error: {error}",
|
||||
"validation_error": "### Previous attempt failed validation: {guardrail_result_error}\n\n\n### Previous result:\n{task_output}\n\n\nTry again, making sure to address the validation error."
|
||||
},
|
||||
"tools": {
|
||||
"delegate_work": "Delegate a specific task to one of the following coworkers: {coworkers}\nThe input to this tool should be the coworker, the task you want them to do, and ALL necessary context to execute the task, they know nothing about the task, so share absolute everything you know, don't reference things but instead explain them.",
|
||||
|
||||
@@ -31,10 +31,10 @@ class InternalInstructor:
|
||||
import instructor
|
||||
from litellm import completion
|
||||
|
||||
self._client = instructor.from_litellm(
|
||||
completion,
|
||||
mode=instructor.Mode.TOOLS,
|
||||
)
|
||||
self._client = instructor.from_litellm(
|
||||
completion,
|
||||
mode=instructor.Mode.TOOLS,
|
||||
)
|
||||
|
||||
def to_json(self):
|
||||
model = self.to_pydantic()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import json
|
||||
import logging
|
||||
from typing import Any, List, Optional
|
||||
|
||||
@@ -78,10 +77,10 @@ class CrewPlanner:
|
||||
def _get_agent_knowledge(self, task: Task) -> List[str]:
|
||||
"""
|
||||
Safely retrieve knowledge source content from the task's agent.
|
||||
|
||||
|
||||
Args:
|
||||
task: The task containing an agent with potential knowledge sources
|
||||
|
||||
|
||||
Returns:
|
||||
List[str]: A list of knowledge source strings
|
||||
"""
|
||||
@@ -108,6 +107,6 @@ class CrewPlanner:
|
||||
f"[{', '.join(str(tool) for tool in task.agent.tools)}]" if task.agent and task.agent.tools else '"agent has no tools"',
|
||||
f',\n "agent_knowledge": "[\\"{knowledge_list[0]}\\"]"' if knowledge_list and str(knowledge_list) != "None" else ""
|
||||
)
|
||||
|
||||
|
||||
tasks_summary.append(task_summary)
|
||||
return " ".join(tasks_summary)
|
||||
|
||||
@@ -7,7 +7,7 @@ from crewai.agents.agent_builder.base_agent import BaseAgent
|
||||
from crewai.tools.base_tool import BaseTool
|
||||
|
||||
|
||||
class TestAgent(BaseAgent):
|
||||
class MockAgent(BaseAgent):
|
||||
def execute_task(
|
||||
self,
|
||||
task: Any,
|
||||
@@ -29,7 +29,7 @@ class TestAgent(BaseAgent):
|
||||
|
||||
|
||||
def test_key():
|
||||
agent = TestAgent(
|
||||
agent = MockAgent(
|
||||
role="test role",
|
||||
goal="test goal",
|
||||
backstory="test backstory",
|
||||
|
||||
988
tests/cassettes/test_crew_with_failing_task_guardrails.yaml
Normal file
988
tests/cassettes/test_crew_with_failing_task_guardrails.yaml
Normal file
@@ -0,0 +1,988 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: !!binary |
|
||||
CpotCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkS8SwKEgoQY3Jld2FpLnRl
|
||||
bGVtZXRyeRLrCQoQmqG4kmRspGSV9KSDE2WH2hIInKDQhtLNgqEqDENyZXcgQ3JlYXRlZDABOeCb
|
||||
nCGokxcYQYDspiGokxcYShoKDmNyZXdhaV92ZXJzaW9uEggKBjAuOTUuMEoaCg5weXRob25fdmVy
|
||||
c2lvbhIICgYzLjExLjdKLgoIY3Jld19rZXkSIgogY2FhMWFlYjNkZDQzNjM4NjU2OGE1YzNmZTIx
|
||||
MDFhZjVKMQoHY3Jld19pZBImCiQxOWRmM2Y3MS1kYzk0LTQ0ZjYtYmY0Zi0zNjBjZjY2YjJiYWZK
|
||||
HAoMY3Jld19wcm9jZXNzEgwKCnNlcXVlbnRpYWxKEQoLY3Jld19tZW1vcnkSAhAAShoKFGNyZXdf
|
||||
bnVtYmVyX29mX3Rhc2tzEgIYAUobChVjcmV3X251bWJlcl9vZl9hZ2VudHMSAhgCSo4FCgtjcmV3
|
||||
X2FnZW50cxL+BAr7BFt7ImtleSI6ICI5N2Y0MTdmM2UxZTMxY2YwYzEwOWY3NTI5YWM4ZjZiYyIs
|
||||
ICJpZCI6ICJjMzIyZGMzMS0zZDNlLTRlOTctYjgwNi02MDU3ZTZjNGQxZmUiLCAicm9sZSI6ICJQ
|
||||
cm9ncmFtbWVyIiwgInZlcmJvc2U/IjogZmFsc2UsICJtYXhfaXRlciI6IDIwLCAibWF4X3JwbSI6
|
||||
IG51bGwsICJmdW5jdGlvbl9jYWxsaW5nX2xsbSI6ICIiLCAibGxtIjogImdwdC00by1taW5pIiwg
|
||||
ImRlbGVnYXRpb25fZW5hYmxlZD8iOiB0cnVlLCAiYWxsb3dfY29kZV9leGVjdXRpb24/IjogdHJ1
|
||||
ZSwgIm1heF9yZXRyeV9saW1pdCI6IDIsICJ0b29sc19uYW1lcyI6IFtdfSwgeyJrZXkiOiAiOTJh
|
||||
MjRiMGJjY2ZiMGRjMGU0MzlkN2Q1OWJhOWY2ZjMiLCAiaWQiOiAiYzMzMGJlNDAtYWQxMS00YjM2
|
||||
LWEwYTYtY2E4NWY5ZWFjYzZhIiwgInJvbGUiOiAiQ29kZSBSZXZpZXdlciIsICJ2ZXJib3NlPyI6
|
||||
IGZhbHNlLCAibWF4X2l0ZXIiOiAyMCwgIm1heF9ycG0iOiBudWxsLCAiZnVuY3Rpb25fY2FsbGlu
|
||||
Z19sbG0iOiAiIiwgImxsbSI6ICJncHQtNG8tbWluaSIsICJkZWxlZ2F0aW9uX2VuYWJsZWQ/Ijog
|
||||
dHJ1ZSwgImFsbG93X2NvZGVfZXhlY3V0aW9uPyI6IHRydWUsICJtYXhfcmV0cnlfbGltaXQiOiAy
|
||||
LCAidG9vbHNfbmFtZXMiOiBbXX1dSooCCgpjcmV3X3Rhc2tzEvsBCvgBW3sia2V5IjogIjc5YWEy
|
||||
N2RmNzRlNjI3OWUzNGE4ODg4MTc0ODFjNDBmIiwgImlkIjogIjEyYmNjNTAwLWExNzgtNGQyZS05
|
||||
NmQ4LWNkN2UwZmYzNzRhMCIsICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1
|
||||
dD8iOiBmYWxzZSwgImFnZW50X3JvbGUiOiAiUHJvZ3JhbW1lciIsICJhZ2VudF9rZXkiOiAiOTdm
|
||||
NDE3ZjNlMWUzMWNmMGMxMDlmNzUyOWFjOGY2YmMiLCAidG9vbHNfbmFtZXMiOiBbInRlc3QgdG9v
|
||||
bCJdfV16AhgBhQEAAQAAErMHChCxSjXt2/kv7CqAN8F+6ZMMEghR4jnKP0dHjSoMQ3JldyBDcmVh
|
||||
dGVkMAE5iBNAIqiTFxhBiGZHIqiTFxhKGgoOY3Jld2FpX3ZlcnNpb24SCAoGMC45NS4wShoKDnB5
|
||||
dGhvbl92ZXJzaW9uEggKBjMuMTEuN0ouCghjcmV3X2tleRIiCiA3NzNhODc2YjU3OTJkYjY5NTU5
|
||||
ZmU4MmMzYWQyMzU5ZkoxCgdjcmV3X2lkEiYKJDk2YjRkMmFlLTQ3ZDUtNDA0MS1hNjJhLTAyMmMy
|
||||
ZDUzZGZkZkocCgxjcmV3X3Byb2Nlc3MSDAoKc2VxdWVudGlhbEoRCgtjcmV3X21lbW9yeRICEABK
|
||||
GgoUY3Jld19udW1iZXJfb2ZfdGFza3MSAhgBShsKFWNyZXdfbnVtYmVyX29mX2FnZW50cxICGAFK
|
||||
2QIKC2NyZXdfYWdlbnRzEskCCsYCW3sia2V5IjogIjA3N2M3YTg2N2UyMGQwYTY4Yjk3NGU0NzYw
|
||||
NzEwOWYzIiwgImlkIjogIjVhOTJiYzM4LWFlNGEtNGViZC1iNTM2LTFkZGVjZDBkODBhYyIsICJy
|
||||
b2xlIjogIk11bHRpbW9kYWwgQW5hbHlzdCIsICJ2ZXJib3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIi
|
||||
OiAyMCwgIm1heF9ycG0iOiBudWxsLCAiZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiIiwgImxsbSI6
|
||||
ICJncHQtNG8tbWluaSIsICJkZWxlZ2F0aW9uX2VuYWJsZWQ/IjogZmFsc2UsICJhbGxvd19jb2Rl
|
||||
X2V4ZWN1dGlvbj8iOiBmYWxzZSwgIm1heF9yZXRyeV9saW1pdCI6IDIsICJ0b29sc19uYW1lcyI6
|
||||
IFtdfV1KhwIKCmNyZXdfdGFza3MS+AEK9QFbeyJrZXkiOiAiYzc1M2M2ODA2MzU5NDM2YTU4OTZm
|
||||
ZWMwOWJhYTEyNWUiLCAiaWQiOiAiNmRhZTcyNzktMDhjNS00OGNiLWI5OWItYmUyYjAwMzhkYzgz
|
||||
IiwgImFzeW5jX2V4ZWN1dGlvbj8iOiBmYWxzZSwgImh1bWFuX2lucHV0PyI6IGZhbHNlLCAiYWdl
|
||||
bnRfcm9sZSI6ICJNdWx0aW1vZGFsIEFuYWx5c3QiLCAiYWdlbnRfa2V5IjogIjA3N2M3YTg2N2Uy
|
||||
MGQwYTY4Yjk3NGU0NzYwNzEwOWYzIiwgInRvb2xzX25hbWVzIjogW119XXoCGAGFAQABAAASqQcK
|
||||
EIW4ljcZA7v+rs1zMkO4T0wSCIcyNxRlQUYoKgxDcmV3IENyZWF0ZWQwATngxKQiqJMXGEHIIasi
|
||||
qJMXGEoaCg5jcmV3YWlfdmVyc2lvbhIICgYwLjk1LjBKGgoOcHl0aG9uX3ZlcnNpb24SCAoGMy4x
|
||||
MS43Si4KCGNyZXdfa2V5EiIKIGNkNGRhNjRlNmRjM2I5ZWJkY2EyNDQ0YzFkNzMwMjgxSjEKB2Ny
|
||||
ZXdfaWQSJgokMDY0ZDJmMmYtYWEzMy00MmU4LTgyYjAtMjc1YzM4MzY0MjU0ShwKDGNyZXdfcHJv
|
||||
Y2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQAEoaChRjcmV3X251bWJlcl9vZl90
|
||||
YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIYAUrUAgoLY3Jld19hZ2VudHMSxAIK
|
||||
wQJbeyJrZXkiOiAiZDg1MTA2NGI5YjQ4NDE4YWMyNWY4ZDM3YzdlMzJiYjYiLCAiaWQiOiAiY2M4
|
||||
OWQ4YTAtYjk5Yy00MDNkLTg1ODYtNjgzZDA1MGVjMjlhIiwgInJvbGUiOiAiSW1hZ2UgQW5hbHlz
|
||||
dCIsICJ2ZXJib3NlPyI6IGZhbHNlLCAibWF4X2l0ZXIiOiAyMCwgIm1heF9ycG0iOiBudWxsLCAi
|
||||
ZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiIiwgImxsbSI6ICJncHQtNG8tbWluaSIsICJkZWxlZ2F0
|
||||
aW9uX2VuYWJsZWQ/IjogZmFsc2UsICJhbGxvd19jb2RlX2V4ZWN1dGlvbj8iOiBmYWxzZSwgIm1h
|
||||
eF9yZXRyeV9saW1pdCI6IDIsICJ0b29sc19uYW1lcyI6IFtdfV1KggIKCmNyZXdfdGFza3MS8wEK
|
||||
8AFbeyJrZXkiOiAiZWU4NzI5Njk0MTBjOTRjMzM0ZjljZmZhMGE0MTVmZWMiLCAiaWQiOiAiNDY3
|
||||
ZmVlNDktZDkzMi00Nzg1LWI1M2QtYTdkNWQxOTk3NzNmIiwgImFzeW5jX2V4ZWN1dGlvbj8iOiBm
|
||||
YWxzZSwgImh1bWFuX2lucHV0PyI6IGZhbHNlLCAiYWdlbnRfcm9sZSI6ICJJbWFnZSBBbmFseXN0
|
||||
IiwgImFnZW50X2tleSI6ICJkODUxMDY0YjliNDg0MThhYzI1ZjhkMzdjN2UzMmJiNiIsICJ0b29s
|
||||
c19uYW1lcyI6IFtdfV16AhgBhQEAAQAAEqMHChD9ptX+M+ebjYJvJRIgLS+sEgi86MlIS3PYaCoM
|
||||
Q3JldyBDcmVhdGVkMAE5MGUTI6iTFxhBqKoZI6iTFxhKGgoOY3Jld2FpX3ZlcnNpb24SCAoGMC45
|
||||
NS4wShoKDnB5dGhvbl92ZXJzaW9uEggKBjMuMTEuN0ouCghjcmV3X2tleRIiCiBlMzk1NjdiNTA1
|
||||
MjkwOWNhMzM0MDk4NGI4Mzg5ODBlYUoxCgdjcmV3X2lkEiYKJGQwM2I0NDRiLTBmMjAtNGY5Ni1i
|
||||
MjA0LWQ3YzQ4MzYyNGM0YkocCgxjcmV3X3Byb2Nlc3MSDAoKc2VxdWVudGlhbEoRCgtjcmV3X21l
|
||||
bW9yeRICEABKGgoUY3Jld19udW1iZXJfb2ZfdGFza3MSAhgBShsKFWNyZXdfbnVtYmVyX29mX2Fn
|
||||
ZW50cxICGAFKzgIKC2NyZXdfYWdlbnRzEr4CCrsCW3sia2V5IjogIjlkYzhjY2UwMzA0NjgxOTYw
|
||||
NDFiNGMzODBiNjE3Y2IwIiwgImlkIjogImM4Mjc0MmM1LWIzZjQtNDJkMC1iYjNmLTRkZWM4Y2Q4
|
||||
MDNmNCIsICJyb2xlIjogIkltYWdlIEFuYWx5c3QiLCAidmVyYm9zZT8iOiB0cnVlLCAibWF4X2l0
|
||||
ZXIiOiAyMCwgIm1heF9ycG0iOiBudWxsLCAiZnVuY3Rpb25fY2FsbGluZ19sbG0iOiAiIiwgImxs
|
||||
bSI6ICJncHQtNG8iLCAiZGVsZWdhdGlvbl9lbmFibGVkPyI6IGZhbHNlLCAiYWxsb3dfY29kZV9l
|
||||
eGVjdXRpb24/IjogZmFsc2UsICJtYXhfcmV0cnlfbGltaXQiOiAyLCAidG9vbHNfbmFtZXMiOiBb
|
||||
XX1dSoICCgpjcmV3X3Rhc2tzEvMBCvABW3sia2V5IjogImE5YTc2Y2E2OTU3ZDBiZmZhNjllYWIy
|
||||
MGI2NjQ4MjJiIiwgImlkIjogImU4ZDFmNWM0LWJhNDEtNGQyNy1iMGZmLWU3MmNiNDA0MWJhMyIs
|
||||
ICJhc3luY19leGVjdXRpb24/IjogZmFsc2UsICJodW1hbl9pbnB1dD8iOiBmYWxzZSwgImFnZW50
|
||||
X3JvbGUiOiAiSW1hZ2UgQW5hbHlzdCIsICJhZ2VudF9rZXkiOiAiOWRjOGNjZTAzMDQ2ODE5NjA0
|
||||
MWI0YzM4MGI2MTdjYjAiLCAidG9vbHNfbmFtZXMiOiBbXX1degIYAYUBAAEAABKOAgoQEQqgiftV
|
||||
3giK4F9VtKBNSBIIVzb/bxKe7icqDFRhc2sgQ3JlYXRlZDABOejyJyOokxcYQdhIKCOokxcYSi4K
|
||||
CGNyZXdfa2V5EiIKIGUzOTU2N2I1MDUyOTA5Y2EzMzQwOTg0YjgzODk4MGVhSjEKB2NyZXdfaWQS
|
||||
JgokZDAzYjQ0NGItMGYyMC00Zjk2LWIyMDQtZDdjNDgzNjI0YzRiSi4KCHRhc2tfa2V5EiIKIGE5
|
||||
YTc2Y2E2OTU3ZDBiZmZhNjllYWIyMGI2NjQ4MjJiSjEKB3Rhc2tfaWQSJgokZThkMWY1YzQtYmE0
|
||||
MS00ZDI3LWIwZmYtZTcyY2I0MDQxYmEzegIYAYUBAAEAABKXAQoQg/ksOtq7LbOO50GnDSOHQBII
|
||||
YX08fxOToKwqClRvb2wgVXNhZ2UwATlI/lskqJMXGEEAY2IkqJMXGEoaCg5jcmV3YWlfdmVyc2lv
|
||||
bhIICgYwLjk1LjBKIwoJdG9vbF9uYW1lEhYKFEFkZCBpbWFnZSB0byBjb250ZW50Sg4KCGF0dGVt
|
||||
cHRzEgIYAXoCGAGFAQABAAASqAcKEEmW3y/PMPhkfMJ/43EA4SASCHMJp4PEDhFLKgxDcmV3IENy
|
||||
ZWF0ZWQwATkAuLYlqJMXGEHAaL4lqJMXGEoaCg5jcmV3YWlfdmVyc2lvbhIICgYwLjk1LjBKGgoO
|
||||
cHl0aG9uX3ZlcnNpb24SCAoGMy4xMS43Si4KCGNyZXdfa2V5EiIKIDAwYjk0NmJlNDQzNzE0YjNh
|
||||
NDdjMjAxMDFlYjAyZDY2SjEKB2NyZXdfaWQSJgokNzJkZTEwZTQtNDkwZC00NDYwLTk1NzMtMmU5
|
||||
ZmM5YTMwMWE1ShwKDGNyZXdfcHJvY2VzcxIMCgpzZXF1ZW50aWFsShEKC2NyZXdfbWVtb3J5EgIQ
|
||||
AEoaChRjcmV3X251bWJlcl9vZl90YXNrcxICGAFKGwoVY3Jld19udW1iZXJfb2ZfYWdlbnRzEgIY
|
||||
AUrTAgoLY3Jld19hZ2VudHMSwwIKwAJbeyJrZXkiOiAiNGI4YTdiODQwZjk0YmY3ODE4YjVkNTNm
|
||||
Njg5MjdmZDUiLCAiaWQiOiAiN2IyMGMyODMtNGFiNy00MjFlLTgzM2QtOWE5N2UzNjFjM2Q2Iiwg
|
||||
InJvbGUiOiAiUmVwb3J0IFdyaXRlciIsICJ2ZXJib3NlPyI6IHRydWUsICJtYXhfaXRlciI6IDIw
|
||||
LCAibWF4X3JwbSI6IG51bGwsICJmdW5jdGlvbl9jYWxsaW5nX2xsbSI6ICIiLCAibGxtIjogImdw
|
||||
dC00by1taW5pIiwgImRlbGVnYXRpb25fZW5hYmxlZD8iOiBmYWxzZSwgImFsbG93X2NvZGVfZXhl
|
||||
Y3V0aW9uPyI6IGZhbHNlLCAibWF4X3JldHJ5X2xpbWl0IjogMiwgInRvb2xzX25hbWVzIjogW119
|
||||
XUqCAgoKY3Jld190YXNrcxLzAQrwAVt7ImtleSI6ICJiNzEzYzgyZmViOTJjOWY1YzU4YjQwYTk3
|
||||
NTU2YjdhYyIsICJpZCI6ICJhZjFhOTYxOC05MjRhLTRlNzktYjZlYi01OGRhMTM2OTU5YzUiLCAi
|
||||
YXN5bmNfZXhlY3V0aW9uPyI6IGZhbHNlLCAiaHVtYW5faW5wdXQ/IjogZmFsc2UsICJhZ2VudF9y
|
||||
b2xlIjogIlJlcG9ydCBXcml0ZXIiLCAiYWdlbnRfa2V5IjogIjRiOGE3Yjg0MGY5NGJmNzgxOGI1
|
||||
ZDUzZjY4OTI3ZmQ1IiwgInRvb2xzX25hbWVzIjogW119XXoCGAGFAQABAAASjgIKEIWRa5ZrcXnJ
|
||||
3rJdzzJ56j8SCKr45vrXkeyTKgxUYXNrIENyZWF0ZWQwATn488glqJMXGEHoScklqJMXGEouCghj
|
||||
cmV3X2tleRIiCiAwMGI5NDZiZTQ0MzcxNGIzYTQ3YzIwMTAxZWIwMmQ2NkoxCgdjcmV3X2lkEiYK
|
||||
JDcyZGUxMGU0LTQ5MGQtNDQ2MC05NTczLTJlOWZjOWEzMDFhNUouCgh0YXNrX2tleRIiCiBiNzEz
|
||||
YzgyZmViOTJjOWY1YzU4YjQwYTk3NTU2YjdhY0oxCgd0YXNrX2lkEiYKJGFmMWE5NjE4LTkyNGEt
|
||||
NGU3OS1iNmViLTU4ZGExMzY5NTljNXoCGAGFAQABAAA=
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '5789'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
User-Agent:
|
||||
- OTel-OTLP-Exporter-Python/1.27.0
|
||||
method: POST
|
||||
uri: https://telemetry.crewai.com:4319/v1/traces
|
||||
response:
|
||||
body:
|
||||
string: "\n\0"
|
||||
headers:
|
||||
Content-Length:
|
||||
- '2'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:17 GMT
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Report Writer. You''re
|
||||
an expert at writing structured reports.\nYour personal goal is: Create properly
|
||||
formatted reports\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: Write a report about AI with exactly
|
||||
3 key points.\n\nThis is the expect criteria for your final answer: A properly
|
||||
formatted report\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:"], "stream": false}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '934'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- _cfuvid=v_wJZ5m7qCjrnRfks0gT2GAk9yR14BdIDAQiQR7xxI8-1735266215000-0.0.1.1-604800000
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.7
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-Am40qBAFJtuaFsOlTsBHFCoYUvLhN\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1736018532,\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: \\n\\n# Report on Artificial Intelligence (AI)\\n\\n## Introduction\\nArtificial
|
||||
Intelligence (AI) is a rapidly evolving technology that simulates human intelligence
|
||||
processes by machines, particularly computer systems. AI has a profound impact
|
||||
on various sectors, enhancing efficiency, improving decision-making, and leading
|
||||
to groundbreaking innovations. This report highlights three key points regarding
|
||||
the significance and implications of AI technology.\\n\\n## Key Point 1: Transformative
|
||||
Potential in Various Industries\\nAI's transformative potential is evident across
|
||||
multiple industries, including healthcare, finance, transportation, and agriculture.
|
||||
In healthcare, AI algorithms can analyze complex medical data, leading to improved
|
||||
diagnostics, personalized medicine, and predictive analytics, thereby enhancing
|
||||
patient outcomes. The financial sector employs AI for risk management, fraud
|
||||
detection, and automated trading, which increases operational efficiency and
|
||||
minimizes human error. In transportation, AI is integral to the development
|
||||
of autonomous vehicles and smart traffic systems, optimizing routes and reducing
|
||||
congestion. Furthermore, agriculture benefits from AI applications through precision
|
||||
farming, which maximizes yield while minimizing environmental impact.\\n\\n##
|
||||
Key Point 2: Ethical Considerations and Challenges\\nAs AI technologies become
|
||||
more pervasive, ethical considerations arise regarding their implementation
|
||||
and use. Concerns include data privacy, algorithmic bias, and the displacement
|
||||
of jobs due to automation. Ensuring that AI systems are transparent, fair, and
|
||||
accountable is crucial in addressing these issues. Organizations must develop
|
||||
comprehensive guidelines and regulatory frameworks to mitigate bias in AI algorithms
|
||||
and protect user data. Moreover, addressing the social implications of AI, such
|
||||
as potential job displacement, is essential, necessitating investment in workforce
|
||||
retraining and education to prepare for an AI-driven economy.\\n\\n## Key Point
|
||||
3: Future Directions and Developments\\nLooking ahead, the future of AI promises
|
||||
continued advancements and integration into everyday life. Emerging trends include
|
||||
the development of explainable AI (XAI), enhancing interpretability and understanding
|
||||
of AI decision-making processes. Advances in natural language processing (NLP)
|
||||
will facilitate better human-computer interactions, allowing for more intuitive
|
||||
applications. Additionally, as AI technology becomes increasingly sophisticated,
|
||||
its role in addressing global challenges, such as climate change and healthcare
|
||||
disparities, is expected to expand. Stakeholders must collaborate to ensure
|
||||
that these developments align with ethical standards and societal needs, fostering
|
||||
a responsible AI future.\\n\\n## Conclusion\\nArtificial Intelligence stands
|
||||
at the forefront of technological innovation, with the potential to revolutionize
|
||||
industries and address complex global challenges. However, it is imperative
|
||||
to navigate the ethical considerations and challenges it poses. By fostering
|
||||
responsible AI development, we can harness its transformative power while ensuring
|
||||
equitability and transparency for future generations.\",\n \"refusal\":
|
||||
null\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n
|
||||
\ }\n ],\n \"usage\": {\n \"prompt_tokens\": 170,\n \"completion_tokens\":
|
||||
524,\n \"total_tokens\": 694,\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_0aa8d3e20b\"\n}\n"
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8fcd9890790e0133-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:19 GMT
|
||||
Server:
|
||||
- cloudflare
|
||||
Set-Cookie:
|
||||
- __cf_bm=pumYGlf1gsbVoFNTM1vh9Okj41SgxP3y65T5YWWPU1U-1736018539-1.0.1.1-wmaotkWMviN4lKh6M3P04A8p61Ehm.rTehDpsJhxYhNBNU5.kznMCa3cNXePaEbsKkk4PU2QcWjHj2C7yDrjkw;
|
||||
path=/; expires=Sat, 04-Jan-25 19:52:19 GMT; domain=.api.openai.com; HttpOnly;
|
||||
Secure; SameSite=None
|
||||
- _cfuvid=SlnUP7AT9jJlQiN.Fm1c7MDyo78_hBRAz8PoabvHVSU-1736018539826-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
|
||||
openai-organization:
|
||||
- crewai-iuxna1
|
||||
openai-processing-ms:
|
||||
- '7717'
|
||||
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:
|
||||
- '149999790'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_08d237d56b0168a0f4512417380485db
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: !!binary |
|
||||
Cs4CCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSpQIKEgoQY3Jld2FpLnRl
|
||||
bGVtZXRyeRKOAgoQw9qUJPsh6jiJZX4qW3ry4hIIT7E0SNH7Ub4qDFRhc2sgQ3JlYXRlZDABOQBO
|
||||
BAmqkxcYQQgdBQmqkxcYSi4KCGNyZXdfa2V5EiIKIDAwYjk0NmJlNDQzNzE0YjNhNDdjMjAxMDFl
|
||||
YjAyZDY2SjEKB2NyZXdfaWQSJgokNzJkZTEwZTQtNDkwZC00NDYwLTk1NzMtMmU5ZmM5YTMwMWE1
|
||||
Si4KCHRhc2tfa2V5EiIKIGI3MTNjODJmZWI5MmM5ZjVjNThiNDBhOTc1NTZiN2FjSjEKB3Rhc2tf
|
||||
aWQSJgokYWYxYTk2MTgtOTI0YS00ZTc5LWI2ZWItNThkYTEzNjk1OWM1egIYAYUBAAEAAA==
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '337'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
User-Agent:
|
||||
- OTel-OTLP-Exporter-Python/1.27.0
|
||||
method: POST
|
||||
uri: https://telemetry.crewai.com:4319/v1/traces
|
||||
response:
|
||||
body:
|
||||
string: "\n\0"
|
||||
headers:
|
||||
Content-Length:
|
||||
- '2'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:22 GMT
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Report Writer. You''re
|
||||
an expert at writing structured reports.\nYour personal goal is: Create properly
|
||||
formatted reports\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: Write a report about AI with exactly
|
||||
3 key points.\n\nThis is the expect criteria for your final answer: A properly
|
||||
formatted report\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.\n\nThis is the context you''re working with:\n### Previous attempt
|
||||
failed validation: Output must start with ''REPORT:'' no formatting, just the
|
||||
word REPORT\n\n\n### Previous result:\n# Report on Artificial Intelligence (AI)\n\n##
|
||||
Introduction\nArtificial Intelligence (AI) is a rapidly evolving technology
|
||||
that simulates human intelligence processes by machines, particularly computer
|
||||
systems. AI has a profound impact on various sectors, enhancing efficiency,
|
||||
improving decision-making, and leading to groundbreaking innovations. This report
|
||||
highlights three key points regarding the significance and implications of AI
|
||||
technology.\n\n## Key Point 1: Transformative Potential in Various Industries\nAI''s
|
||||
transformative potential is evident across multiple industries, including healthcare,
|
||||
finance, transportation, and agriculture. In healthcare, AI algorithms can analyze
|
||||
complex medical data, leading to improved diagnostics, personalized medicine,
|
||||
and predictive analytics, thereby enhancing patient outcomes. The financial
|
||||
sector employs AI for risk management, fraud detection, and automated trading,
|
||||
which increases operational efficiency and minimizes human error. In transportation,
|
||||
AI is integral to the development of autonomous vehicles and smart traffic systems,
|
||||
optimizing routes and reducing congestion. Furthermore, agriculture benefits
|
||||
from AI applications through precision farming, which maximizes yield while
|
||||
minimizing environmental impact.\n\n## Key Point 2: Ethical Considerations and
|
||||
Challenges\nAs AI technologies become more pervasive, ethical considerations
|
||||
arise regarding their implementation and use. Concerns include data privacy,
|
||||
algorithmic bias, and the displacement of jobs due to automation. Ensuring that
|
||||
AI systems are transparent, fair, and accountable is crucial in addressing these
|
||||
issues. Organizations must develop comprehensive guidelines and regulatory frameworks
|
||||
to mitigate bias in AI algorithms and protect user data. Moreover, addressing
|
||||
the social implications of AI, such as potential job displacement, is essential,
|
||||
necessitating investment in workforce retraining and education to prepare for
|
||||
an AI-driven economy.\n\n## Key Point 3: Future Directions and Developments\nLooking
|
||||
ahead, the future of AI promises continued advancements and integration into
|
||||
everyday life. Emerging trends include the development of explainable AI (XAI),
|
||||
enhancing interpretability and understanding of AI decision-making processes.
|
||||
Advances in natural language processing (NLP) will facilitate better human-computer
|
||||
interactions, allowing for more intuitive applications. Additionally, as AI
|
||||
technology becomes increasingly sophisticated, its role in addressing global
|
||||
challenges, such as climate change and healthcare disparities, is expected to
|
||||
expand. Stakeholders must collaborate to ensure that these developments align
|
||||
with ethical standards and societal needs, fostering a responsible AI future.\n\n##
|
||||
Conclusion\nArtificial Intelligence stands at the forefront of technological
|
||||
innovation, with the potential to revolutionize industries and address complex
|
||||
global challenges. However, it is imperative to navigate the ethical considerations
|
||||
and challenges it poses. By fostering responsible AI development, we can harness
|
||||
its transformative power while ensuring equitability and transparency for future
|
||||
generations.\n\n\nTry again, making sure to address the validation error.\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}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '4351'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- _cfuvid=SlnUP7AT9jJlQiN.Fm1c7MDyo78_hBRAz8PoabvHVSU-1736018539826-0.0.1.1-604800000;
|
||||
__cf_bm=pumYGlf1gsbVoFNTM1vh9Okj41SgxP3y65T5YWWPU1U-1736018539-1.0.1.1-wmaotkWMviN4lKh6M3P04A8p61Ehm.rTehDpsJhxYhNBNU5.kznMCa3cNXePaEbsKkk4PU2QcWjHj2C7yDrjkw
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.7
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-Am40yJsMPHsTOmn9Obwyx2caqoJ1R\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1736018540,\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: \\nREPORT: \\n\\n# Report on Artificial Intelligence (AI)\\n\\n##
|
||||
Introduction\\nArtificial Intelligence (AI) is a rapidly evolving technology
|
||||
that simulates human intelligence processes by machines, particularly computer
|
||||
systems. AI has a profound impact on various sectors, enhancing efficiency,
|
||||
improving decision-making, and leading to groundbreaking innovations. This report
|
||||
highlights three key points regarding the significance and implications of AI
|
||||
technology.\\n\\n## Key Point 1: Transformative Potential in Various Industries\\nAI's
|
||||
transformative potential is evident across multiple industries, including healthcare,
|
||||
finance, transportation, and agriculture. In healthcare, AI algorithms can analyze
|
||||
complex medical data, leading to improved diagnostics, personalized medicine,
|
||||
and predictive analytics, thereby enhancing patient outcomes. The financial
|
||||
sector employs AI for risk management, fraud detection, and automated trading,
|
||||
which increases operational efficiency and minimizes human error. In transportation,
|
||||
AI is integral to the development of autonomous vehicles and smart traffic systems,
|
||||
optimizing routes and reducing congestion. Furthermore, agriculture benefits
|
||||
from AI applications through precision farming, which maximizes yield while
|
||||
minimizing environmental impact.\\n\\n## Key Point 2: Ethical Considerations
|
||||
and Challenges\\nAs AI technologies become more pervasive, ethical considerations
|
||||
arise regarding their implementation and use. Concerns include data privacy,
|
||||
algorithmic bias, and the displacement of jobs due to automation. Ensuring that
|
||||
AI systems are transparent, fair, and accountable is crucial in addressing these
|
||||
issues. Organizations must develop comprehensive guidelines and regulatory frameworks
|
||||
to mitigate bias in AI algorithms and protect user data. Moreover, addressing
|
||||
the social implications of AI, such as potential job displacement, is essential,
|
||||
necessitating investment in workforce retraining and education to prepare for
|
||||
an AI-driven economy.\\n\\n## Key Point 3: Future Directions and Developments\\nLooking
|
||||
ahead, the future of AI promises continued advancements and integration into
|
||||
everyday life. Emerging trends include the development of explainable AI (XAI),
|
||||
enhancing interpretability and understanding of AI decision-making processes.
|
||||
Advances in natural language processing (NLP) will facilitate better human-computer
|
||||
interactions, allowing for more intuitive applications. Additionally, as AI
|
||||
technology becomes increasingly sophisticated, its role in addressing global
|
||||
challenges, such as climate change and healthcare disparities, is expected to
|
||||
expand. Stakeholders must collaborate to ensure that these developments align
|
||||
with ethical standards and societal needs, fostering a responsible AI future.\\n\\n##
|
||||
Conclusion\\nArtificial Intelligence stands at the forefront of technological
|
||||
innovation, with the potential to revolutionize industries and address complex
|
||||
global challenges. However, it is imperative to navigate the ethical considerations
|
||||
and challenges it poses. By fostering responsible AI development, we can harness
|
||||
its transformative power while ensuring equitability and transparency for future
|
||||
generations.\",\n \"refusal\": null\n },\n \"logprobs\": null,\n
|
||||
\ \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\":
|
||||
725,\n \"completion_tokens\": 526,\n \"total_tokens\": 1251,\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_0aa8d3e20b\"\n}\n"
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8fcd98c269880133-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:28 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:
|
||||
- '8620'
|
||||
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:
|
||||
- '149998942'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_de480c9e17954e77dece1b2fe013a0d0
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: !!binary |
|
||||
Cs4CCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSpQIKEgoQY3Jld2FpLnRl
|
||||
bGVtZXRyeRKOAgoQCwIBgw9XNdGpuGOOIANe2hIIriM3k2t+0NQqDFRhc2sgQ3JlYXRlZDABOcjF
|
||||
ABuskxcYQfBlARuskxcYSi4KCGNyZXdfa2V5EiIKIDAwYjk0NmJlNDQzNzE0YjNhNDdjMjAxMDFl
|
||||
YjAyZDY2SjEKB2NyZXdfaWQSJgokNzJkZTEwZTQtNDkwZC00NDYwLTk1NzMtMmU5ZmM5YTMwMWE1
|
||||
Si4KCHRhc2tfa2V5EiIKIGI3MTNjODJmZWI5MmM5ZjVjNThiNDBhOTc1NTZiN2FjSjEKB3Rhc2tf
|
||||
aWQSJgokYWYxYTk2MTgtOTI0YS00ZTc5LWI2ZWItNThkYTEzNjk1OWM1egIYAYUBAAEAAA==
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '337'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
User-Agent:
|
||||
- OTel-OTLP-Exporter-Python/1.27.0
|
||||
method: POST
|
||||
uri: https://telemetry.crewai.com:4319/v1/traces
|
||||
response:
|
||||
body:
|
||||
string: "\n\0"
|
||||
headers:
|
||||
Content-Length:
|
||||
- '2'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:32 GMT
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Report Writer. You''re
|
||||
an expert at writing structured reports.\nYour personal goal is: Create properly
|
||||
formatted reports\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: Write a report about AI with exactly
|
||||
3 key points.\n\nThis is the expect criteria for your final answer: A properly
|
||||
formatted report\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.\n\nThis is the context you''re working with:\n### Previous attempt
|
||||
failed validation: Output must end with ''END REPORT'' no formatting, just the
|
||||
word END REPORT\n\n\n### Previous result:\nREPORT: \n\n# Report on Artificial
|
||||
Intelligence (AI)\n\n## Introduction\nArtificial Intelligence (AI) is a rapidly
|
||||
evolving technology that simulates human intelligence processes by machines,
|
||||
particularly computer systems. AI has a profound impact on various sectors,
|
||||
enhancing efficiency, improving decision-making, and leading to groundbreaking
|
||||
innovations. This report highlights three key points regarding the significance
|
||||
and implications of AI technology.\n\n## Key Point 1: Transformative Potential
|
||||
in Various Industries\nAI''s transformative potential is evident across multiple
|
||||
industries, including healthcare, finance, transportation, and agriculture.
|
||||
In healthcare, AI algorithms can analyze complex medical data, leading to improved
|
||||
diagnostics, personalized medicine, and predictive analytics, thereby enhancing
|
||||
patient outcomes. The financial sector employs AI for risk management, fraud
|
||||
detection, and automated trading, which increases operational efficiency and
|
||||
minimizes human error. In transportation, AI is integral to the development
|
||||
of autonomous vehicles and smart traffic systems, optimizing routes and reducing
|
||||
congestion. Furthermore, agriculture benefits from AI applications through precision
|
||||
farming, which maximizes yield while minimizing environmental impact.\n\n##
|
||||
Key Point 2: Ethical Considerations and Challenges\nAs AI technologies become
|
||||
more pervasive, ethical considerations arise regarding their implementation
|
||||
and use. Concerns include data privacy, algorithmic bias, and the displacement
|
||||
of jobs due to automation. Ensuring that AI systems are transparent, fair, and
|
||||
accountable is crucial in addressing these issues. Organizations must develop
|
||||
comprehensive guidelines and regulatory frameworks to mitigate bias in AI algorithms
|
||||
and protect user data. Moreover, addressing the social implications of AI, such
|
||||
as potential job displacement, is essential, necessitating investment in workforce
|
||||
retraining and education to prepare for an AI-driven economy.\n\n## Key Point
|
||||
3: Future Directions and Developments\nLooking ahead, the future of AI promises
|
||||
continued advancements and integration into everyday life. Emerging trends include
|
||||
the development of explainable AI (XAI), enhancing interpretability and understanding
|
||||
of AI decision-making processes. Advances in natural language processing (NLP)
|
||||
will facilitate better human-computer interactions, allowing for more intuitive
|
||||
applications. Additionally, as AI technology becomes increasingly sophisticated,
|
||||
its role in addressing global challenges, such as climate change and healthcare
|
||||
disparities, is expected to expand. Stakeholders must collaborate to ensure
|
||||
that these developments align with ethical standards and societal needs, fostering
|
||||
a responsible AI future.\n\n## Conclusion\nArtificial Intelligence stands at
|
||||
the forefront of technological innovation, with the potential to revolutionize
|
||||
industries and address complex global challenges. However, it is imperative
|
||||
to navigate the ethical considerations and challenges it poses. By fostering
|
||||
responsible AI development, we can harness its transformative power while ensuring
|
||||
equitability and transparency for future generations.\n\n\nTry again, making
|
||||
sure to address the validation error.\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}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '4369'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- _cfuvid=SlnUP7AT9jJlQiN.Fm1c7MDyo78_hBRAz8PoabvHVSU-1736018539826-0.0.1.1-604800000;
|
||||
__cf_bm=pumYGlf1gsbVoFNTM1vh9Okj41SgxP3y65T5YWWPU1U-1736018539-1.0.1.1-wmaotkWMviN4lKh6M3P04A8p61Ehm.rTehDpsJhxYhNBNU5.kznMCa3cNXePaEbsKkk4PU2QcWjHj2C7yDrjkw
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.7
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-Am4176wzYnk3HmSTkkakM4yl6xVYS\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1736018549,\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: \\n\\n# Report on Artificial Intelligence (AI)\\n\\n## Introduction\\nArtificial
|
||||
Intelligence (AI) is a revolutionary technology designed to simulate human intelligence
|
||||
processes, enabling machines to perform tasks that typically require human cognition.
|
||||
Its rapid development has brought forth significant changes across various sectors,
|
||||
improving operational efficiencies, enhancing decision-making, and fostering
|
||||
innovation. This report outlines three key points regarding the impact and implications
|
||||
of AI technology.\\n\\n## Key Point 1: Transformative Potential in Various Industries\\nAI's
|
||||
transformative potential is observable across numerous sectors including healthcare,
|
||||
finance, transportation, and agriculture. In the healthcare sector, AI algorithms
|
||||
are increasingly used to analyze vast amounts of medical data, which sharpens
|
||||
diagnostics, facilitates personalized treatment plans, and enhances predictive
|
||||
analytics, thus leading to better patient care. In finance, AI contributes to
|
||||
risk assessment, fraud detection, and automated trading, heightening efficiency
|
||||
and reducing the risk of human error. The transportation industry leverages
|
||||
AI technologies for developments in autonomous vehicles and smart transportation
|
||||
systems that optimize routes and alleviate traffic congestion. Furthermore,
|
||||
agriculture benefits from AI by applying precision farming techniques that optimize
|
||||
yield and mitigate environmental effects.\\n\\n## Key Point 2: Ethical Considerations
|
||||
and Challenges\\nWith the increasing deployment of AI technologies, numerous
|
||||
ethical considerations surface, particularly relating to privacy, algorithmic
|
||||
fairness, and the displacement of jobs. Addressing issues such as data security,
|
||||
bias in AI algorithms, and the societal impact of automation is paramount. Organizations
|
||||
are encouraged to develop stringent guidelines and regulatory measures aimed
|
||||
at minimizing bias and ensuring that AI systems uphold values of transparency
|
||||
and accountability. Additionally, the implications of job displacement necessitate
|
||||
strategies for workforce retraining and educational reforms to adequately prepare
|
||||
the workforce for an economy increasingly shaped by AI technologies.\\n\\n##
|
||||
Key Point 3: Future Directions and Developments\\nThe future of AI is poised
|
||||
for remarkable advancements, with trends indicating a growing integration into
|
||||
daily life and widespread applications. The emergence of explainable AI (XAI)
|
||||
aims to enhance the transparency and interpretability of AI decision-making
|
||||
processes, fostering trust and understanding among users. Improvements in natural
|
||||
language processing (NLP) are likely to lead to more seamless and intuitive
|
||||
human-computer interactions. Furthermore, AI's potential to address global challenges,
|
||||
including climate change and disparities in healthcare access, is becoming increasingly
|
||||
significant. Collaborative efforts among stakeholders will be vital to ensuring
|
||||
that AI advancements are ethical and responsive to societal needs, paving the
|
||||
way for a responsible and equitable AI landscape.\\n\\n## Conclusion\\nAI technology
|
||||
is at the forefront of innovation, with the capacity to transform industries
|
||||
and tackle pressing global issues. As we navigate through the complexities and
|
||||
ethical challenges posed by AI, it is crucial to prioritize responsible development
|
||||
and implementation. By harnessing AI's transformative capabilities with a focus
|
||||
on equity and transparency, we can pave the way for a promising future that
|
||||
benefits all.\\n\\nEND REPORT\",\n \"refusal\": null\n },\n \"logprobs\":
|
||||
null,\n \"finish_reason\": \"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\":
|
||||
730,\n \"completion_tokens\": 571,\n \"total_tokens\": 1301,\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_0aa8d3e20b\"\n}\n"
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8fcd98f9fc060133-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:36 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:
|
||||
- '7203'
|
||||
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:
|
||||
- '149998937'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_cab0502e7d8a8564e56d8f741cf451ec
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
- request:
|
||||
body: !!binary |
|
||||
Cs4CCiQKIgoMc2VydmljZS5uYW1lEhIKEGNyZXdBSS10ZWxlbWV0cnkSpQIKEgoQY3Jld2FpLnRl
|
||||
bGVtZXRyeRKOAgoQO/xpq2/yF233Vf8OitYSiBIIdyOEucIqtF8qDFRhc2sgQ3JlYXRlZDABOXDe
|
||||
ZdqtkxcYQUDaZ9qtkxcYSi4KCGNyZXdfa2V5EiIKIDAwYjk0NmJlNDQzNzE0YjNhNDdjMjAxMDFl
|
||||
YjAyZDY2SjEKB2NyZXdfaWQSJgokNzJkZTEwZTQtNDkwZC00NDYwLTk1NzMtMmU5ZmM5YTMwMWE1
|
||||
Si4KCHRhc2tfa2V5EiIKIGI3MTNjODJmZWI5MmM5ZjVjNThiNDBhOTc1NTZiN2FjSjEKB3Rhc2tf
|
||||
aWQSJgokYWYxYTk2MTgtOTI0YS00ZTc5LWI2ZWItNThkYTEzNjk1OWM1egIYAYUBAAEAAA==
|
||||
headers:
|
||||
Accept:
|
||||
- '*/*'
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '337'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
User-Agent:
|
||||
- OTel-OTLP-Exporter-Python/1.27.0
|
||||
method: POST
|
||||
uri: https://telemetry.crewai.com:4319/v1/traces
|
||||
response:
|
||||
body:
|
||||
string: "\n\0"
|
||||
headers:
|
||||
Content-Length:
|
||||
- '2'
|
||||
Content-Type:
|
||||
- application/x-protobuf
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:37 GMT
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: '{"messages": [{"role": "system", "content": "You are Report Writer. You''re
|
||||
an expert at writing structured reports.\nYour personal goal is: Create properly
|
||||
formatted reports\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: Write a report about AI with exactly
|
||||
3 key points.\n\nThis is the expect criteria for your final answer: A properly
|
||||
formatted report\nyou MUST return the actual complete content as the final answer,
|
||||
not a summary.\n\nThis is the context you''re working with:\n### Previous attempt
|
||||
failed validation: Output must start with ''REPORT:'' no formatting, just the
|
||||
word REPORT\n\n\n### Previous result:\n# Report on Artificial Intelligence (AI)\n\n##
|
||||
Introduction\nArtificial Intelligence (AI) is a revolutionary technology designed
|
||||
to simulate human intelligence processes, enabling machines to perform tasks
|
||||
that typically require human cognition. Its rapid development has brought forth
|
||||
significant changes across various sectors, improving operational efficiencies,
|
||||
enhancing decision-making, and fostering innovation. This report outlines three
|
||||
key points regarding the impact and implications of AI technology.\n\n## Key
|
||||
Point 1: Transformative Potential in Various Industries\nAI''s transformative
|
||||
potential is observable across numerous sectors including healthcare, finance,
|
||||
transportation, and agriculture. In the healthcare sector, AI algorithms are
|
||||
increasingly used to analyze vast amounts of medical data, which sharpens diagnostics,
|
||||
facilitates personalized treatment plans, and enhances predictive analytics,
|
||||
thus leading to better patient care. In finance, AI contributes to risk assessment,
|
||||
fraud detection, and automated trading, heightening efficiency and reducing
|
||||
the risk of human error. The transportation industry leverages AI technologies
|
||||
for developments in autonomous vehicles and smart transportation systems that
|
||||
optimize routes and alleviate traffic congestion. Furthermore, agriculture benefits
|
||||
from AI by applying precision farming techniques that optimize yield and mitigate
|
||||
environmental effects.\n\n## Key Point 2: Ethical Considerations and Challenges\nWith
|
||||
the increasing deployment of AI technologies, numerous ethical considerations
|
||||
surface, particularly relating to privacy, algorithmic fairness, and the displacement
|
||||
of jobs. Addressing issues such as data security, bias in AI algorithms, and
|
||||
the societal impact of automation is paramount. Organizations are encouraged
|
||||
to develop stringent guidelines and regulatory measures aimed at minimizing
|
||||
bias and ensuring that AI systems uphold values of transparency and accountability.
|
||||
Additionally, the implications of job displacement necessitate strategies for
|
||||
workforce retraining and educational reforms to adequately prepare the workforce
|
||||
for an economy increasingly shaped by AI technologies.\n\n## Key Point 3: Future
|
||||
Directions and Developments\nThe future of AI is poised for remarkable advancements,
|
||||
with trends indicating a growing integration into daily life and widespread
|
||||
applications. The emergence of explainable AI (XAI) aims to enhance the transparency
|
||||
and interpretability of AI decision-making processes, fostering trust and understanding
|
||||
among users. Improvements in natural language processing (NLP) are likely to
|
||||
lead to more seamless and intuitive human-computer interactions. Furthermore,
|
||||
AI''s potential to address global challenges, including climate change and disparities
|
||||
in healthcare access, is becoming increasingly significant. Collaborative efforts
|
||||
among stakeholders will be vital to ensuring that AI advancements are ethical
|
||||
and responsive to societal needs, paving the way for a responsible and equitable
|
||||
AI landscape.\n\n## Conclusion\nAI technology is at the forefront of innovation,
|
||||
with the capacity to transform industries and tackle pressing global issues.
|
||||
As we navigate through the complexities and ethical challenges posed by AI,
|
||||
it is crucial to prioritize responsible development and implementation. By harnessing
|
||||
AI''s transformative capabilities with a focus on equity and transparency, we
|
||||
can pave the way for a promising future that benefits all.\n\nEND REPORT\n\n\nTry
|
||||
again, making sure to address the validation error.\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}'
|
||||
headers:
|
||||
accept:
|
||||
- application/json
|
||||
accept-encoding:
|
||||
- gzip, deflate
|
||||
connection:
|
||||
- keep-alive
|
||||
content-length:
|
||||
- '4669'
|
||||
content-type:
|
||||
- application/json
|
||||
cookie:
|
||||
- _cfuvid=SlnUP7AT9jJlQiN.Fm1c7MDyo78_hBRAz8PoabvHVSU-1736018539826-0.0.1.1-604800000;
|
||||
__cf_bm=pumYGlf1gsbVoFNTM1vh9Okj41SgxP3y65T5YWWPU1U-1736018539-1.0.1.1-wmaotkWMviN4lKh6M3P04A8p61Ehm.rTehDpsJhxYhNBNU5.kznMCa3cNXePaEbsKkk4PU2QcWjHj2C7yDrjkw
|
||||
host:
|
||||
- api.openai.com
|
||||
user-agent:
|
||||
- OpenAI/Python 1.52.1
|
||||
x-stainless-arch:
|
||||
- arm64
|
||||
x-stainless-async:
|
||||
- 'false'
|
||||
x-stainless-lang:
|
||||
- python
|
||||
x-stainless-os:
|
||||
- MacOS
|
||||
x-stainless-package-version:
|
||||
- 1.52.1
|
||||
x-stainless-raw-response:
|
||||
- 'true'
|
||||
x-stainless-retry-count:
|
||||
- '0'
|
||||
x-stainless-runtime:
|
||||
- CPython
|
||||
x-stainless-runtime-version:
|
||||
- 3.11.7
|
||||
method: POST
|
||||
uri: https://api.openai.com/v1/chat/completions
|
||||
response:
|
||||
content: "{\n \"id\": \"chatcmpl-Am41EaJaKZSumZe8ph2I32d6QNbTP\",\n \"object\":
|
||||
\"chat.completion\",\n \"created\": 1736018556,\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: \\n\\nREPORT: \\n\\n# Report on Artificial Intelligence (AI)\\n\\n##
|
||||
Introduction\\nArtificial Intelligence (AI) is a revolutionary technology designed
|
||||
to simulate human intelligence processes, enabling machines to perform tasks
|
||||
that typically require human cognition. Its rapid development has brought forth
|
||||
significant changes across various sectors, improving operational efficiencies,
|
||||
enhancing decision-making, and fostering innovation. This report outlines three
|
||||
key points regarding the impact and implications of AI technology.\\n\\n## Key
|
||||
Point 1: Transformative Potential in Various Industries\\nAI's transformative
|
||||
potential is observable across numerous sectors including healthcare, finance,
|
||||
transportation, and agriculture. In the healthcare sector, AI algorithms are
|
||||
increasingly used to analyze vast amounts of medical data, which sharpens diagnostics,
|
||||
facilitates personalized treatment plans, and enhances predictive analytics,
|
||||
thus leading to better patient care. In finance, AI contributes to risk assessment,
|
||||
fraud detection, and automated trading, heightening efficiency and reducing
|
||||
the risk of human error. The transportation industry leverages AI technologies
|
||||
for developments in autonomous vehicles and smart transportation systems that
|
||||
optimize routes and alleviate traffic congestion. Furthermore, agriculture benefits
|
||||
from AI by applying precision farming techniques that optimize yield and mitigate
|
||||
environmental effects.\\n\\n## Key Point 2: Ethical Considerations and Challenges\\nWith
|
||||
the increasing deployment of AI technologies, numerous ethical considerations
|
||||
surface, particularly relating to privacy, algorithmic fairness, and the displacement
|
||||
of jobs. Addressing issues such as data security, bias in AI algorithms, and
|
||||
the societal impact of automation is paramount. Organizations are encouraged
|
||||
to develop stringent guidelines and regulatory measures aimed at minimizing
|
||||
bias and ensuring that AI systems uphold values of transparency and accountability.
|
||||
Additionally, the implications of job displacement necessitate strategies for
|
||||
workforce retraining and educational reforms to adequately prepare the workforce
|
||||
for an economy increasingly shaped by AI technologies.\\n\\n## Key Point 3:
|
||||
Future Directions and Developments\\nThe future of AI is poised for remarkable
|
||||
advancements, with trends indicating a growing integration into daily life and
|
||||
widespread applications. The emergence of explainable AI (XAI) aims to enhance
|
||||
the transparency and interpretability of AI decision-making processes, fostering
|
||||
trust and understanding among users. Improvements in natural language processing
|
||||
(NLP) are likely to lead to more seamless and intuitive human-computer interactions.
|
||||
Furthermore, AI's potential to address global challenges, including climate
|
||||
change and disparities in healthcare access, is becoming increasingly significant.
|
||||
Collaborative efforts among stakeholders will be vital to ensuring that AI advancements
|
||||
are ethical and responsive to societal needs, paving the way for a responsible
|
||||
and equitable AI landscape.\\n\\n## Conclusion\\nAI technology is at the forefront
|
||||
of innovation, with the capacity to transform industries and tackle pressing
|
||||
global issues. As we navigate through the complexities and ethical challenges
|
||||
posed by AI, it is crucial to prioritize responsible development and implementation.
|
||||
By harnessing AI's transformative capabilities with a focus on equity and transparency,
|
||||
we can pave the way for a promising future that benefits all.\\n\\nEND REPORT\",\n
|
||||
\ \"refusal\": null\n },\n \"logprobs\": null,\n \"finish_reason\":
|
||||
\"stop\"\n }\n ],\n \"usage\": {\n \"prompt_tokens\": 774,\n \"completion_tokens\":
|
||||
574,\n \"total_tokens\": 1348,\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_0aa8d3e20b\"\n}\n"
|
||||
headers:
|
||||
CF-Cache-Status:
|
||||
- DYNAMIC
|
||||
CF-RAY:
|
||||
- 8fcd9928eaa40133-GRU
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Sat, 04 Jan 2025 19:22:46 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:
|
||||
- '9767'
|
||||
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:
|
||||
- '149998862'
|
||||
x-ratelimit-reset-requests:
|
||||
- 2ms
|
||||
x-ratelimit-reset-tokens:
|
||||
- 0s
|
||||
x-request-id:
|
||||
- req_d3d0e47180363d07d988cb5ab639597c
|
||||
http_version: HTTP/1.1
|
||||
status_code: 200
|
||||
version: 1
|
||||
@@ -177,12 +177,12 @@ class TestDeployCommand(unittest.TestCase):
|
||||
def test_get_crew_status(self):
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.json.return_value = {"name": "TestCrew", "status": "active"}
|
||||
mock_response.json.return_value = {"name": "InternalCrew", "status": "active"}
|
||||
self.mock_client.crew_status_by_name.return_value = mock_response
|
||||
|
||||
with patch("sys.stdout", new=StringIO()) as fake_out:
|
||||
self.deploy_command.get_crew_status()
|
||||
self.assertIn("TestCrew", fake_out.getvalue())
|
||||
self.assertIn("InternalCrew", fake_out.getvalue())
|
||||
self.assertIn("active", fake_out.getvalue())
|
||||
|
||||
def test_get_crew_logs(self):
|
||||
|
||||
@@ -3337,3 +3337,110 @@ def test_multimodal_agent_live_image_analysis():
|
||||
assert isinstance(result.raw, str)
|
||||
assert len(result.raw) > 100 # Expecting a detailed analysis
|
||||
assert "error" not in result.raw.lower() # No error messages in response
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_crew_with_failing_task_guardrails():
|
||||
"""Test that crew properly handles failing guardrails and retries with validation feedback."""
|
||||
|
||||
def strict_format_guardrail(result: TaskOutput):
|
||||
"""Validates that the output follows a strict format:
|
||||
- Must start with 'REPORT:'
|
||||
- Must end with 'END REPORT'
|
||||
"""
|
||||
content = result.raw.strip()
|
||||
|
||||
if not ('REPORT:' in content or '**REPORT:**' in content):
|
||||
return (False, "Output must start with 'REPORT:' no formatting, just the word REPORT")
|
||||
|
||||
if not ('END REPORT' in content or '**END REPORT**' in content):
|
||||
return (False, "Output must end with 'END REPORT' no formatting, just the word END REPORT")
|
||||
|
||||
return (True, content)
|
||||
|
||||
researcher = Agent(
|
||||
role="Report Writer",
|
||||
goal="Create properly formatted reports",
|
||||
backstory="You're an expert at writing structured reports.",
|
||||
)
|
||||
|
||||
task = Task(
|
||||
description="""Write a report about AI with exactly 3 key points.""",
|
||||
expected_output="A properly formatted report",
|
||||
agent=researcher,
|
||||
guardrail=strict_format_guardrail,
|
||||
max_retries=3
|
||||
)
|
||||
|
||||
crew = Crew(
|
||||
agents=[researcher],
|
||||
tasks=[task],
|
||||
)
|
||||
|
||||
result = crew.kickoff()
|
||||
|
||||
# Verify the final output meets all format requirements
|
||||
content = result.raw.strip()
|
||||
assert content.startswith('REPORT:'), "Output should start with 'REPORT:'"
|
||||
assert content.endswith('END REPORT'), "Output should end with 'END REPORT'"
|
||||
|
||||
# Verify task output
|
||||
task_output = result.tasks_output[0]
|
||||
assert isinstance(task_output, TaskOutput)
|
||||
assert task_output.raw == result.raw
|
||||
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_crew_guardrail_feedback_in_context():
|
||||
"""Test that guardrail feedback is properly appended to task context for retries."""
|
||||
|
||||
def format_guardrail(result: TaskOutput):
|
||||
"""Validates that the output contains a specific keyword."""
|
||||
if "IMPORTANT" not in result.raw:
|
||||
return (False, "Output must contain the keyword 'IMPORTANT'")
|
||||
return (True, result.raw)
|
||||
|
||||
# Create execution contexts list to track contexts
|
||||
execution_contexts = []
|
||||
|
||||
researcher = Agent(
|
||||
role="Writer",
|
||||
goal="Write content with specific keywords",
|
||||
backstory="You're an expert at following specific writing requirements.",
|
||||
allow_delegation=False
|
||||
)
|
||||
|
||||
task = Task(
|
||||
description="Write a short response.",
|
||||
expected_output="A response containing the keyword 'IMPORTANT'",
|
||||
agent=researcher,
|
||||
guardrail=format_guardrail,
|
||||
max_retries=2
|
||||
)
|
||||
|
||||
crew = Crew(agents=[researcher], tasks=[task])
|
||||
|
||||
with patch.object(Agent, "execute_task") as mock_execute_task:
|
||||
# Define side_effect to capture context and return different responses
|
||||
def side_effect(task, context=None, tools=None):
|
||||
execution_contexts.append(context if context else "")
|
||||
if len(execution_contexts) == 1:
|
||||
return "This is a test response"
|
||||
return "This is an IMPORTANT test response"
|
||||
|
||||
mock_execute_task.side_effect = side_effect
|
||||
|
||||
result = crew.kickoff()
|
||||
|
||||
# Verify that we had multiple executions
|
||||
assert len(execution_contexts) > 1, "Task should have been executed multiple times"
|
||||
|
||||
# Verify that the second execution included the guardrail feedback
|
||||
assert "Output must contain the keyword 'IMPORTANT'" in execution_contexts[1], \
|
||||
"Guardrail feedback should be included in retry context"
|
||||
|
||||
# Verify final output meets guardrail requirements
|
||||
assert "IMPORTANT" in result.raw, "Final output should contain required keyword"
|
||||
|
||||
# Verify task retry count
|
||||
assert task.retry_count == 1, "Task should have been retried once"
|
||||
|
||||
@@ -27,7 +27,7 @@ class SimpleCrew:
|
||||
|
||||
|
||||
@CrewBase
|
||||
class TestCrew:
|
||||
class InternalCrew:
|
||||
agents_config = "config/agents.yaml"
|
||||
tasks_config = "config/tasks.yaml"
|
||||
|
||||
@@ -84,7 +84,7 @@ def test_task_memoization():
|
||||
|
||||
|
||||
def test_crew_memoization():
|
||||
crew = TestCrew()
|
||||
crew = InternalCrew()
|
||||
first_call_result = crew.crew()
|
||||
second_call_result = crew.crew()
|
||||
|
||||
@@ -107,7 +107,7 @@ def test_task_name():
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_before_kickoff_modification():
|
||||
crew = TestCrew()
|
||||
crew = InternalCrew()
|
||||
inputs = {"topic": "LLMs"}
|
||||
result = crew.crew().kickoff(inputs=inputs)
|
||||
assert "bicycles" in result.raw, "Before kickoff function did not modify inputs"
|
||||
@@ -115,7 +115,7 @@ def test_before_kickoff_modification():
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_after_kickoff_modification():
|
||||
crew = TestCrew()
|
||||
crew = InternalCrew()
|
||||
# Assuming the crew execution returns a dict
|
||||
result = crew.crew().kickoff({"topic": "LLMs"})
|
||||
|
||||
@@ -126,7 +126,7 @@ def test_after_kickoff_modification():
|
||||
|
||||
@pytest.mark.vcr(filter_headers=["authorization"])
|
||||
def test_before_kickoff_with_none_input():
|
||||
crew = TestCrew()
|
||||
crew = InternalCrew()
|
||||
crew.crew().kickoff(None)
|
||||
# Test should pass without raising exceptions
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from crewai import Agent, Task
|
||||
from crewai.tools.agent_tools.base_agent_tools import BaseAgentTool
|
||||
|
||||
|
||||
class TestAgentTool(BaseAgentTool):
|
||||
class InternalAgentTool(BaseAgentTool):
|
||||
"""Concrete implementation of BaseAgentTool for testing."""
|
||||
|
||||
def _run(self, *args, **kwargs):
|
||||
@@ -39,7 +39,7 @@ def test_agent_tool_role_matching(role_name, should_match):
|
||||
)
|
||||
|
||||
# Create test agent tool
|
||||
agent_tool = TestAgentTool(
|
||||
agent_tool = InternalAgentTool(
|
||||
name="test_tool", description="Test tool", agents=[test_agent]
|
||||
)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ def test_creating_a_tool_using_annotation():
|
||||
my_tool.description
|
||||
== "Tool Name: Name of my tool\nTool Arguments: {'question': {'description': None, 'type': 'str'}}\nTool Description: Clear description for what this tool is useful for, your agent will need this information to use it."
|
||||
)
|
||||
assert my_tool.args_schema.schema()["properties"] == {
|
||||
assert my_tool.args_schema.model_json_schema()["properties"] == {
|
||||
"question": {"title": "Question", "type": "string"}
|
||||
}
|
||||
assert (
|
||||
@@ -29,7 +29,7 @@ def test_creating_a_tool_using_annotation():
|
||||
converted_tool.description
|
||||
== "Tool Name: Name of my tool\nTool Arguments: {'question': {'description': None, 'type': 'str'}}\nTool Description: Clear description for what this tool is useful for, your agent will need this information to use it."
|
||||
)
|
||||
assert converted_tool.args_schema.schema()["properties"] == {
|
||||
assert converted_tool.args_schema.model_json_schema()["properties"] == {
|
||||
"question": {"title": "Question", "type": "string"}
|
||||
}
|
||||
assert (
|
||||
@@ -54,7 +54,7 @@ def test_creating_a_tool_using_baseclass():
|
||||
my_tool.description
|
||||
== "Tool Name: Name of my tool\nTool Arguments: {'question': {'description': None, 'type': 'str'}}\nTool Description: Clear description for what this tool is useful for, your agent will need this information to use it."
|
||||
)
|
||||
assert my_tool.args_schema.schema()["properties"] == {
|
||||
assert my_tool.args_schema.model_json_schema()["properties"] == {
|
||||
"question": {"title": "Question", "type": "string"}
|
||||
}
|
||||
assert my_tool.run("What is the meaning of life?") == "What is the meaning of life?"
|
||||
@@ -66,7 +66,7 @@ def test_creating_a_tool_using_baseclass():
|
||||
converted_tool.description
|
||||
== "Tool Name: Name of my tool\nTool Arguments: {'question': {'description': None, 'type': 'str'}}\nTool Description: Clear description for what this tool is useful for, your agent will need this information to use it."
|
||||
)
|
||||
assert converted_tool.args_schema.schema()["properties"] == {
|
||||
assert converted_tool.args_schema.model_json_schema()["properties"] == {
|
||||
"question": {"title": "Question", "type": "string"}
|
||||
}
|
||||
assert (
|
||||
|
||||
@@ -25,7 +25,7 @@ def schema_class():
|
||||
return TestSchema
|
||||
|
||||
|
||||
class TestCrewStructuredTool:
|
||||
class InternalCrewStructuredTool:
|
||||
def test_initialization(self, basic_function, schema_class):
|
||||
"""Test basic initialization of CrewStructuredTool"""
|
||||
tool = CrewStructuredTool(
|
||||
|
||||
@@ -12,7 +12,7 @@ from crewai.utilities.evaluators.crew_evaluator_handler import (
|
||||
)
|
||||
|
||||
|
||||
class TestCrewEvaluator:
|
||||
class InternalCrewEvaluator:
|
||||
@pytest.fixture
|
||||
def crew_planner(self):
|
||||
agent = Agent(role="Agent 1", goal="Goal 1", backstory="Backstory 1")
|
||||
|
||||
@@ -16,7 +16,7 @@ from crewai.utilities.planning_handler import (
|
||||
)
|
||||
|
||||
|
||||
class TestCrewPlanner:
|
||||
class InternalCrewPlanner:
|
||||
@pytest.fixture
|
||||
def crew_planner(self):
|
||||
tasks = [
|
||||
@@ -115,13 +115,13 @@ class TestCrewPlanner:
|
||||
def __init__(self, name: str, description: str):
|
||||
tool_data = {"name": name, "description": description}
|
||||
super().__init__(**tool_data)
|
||||
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
def __repr__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
def to_structured_tool(self):
|
||||
return self
|
||||
|
||||
@@ -149,11 +149,11 @@ class TestCrewPlanner:
|
||||
]
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
# Create planner with the new task
|
||||
planner = CrewPlanner([task], None)
|
||||
tasks_summary = planner._create_tasks_summary()
|
||||
|
||||
|
||||
# Verify task summary content
|
||||
assert isinstance(tasks_summary, str)
|
||||
assert task.description in tasks_summary
|
||||
|
||||
@@ -4,7 +4,7 @@ import unittest
|
||||
from crewai.utilities.training_handler import CrewTrainingHandler
|
||||
|
||||
|
||||
class TestCrewTrainingHandler(unittest.TestCase):
|
||||
class InternalCrewTrainingHandler(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.handler = CrewTrainingHandler("trained_data.pkl")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user