camel.toolkits 包#
子模块#
camel.toolkits.base 模块#
- class camel.toolkits.base.BaseToolkit(timeout: float | None = None)[来源]#
基类:
object工具包的基础类。
- Parameters:
timeout (可选[float]) - 工具的超时时间。
- class FastMCP(name: str | None = None, instructions: str | None = None, **settings: Any)#
基类:
object- add_prompt(prompt: Prompt) None#
向服务器添加一个提示。
- Parameters:
prompt – 要添加的Prompt实例
- add_resource(resource: Resource) None#
向服务器添加资源。
- Parameters:
resource – 要添加的Resource实例
- add_tool(fn: Callable[[...], Any], name: str | None = None, description: str | None = None) None#
向服务器添加一个工具。
工具函数可以选择性地通过添加一个带有Context类型注解的参数来请求Context对象。有关示例,请参见@tool装饰器。
- Parameters:
fn – 要注册为工具的函数
name – 工具的可选名称(默认为函数名)
description – 工具功能的可选描述
- async call_tool(name: str, arguments: dict[str, Any]) Sequence[TextContent | ImageContent | EmbeddedResource]#
通过名称调用工具并传入参数。
- get_context() Context[ServerSession, object]#
返回一个Context对象。请注意,该上下文仅在请求期间有效;在请求之外,大多数方法都会报错。
- async get_prompt(name: str, arguments: dict[str, Any] | None = None) GetPromptResult#
通过名称和参数获取提示。
- property instructions: str | None#
- async list_prompts() list[Prompt]#
列出所有可用的提示词。
- async list_resource_templates() list[ResourceTemplate]#
- async list_resources() list[Resource]#
列出所有可用资源。
- async list_tools() list[Tool]#
列出所有可用工具。
- property name: str#
- prompt(name: str | None = None, description: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
用于注册提示的装饰器。
- Args:
name: 提示的可选名称(默认为函数名) description: 提示功能的可选描述
- Example:
@server.prompt() def analyze_table(table_name: str) -> list[Message]:
schema = read_table_schema(table_name) return [
- {
“role”: “user”, “content”: f”分析这个架构:
- {schema}”
}
]
@server.prompt() async def analyze_file(path: str) -> list[Message]:
content = await read_file(path) return [
- {
“角色”: “用户”, “内容”: {
}
}
]
- async read_resource(uri: AnyUrl | str) Iterable[ReadResourceContents]#
通过URI读取资源。
- resource(uri: str, *, name: str | None = None, description: str | None = None, mime_type: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
装饰器,用于将函数注册为资源。
该函数将在读取资源时被调用以生成其内容。 函数可以返回: - str 表示文本内容 - bytes 表示二进制内容 - 其他类型将被转换为JSON
如果URI包含参数(例如"resource://{param}")或者函数具有参数,它将被注册为模板资源。
- Parameters:
uri – 资源的URI(例如"resource://my-resource"或"resource://{param}")
name – 资源的可选名称
description – 资源的可选描述
mime_type – 资源的可选MIME类型
示例
@server.resource(“resource://my-resource”) def get_data() -> str:
return “Hello, world!”
@server.resource("resource://my-resource") async get_data() -> str:
data = await fetch_data() return f"你好,世界! {data}"
@server.resource(“resource://{city}/weather”) def get_weather(city: str) -> str:
返回 f"{city}的天气"
@server.resource(“resource://{city}/weather”) async def get_weather(city: str) -> str:
data = await fetch_weather(city) return f"城市{city}的天气: {data}"
- run(transport: Literal['stdio', 'sse'] = 'stdio') None#
运行FastMCP服务器。请注意这是一个同步函数。
- Parameters:
transport – 使用的传输协议("stdio" 或 "sse")
- async run_sse_async() None#
使用SSE传输运行服务器。
- async run_stdio_async() None#
使用stdio传输运行服务器。
- sse_app() Starlette#
返回一个SSE服务器应用的实例。
- tool(name: str | None = None, description: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
用于注册工具的装饰器。
工具可以选择性地通过添加带有Context类型注解的参数来请求Context对象。该上下文提供了对MCP功能的访问,如日志记录、进度报告和资源访问。
- Parameters:
name – 工具的可选名称(默认为函数名称)
description – 工具功能的可选描述
示例
@server.tool() def my_tool(x: int) -> str:
return str(x)
@server.tool() def tool_with_context(x: int, ctx: Context) -> str:
ctx.info(f"正在处理 {x}") return str(x)
@server.tool() async def async_tool(x: int, context: Context) -> str:
await context.report_progress(50, 100) return str(x)
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- timeout: float | None = None#
camel.toolkits.code_execution 模块#
- class camel.toolkits.code_execution.CodeExecutionToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于代码执行的工具包。
- Parameters:
sandbox (str) - 用于执行代码的环境类型。 (默认: subprocess)
verbose (bool) - 是否打印代码执行的输出。 (默认:
False)unsafe_mode (bool) - 如果为True,解释器将通过eval()运行代码而不进行任何安全检查。(默认值:
False)import_white_list (可选[列表[字符串]]) – 允许导入的列表。 (默认:
None)require_confirm (bool) – 是否在执行代码前需要确认。 (默认:
False)
- execute_code(code: str) str[来源]#
执行给定的代码片段。
- Parameters:
code (str) – 输入到Code Interpreter工具调用的代码。
- Returns:
来自Code Interpreter工具调用的文本输出。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
camel.toolkits.dalle_toolkit 模块#
- class camel.toolkits.dalle_toolkit.DalleToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示使用OpenAI的DALL-E模型进行图像生成的工具包类。
- base64_to_image(base64_string: str) Image | None[来源]#
将base64编码的字符串转换为PIL Image对象。
- Parameters:
base64_string (str) – 图像的base64编码字符串。
- Returns:
- PIL图像对象,如果转换失败则为None
失败。
- Return type:
可选[Image.Image]
- get_dalle_img(prompt: str, image_dir: str = 'img') str[来源]#
- Generate an image using OpenAI’s DALL-E model.
生成的图像已保存到指定目录。
- Parameters:
prompt (str) - 用于生成图像的文本提示。
image_dir (str) – 保存生成图片的目录。默认为'img'。
- Returns:
保存图像的路径。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
camel.toolkits.github_toolkit 模块#
- class camel.toolkits.github_toolkit.GithubToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与GitHub仓库交互的工具包的类。
- This class provides methods for retrieving open issues, retrieving
具体问题,以及在GitHub仓库中创建拉取请求。
- Parameters:
repo_name (str) - GitHub仓库的名称。
access_token (str, optional) – 用于GitHub身份验证的访问令牌。如果未提供,将使用get_github_access_token方法获取。
- create_pull_request(file_path: str, new_content: str, pr_title: str, body: str, branch_name: str) str[来源]#
创建一个拉取请求。
此函数在指定仓库中创建一个拉取请求,该请求将特定路径下的文件内容更新为新内容。拉取请求描述中包含问题标题和编号的相关信息。
- Parameters:
file_path (str) – 仓库中待更新文件的路径。
new_content (str) - 指定文件的新内容。
pr_title (str) - 这个pull request所解决问题的标题。
body (str) – 拉取请求的提交信息。
branch_name (str) - 要创建并从中提交拉取请求的分支名称。
- Returns:
- 关于是否成功创建拉取请求的格式化报告
成功与否。
- Return type:
字符串
- get_all_file_paths(path: str = '') List[str][来源]#
递归获取GitHub仓库中的所有文件路径。
- Parameters:
path (str) – 开始遍历的仓库路径。 空字符串表示从根目录开始。 (默认值: :obj: “”)
- Returns:
- 指定目录内的文件路径列表
结构。
- Return type:
List[str]
- get_github_access_token() str[来源]#
从环境变量中获取GitHub访问令牌。
- Returns:
包含GitHub访问令牌的字符串。
- Return type:
字符串
- Raises:
ValueError – 如果在环境变量中未找到API密钥或密钥。
- get_issue_content(issue_number: int) str[来源]#
根据编号获取特定问题的内容。
- Parameters:
issue_number (int) – 要获取的问题编号。
- Returns:
问题内容详情。
- Return type:
字符串
- get_issue_list(state: Literal['open', 'closed', 'all'] = 'all') List[Dict[str, object]][来源]#
从GitHub仓库获取所有问题。
- Parameters:
state (Literal["open", "closed", "all"]) – 要获取的拉取请求的状态。(默认: :obj: all) 选项包括: - "open": 仅获取打开的拉取请求。 - "closed": 仅获取已关闭的拉取请求。 - "all": 获取所有拉取请求,无论其状态如何。
- Returns:
- 一个字典列表,其中每个
字典包含问题编号和标题。
- Return type:
列表[字典[str, 对象]]
- get_pull_request_code(pr_number: int) List[Dict[str, str]][来源]#
获取特定拉取请求的代码变更。
- Parameters:
pr_number (int) – 要获取的拉取请求编号。
- Returns:
- 一个字典列表,其中每个字典
包含文件名和对应的代码变更(补丁)。
- Return type:
List[Dict[str, str]]
- get_pull_request_comments(pr_number: int) List[Dict[str, str]][来源]#
获取特定拉取请求中的评论。
- Parameters:
pr_number (int) – 要获取的拉取请求编号。
- Returns:
- 一个字典列表,其中每个字典
包含用户ID和评论内容。
- Return type:
List[Dict[str, str]]
- get_pull_request_list(state: Literal['open', 'closed', 'all'] = 'all') List[Dict[str, object]][来源]#
从GitHub仓库获取所有拉取请求。
- Parameters:
state (Literal["open", "closed", "all"]) – 要获取的拉取请求的状态。(默认: :obj: all) 可选值为: - "open": 仅获取打开的拉取请求。 - "closed": 仅获取已关闭的拉取请求。 - "all": 获取所有拉取请求,无论状态如何。
- Returns:
- 一个字典列表,其中每个字典包含
拉取请求编号和标题。
- Return type:
列表
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
camel.toolkits.google_maps_toolkit 模块#
- class camel.toolkits.google_maps_toolkit.GoogleMapsToolkit(timeout: float | None = None)[来源]#
基类:
BaseToolkit一个表示与GoogleMaps API交互工具包的类。 该类提供了使用Google Maps API验证地址、获取海拔高度和获取时区信息的方法。
- get_address_description(address: str | List[str], region_code: str | None = None, locality: str | None = None) str[来源]#
通过Google Maps API验证地址,返回描述性摘要。使用Google Maps API验证地址,返回的摘要包括地址补全信息、格式化地址、位置坐标以及适用于给定地址的元数据类型。
- Parameters:
address (Union[str, List[str]]) – 要验证的地址或组件。可以是单个字符串或表示不同部分的列表。
region_code (str, optional) – 用于地区限制的国家代码,有助于缩小结果范围。(默认:
None)locality (str, optional) – 将验证限制在特定地区,例如"Mountain View"。(默认值:
None)
- Returns:
- 地址验证结果摘要,包括
地址补全信息、格式化地址、地理坐标(纬度和经度)以及该地址对应的元数据类型。
- Return type:
字符串
- get_elevation(lat: float, lng: float) str[来源]#
获取给定纬度和经度的高程数据。 使用Google Maps API获取指定纬度和经度的高程数据。它能优雅地处理异常情况,并返回高程描述,包括以米为单位的值和数据分辨率。
- Parameters:
lat (float) – 要查询位置的纬度。
lng (float) – 要查询位置的经度。
- Returns:
- 指定位置的海拔高度描述,
包括以米为单位的海拔高度和数据分辨率。如果 无法获取海拔数据,则会返回一条提示信息。
- Return type:
字符串
- get_timezone(lat: float, lng: float) str[来源]#
获取给定纬度和经度的时区信息。 该函数使用Google Maps Timezone API来获取指定纬度和经度的时区数据。它返回时区的自然语言描述,包括时区ID、名称、标准时间偏移量、夏令时偏移量以及与协调世界时(UTC)的总偏移量。
- Parameters:
lat (float) – 要查询位置的纬度。
lng (float) – 要查询位置的经度。
- Returns:
- 描述时区信息的字符串,
包括时区ID和名称、标准时间偏移量、夏令时偏移量以及与UTC的总偏移量。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
camel.toolkits.linkedin_toolkit 模块#
- class camel.toolkits.linkedin_toolkit.LinkedInToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示LinkedIn操作工具包的类。
该类提供了创建帖子、删除帖子以及获取认证用户个人资料信息的方法。
- create_post(text: str) dict[来源]#
为认证用户在LinkedIn上创建一篇帖子。
- Parameters:
text (str) – 要创建的帖子内容。
- Returns:
- 一个包含帖子ID和内容的字典
如果帖子创建失败,这些值将为None。
- Return type:
字典
- Raises:
异常 - 如果由于LinkedIn API返回错误响应导致帖子创建失败。
- delete_post(post_id: str) str[来源]#
删除授权用户指定ID的LinkedIn帖子。
此函数向LinkedIn API发送DELETE请求以删除指定ID的帖子。在发送请求之前,它会提示用户确认删除操作。
- Parameters:
post_id (str) – 要删除的帖子的ID。
- Returns:
- 一条指示删除结果的消息。如果
删除成功,该消息包含被删除帖子的ID。如果删除未成功,该消息包含一条错误信息。
- Return type:
字符串
- get_profile(include_id: bool = False) dict[来源]#
获取已认证用户的LinkedIn个人资料信息。
该函数向LinkedIn API发送GET请求以获取认证用户的个人资料信息。可选地,它还会返回用户的LinkedIn ID。
- Parameters:
include_id (bool) – 是否在响应中包含LinkedIn个人资料ID。
- Returns:
- 包含用户LinkedIn个人资料的字典
信息。如果include_id为True,该字典还将包含个人资料ID。
- Return type:
字典
- Raises:
异常 - 如果由于LinkedIn API返回错误响应导致个人资料获取失败。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
camel.toolkits.math_toolkit 模块#
- class camel.toolkits.math_toolkit.MathToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示数学运算工具包的类。
该类提供基本数学运算方法,如加法、减法、乘法、除法及四舍五入。
- add(a: float, b: float) float[来源]#
将两个数字相加。
- Parameters:
a (float) – 要相加的第一个数字。
b (float) - 要相加的第二个数字。
- Returns:
两个数字的总和。
- Return type:
浮点数
- divide(a: float, b: float, decimal_places: int = 2) float[来源]#
将两个数相除。
- Parameters:
a (float) – 除法运算中的被除数。
b (float) - 除法运算中的除数。
decimal_places (int, optional) – 要四舍五入的小数位数。默认为2。
- Returns:
a除以b的结果。- Return type:
浮点数
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- multiply(a: float, b: float, decimal_places: int = 2) float[来源]#
将两个数字相乘。
- Parameters:
a (float) – 乘法运算中的乘数。
b (float) – 乘法运算中的被乘数。
decimal_places (int, optional) – 要四舍五入的小数位数。默认为2。
- Returns:
两个数字的乘积。
- Return type:
浮点数
camel.toolkits.open_api_toolkit 模块#
- class camel.toolkits.open_api_toolkit.OpenAPIToolkit[来源]#
基类:
object一个表示用于与OpenAPI API交互的工具包的类。
该类提供了基于OpenAPI规范与API交互的方法。它会为OpenAPI规范中定义的每个API操作动态生成函数,允许用户向API端点发起HTTP请求。
- apinames_filepaths_to_funs_schemas(apinames_filepaths: List[Tuple[str, str]]) Tuple[List[Callable], List[Dict[str, Any]]][来源]#
将多个OpenAPI规范中的函数和模式组合起来,使用API名称作为键。
该函数遍历API名称和OpenAPI规范文件路径的元组,解析每个规范以生成可调用函数和模式字典,所有内容按API名称组织。
参数: apinames_filepaths (List[Tuple[str, str]]): 一个元组列表,其中
每个元组包含: - 第一个元素是API名称(字符串)。 - 第二个元素是API的OpenAPI规范文件的路径(字符串)。
第二个元素。
- Returns:
- Tuple[List[Callable], List[Dict[str, Any]]]:: 可调用对象之一
用于API操作的函数集合,以及另一个表示规范中模式的字典集合。
- generate_apinames_filepaths() List[Tuple[str, str]][来源]#
生成一个包含API名称及其对应文件路径的元组列表。
该函数遍历OpenAPIName枚举,为每个API的OpenAPI规范文件构建文件路径,并将API名称及其文件路径的元组追加到列表中。文件路径是相对于与脚本同目录下的'open_api_specs'目录的。
- Returns:
- 一个元组列表,其中每个元组包含
两个元素。每个元组的第一个元素是表示API名称的字符串,第二个元素是指定该API的OpenAPI规范文件路径的字符串。
- Return type:
列表[元组[字符串, 字符串]]
- generate_openapi_funcs(api_name: str, openapi_spec: Dict[str, Any]) List[Callable][来源]#
根据OpenAPI规范生成Python函数列表。
该函数动态生成一个可调用函数的列表,这些函数代表OpenAPI规范文档中定义的API操作。每个函数设计用于执行规范中定义的对应API操作(如GET、POST)的HTTP请求。这些函数通过openapi_function_decorator装饰器进行修饰,该装饰器配置它们以构建并发送带有适当参数、头部和正文内容的HTTP请求。
- Parameters:
api_name (str) – API的名称,用于为生成的函数名称添加前缀。
openapi_spec (Dict[str, Any]) - 作为字典的OpenAPI规范。
- Returns:
- 包含生成函数的列表。每个
函数在被调用时,将根据OpenAPI规范中定义的对应API操作发起HTTP请求。
- Return type:
列表[可调用对象]
- Raises:
ValueError – 如果OpenAPI规范不包含服务器信息,这些信息是确定API请求基础URL所必需的。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- openapi_function_decorator(api_name: str, base_url: str, path: str, method: str, openapi_security: List[Dict[str, Any]], sec_schemas: Dict[str, Dict[str, Any]], operation: Dict[str, Any]) Callable[来源]#
装饰一个函数以基于OpenAPI规范详情发起HTTP请求。
该装饰器根据提供的OpenAPI操作规范、安全要求和参数,动态构建并执行API请求。它支持使用apiKey类型安全方案保护的操作,并自动从环境变量中注入必要的API密钥。同时支持path、query、header和cookie中的参数。
- Parameters:
api_name (str) - API的名称,用于从配置中检索API密钥名称和URL。
base_url (str) - API的基础URL。
path (str) – API端点的路径,相对于基础URL。
method (str) – HTTP请求的方法(例如:'get'、'post')。
openapi_security (List[Dict[str, Any]]) – OpenAPI规范中定义的全局安全配置。
sec_schemas (Dict[str, Dict[str, Any]]) - 详细的安全方案。
operation (Dict[str, Any]) – 一个包含OpenAPI操作详情的字典,包括参数和请求体定义。
- Returns:
- 一个装饰器,当应用于函数时,能够
使函数根据提供的OpenAPI操作细节发起HTTP请求。
- Return type:
可调用
- Raises:
TypeError - 如果安全要求包含不受支持的类型。
ValueError - 如果环境变量中缺少必需的API密钥,或者请求正文的内容类型不受支持。
- openapi_spec_to_openai_schemas(api_name: str, openapi_spec: Dict[str, Any]) List[Dict[str, Any]][来源]#
将OpenAPI规范转换为OpenAI模式格式。
该函数遍历OpenAPI规范中定义的路径和操作,过滤掉已弃用的操作。对于每个操作,它会构建一个适合OpenAI格式的模式,包括操作元数据如函数名称、描述、参数和请求体。如果操作缺少描述或摘要,则会引发ValueError。
- Parameters:
api_name (str) – API的名称,用于为生成的函数名称添加前缀。
openapi_spec (Dict[str, Any]) – 以字典形式表示的OpenAPI规范。
- Returns:
- 一个字典列表,每个字典代表一个
符合OpenAI模式格式的函数,包含有关函数名称、描述和参数的详细信息。
- Return type:
List[Dict[str, Any]]
- Raises:
ValueError – 如果OpenAPI规范中的操作没有描述或摘要。
注意
该函数假设OpenAPI规范遵循3.0+格式。
- Reference:
camel.toolkits.openai_function 模块#
- class camel.toolkits.function_tool.FunctionTool(func: Callable, openai_tool_schema: Dict[str, Any] | None = None, synthesize_schema: bool | None = False, synthesize_schema_model: BaseModelBackend | None = None, synthesize_schema_max_retries: int = 2, synthesize_output: bool | None = False, synthesize_output_model: BaseModelBackend | None = None, synthesize_output_format: Type[BaseModel] | None = None)[来源]#
基类:
objectOpenAI聊天模型可调用函数的抽象。参见 https://platform.openai.com/docs/api-reference/chat/create。
默认情况下,工具模式将从函数中解析,或者您可以提供用户定义的工具模式来覆盖。
- Parameters:
func (Callable) – 要调用的函数。默认情况下,工具模式会从函数签名和文档字符串中解析。
openai_tool_schema (可选[字典[字符串, 任意类型]], 可选) – 用户自定义的OpenAI工具模式,用于覆盖默认结果。 (默认值:
None)synthesize_schema (Optional[bool], optional) - 是否启用模式助手模型,在验证失败或未提供有效模式时自动合成模式。(默认:
False)synthesize_schema_model (Optional[BaseModelBackend], optional) – 一个 用于合成模式的辅助模型(例如LLM模型),当synthesize_schema启用且未提供有效模式时使用。(默认值:
None)synthesize_schema_max_retries (int, optional) – 当先前尝试失败时,使用模式助手模型进行模式合成的最大重试次数。(默认值: 2)
synthesize_output (Optional[bool], optional) - 用于启用合成输出模式的标志,其中输出将基于函数的执行结果进行合成。(默认值:
False)synthesize_output_model (可选[BaseModelBackend], 可选) – 用于合成模式中输出合成的模型。 (默认值:
None)synthesize_output_format (Optional[Type[BaseModel]], optional) – 合成输出时的响应格式。(默认:
None)
- get_openai_function_schema() Dict[str, Any][来源]#
从OpenAI工具模式中获取函数的模式。
该方法提取并返回与此函数关联的OpenAI工具模式中特定于函数的部分。
- Returns:
- OpenAI工具中函数的模式
schema.
- Return type:
字典[字符串, 任意类型]
- get_openai_tool_schema() Dict[str, Any][来源]#
获取此函数的OpenAI工具模式。
该方法返回与此函数关联的OpenAI工具模式,在验证其符合OpenAI规范后。
- Returns:
此函数的OpenAI工具模式。
- Return type:
字典[字符串, 任意类型]
- get_parameter(param_name: str) Dict[str, Any][来源]#
从函数模式中获取特定参数的架构。
- Parameters:
param_name (str) – 要获取模式的参数名称。
- Returns:
指定参数的架构。
- Return type:
字典[字符串, 任意类型]
- get_paramter_description(param_name: str) str[来源]#
从函数模式中获取特定参数的描述。
- Parameters:
param_name (str) – 要获取描述的参数的名称。
- Returns:
指定参数的描述。
- Return type:
字符串
- property is_async: bool#
- property parameters: Dict[str, Any]#
获取属性
parameters的Getter方法。- Returns:
- 包含以下信息的字典
该函数的参数。
- Return type:
字典[字符串, 任意类型]
- set_function_description(description: str) None[来源]#
设置OpenAI工具模式中函数的描述。
- Parameters:
描述 (str) – 该函数的描述信息。
- set_openai_function_schema(openai_function_schema: Dict[str, Any]) None[来源]#
在OpenAI工具模式中设置函数的模式。
- Parameters:
openai_function_schema (Dict[str, Any]) – 要在OpenAI工具模式中设置的函数模式。
- set_openai_tool_schema(schema: Dict[str, Any]) None[来源]#
设置此函数的OpenAI工具模式。
允许为该函数设置自定义的OpenAI工具架构。
- Parameters:
schema (Dict[str, Any]) – 要设置的OpenAI工具模式。
- set_parameter(param_name: str, value: Dict[str, Any])[来源]#
设置函数模式中特定参数的架构。
- Parameters:
param_name (str) - 要为其设置模式的参数名称。
value (Dict[str, Any]) – 要为参数设置的schema。
- set_paramter_description(param_name: str, description: str) None[来源]#
为函数模式中的特定参数设置描述。
- Parameters:
param_name (str) – 要设置描述的参数名称。
description (str) - 参数的描述信息。
- synthesize_execution_output(args: tuple[Any, ...] | None = None, kwargs: Dict[str, Any] | None = None) Any[来源]#
根据提供的位置参数和关键字参数,合成函数的输出。
- Parameters:
args (可选[tuple]) – 在合成过程中传递给函数的位置参数。(默认值:
None)kwargs (可选[Dict[str, Any]]) – 在合成过程中传递给函数的关键字参数。(默认值:
None)
- Returns:
- 函数执行生成的合成输出。如果未提供
合成模型,则会记录警告信息。
- Return type:
任何
- synthesize_openai_tool_schema(max_retries: int | None = None) Dict[str, Any][来源]#
为指定函数合成一个OpenAI工具模式。
该方法使用语言模型(LLM)为指定函数合成OpenAI工具模式,首先生成文档字符串,然后基于函数源代码创建模式。如果失败,模式合成和验证过程最多会重试max_retries次。
- Parameters:
max_retries (Optional[int], optional) – 如果模式合成和验证过程失败时的最大重试次数。(默认值:
None)- Returns:
该函数的OpenAI工具合成模式。
- Return type:
字典[字符串, 任意类型]
- Raises:
ValueError – 如果模式合成或验证在达到最大重试次数后仍然失败,将引发ValueError错误,提示需要手动设置模式。
- static validate_openai_tool_schema(openai_tool_schema: Dict[str, Any]) None[来源]#
验证OpenAI工具模式是否符合
ToolAssistantToolsFunction。 此函数检查提供的openai_tool_schema是否遵循 OpenAI的ToolAssistantToolsFunction所需规范。它确保 函数描述和参数根据JSON模式规范正确格式化。 :param openai_tool_schema: 要验证的OpenAI工具模式验证。
- Raises:
ValidationError - 如果模式不符合规范时抛出。
SchemaError - 如果参数不符合JSON Schema引用规范。
- camel.toolkits.function_tool.generate_docstring(code: str, model: BaseModelBackend | None = None) str[来源]#
使用LLM为给定函数代码生成文档字符串。
该函数利用语言模型为提供的Python函数生成符合PEP 8/PEP 257规范的文档字符串。 如果未提供模型,则默认使用gpt-4o-mini。
- Parameters:
code (str) – 函数的源代码。
model (可选[BaseModelBackend]) – 一个可选的语言模型后端实例。如果未提供,则默认使用gpt-4o-mini。
- Returns:
生成的文档字符串。
- Return type:
字符串
- camel.toolkits.function_tool.get_openai_function_schema(func: Callable) Dict[str, Any][来源]#
根据OpenAI函数的签名生成一个模式字典。
此函数已弃用,未来版本将由
get_openai_tool_schema()替代。它会解析 函数的参数和文档字符串来构建类似JSON模式的 字典。- Parameters:
func (可调用对象) – 用于生成模式( schema )的OpenAI函数。
- Returns:
- 表示该函数JSON模式的字典
包括其名称、描述和参数规范。
- Return type:
字典[字符串, 任意类型]
- camel.toolkits.function_tool.get_openai_tool_schema(func: Callable) Dict[str, Any][来源]#
根据给定的Python函数生成OpenAI JSON模式。
该函数根据提供的Python函数创建一个与OpenAI API规范兼容的模式。它会处理函数的参数、类型和文档字符串,并相应地构建模式。
注意
- Parameters:
func (Callable) – 将被转换为OpenAI JSON模式的Python函数。
- Returns:
- 表示所提供函数的OpenAI JSON模式的字典
。
- Return type:
字典[字符串, 任意类型]
另请参阅
- `OpenAI API Reference
<https://platform.openai.com/docs/api-reference/assistants/object>`_
camel.toolkits.reddit_toolkit 模块#
- class camel.toolkits.reddit_toolkit.RedditToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个代表Reddit操作工具包的类。
该工具包提供了与Reddit API交互的方法,允许用户收集热门帖子、对评论进行情感分析,并跟踪多个子版块中的关键词讨论。
- retries#
API请求失败时的重试次数。
- Type:
int
- delay#
重试之间的延迟时间(以秒为单位)。
- Type:
浮点数
- reddit#
Reddit客户端的一个实例。
- Type:
Reddit
- collect_top_posts(subreddit_name: str, post_limit: int = 5, comment_limit: int = 5) List[Dict[str, Any]] | str[来源]#
收集指定子版块的热门帖子及其评论。
- Parameters:
subreddit_name (str) – 要从中收集帖子的subreddit名称。
post_limit (int) – 要收集的热门帖子最大数量。默认为5。
comment_limit (int) – 每篇帖子收集的热门评论的最大数量。默认为5。
- Returns:
- 一个字典列表,每个
包含帖子标题及其热门评论(如果成功)。 如果凭据未设置则显示字符串警告。
- Return type:
Union[List[Dict[str, Any]], str]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表,用于
工具包方法。
- Return type:
列表[FunctionTool]
- perform_sentiment_analysis(data: List[Dict[str, Any]]) List[Dict[str, Any]][来源]#
对从Reddit帖子收集的评论进行情感分析。
- Parameters:
data (List[Dict[str, Any]]) – 包含Reddit帖子和评论数据的字典列表。
- Returns:
- 原始数据添加了每条评论的‘情感
评分’。
- Return type:
List[Dict[str, Any]]
- track_keyword_discussions(subreddits: List[str], keywords: List[str], post_limit: int = 10, comment_limit: int = 10, sentiment_analysis: bool = False) List[Dict[str, Any]] | str[来源]#
追踪指定子版块中关于特定关键词的讨论。
- Parameters:
subreddits (List[str]) – 要在其中搜索的subreddit名称列表。
keywords (List[str]) – 用于跟踪子论坛讨论中的关键词列表
post_limit (int) – 每个subreddit收集的热门帖子最大数量。默认为10。
comment_limit (int) – 每篇帖子收集的热门评论的最大数量。默认为 10。
sentiment_analysis (bool) – 如果为True,将对评论进行情感分析。默认为False。
- Returns:
- 字典列表
包含子版块名称、帖子标题、评论内容以及每个包含指定关键词评论的点赞数(如果成功)。如果凭据未设置则返回字符串警告。
- Return type:
Union[List[Dict[str, Any]], str]
camel.toolkits.retrieval_toolkit 模块#
- class camel.toolkits.retrieval_toolkit.RetrievalToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示信息检索工具包的类。
该类提供了基于指定查询从本地向量存储系统中检索信息的方法。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- information_retrieval(query: str, contents: str | List[str], top_k: int = 1, similarity_threshold: float = 0.7) str[来源]#
从本地向量存储中根据指定查询检索信息。该函数连接到本地向量存储系统,并通过处理输入查询来获取相关信息。当问题的答案需要依赖外部知识源时,使用此函数至关重要。
- Parameters:
query (str) – 需要回答的问题或查询。
contents (Union[str, List[str]]) - 本地文件路径、远程URL或字符串内容。
top_k (int, optional) – 在检索过程中返回的顶部结果数量。必须为正整数。默认为DEFAULT_TOP_K_RESULTS。
similarity_threshold (float, optional) – 用于过滤结果的相似度阈值。默认为 DEFAULT_SIMILARITY_THRESHOLD。
- Returns:
- 查询返回的信息,经过汇总
并格式化为字符串。
- Return type:
字符串
示例
# 获取关于CAMEL AI的信息。 information_retrieval(query = "如何为CAMEL AI做贡献?",
contents=”camel-ai/camel”)
camel.toolkits.search_toolkit 模块#
- class camel.toolkits.search_toolkit.SearchToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个代表网页搜索工具包的类。
该类提供了使用搜索引擎(如Google、DuckDuckGo、Wikipedia、Wolfram Alpha和Brave)在网络上搜索信息的方法。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- query_wolfram_alpha(query: str, is_detailed: bool = False) str | Dict[str, Any][来源]#
查询Wolfram|Alpha并返回结果。Wolfram|Alpha是由Wolfram Research开发的答案引擎。它作为一项在线服务提供,通过从外部来源数据计算答案来回答事实查询。
- Parameters:
query (str) – 要发送给Wolfram Alpha的查询语句。
is_detailed (bool) - 是否在结果中包含包括逐步信息在内的额外细节。 (默认:
False)
- Returns:
- Wolfram Alpha返回的结果。
如果is_detailed为False则返回字符串,否则返回包含详细信息的字典。
- Return type:
Union[str, Dict[str, Any]]
- search_baidu(query: str, max_results: int = 5) Dict[str, Any][来源]#
通过网页抓取方式使用百度搜索获取相关搜索结果。该方法查询百度的搜索引擎并提取包括标题、描述和URL在内的搜索结果。
- Parameters:
query (str) – 要提交给百度的搜索查询字符串。
max_results (int) – 返回结果的最大数量。 (默认值:
5)
- Returns:
- 包含搜索结果或错误的字典
消息。
- Return type:
字典[字符串, 任意类型]
- search_bing(query: str, max_results: int = 5) Dict[str, Any][来源]#
使用Bing搜索引擎搜索给定查询的信息。
该函数通过网页抓取查询中文版必应搜索引擎(cn.bing.com),获取相关搜索结果。它会提取包括标题、摘要和URL在内的搜索结果。当查询内容为中文或需要中文搜索结果时,此函数特别有用。
- Parameters:
query (str) – 要提交给Bing的搜索查询字符串。对于中文查询或需要中文结果时效果最佳。
max_results (int) – 要返回的最大结果数量。 (默认:
5)
- Returns:
- 包含以下任一内容的字典:
- 'results': 字典列表,每个字典包含:
'result_id': 结果的索引。
'snippet': 搜索结果的简要描述。
'title': 搜索结果的标题。
'link': 搜索结果的URL。
或 'error': 如果出错时的错误信息。
- Return type:
字典 ([字符串, 任意类型])
- search_bocha(query: str, freshness: str = 'noLimit', summary: bool = False, count: int = 10, page: int = 1) Dict[str, Any][来源]#
查询Bocha AI搜索API并返回搜索结果。
- Parameters:
query (str) – 搜索查询语句。
freshness (str) – 用于筛选搜索结果的时间范围。默认为"noLimit"。可选选项包括: - 'noLimit': 无限制(默认)。 - 'oneDay': 过去一天。 - 'oneWeek': 过去一周。 - 'oneMonth': 过去一个月。 - 'oneYear': 过去一年。
summary (bool) – 是否在结果中包含文本摘要。默认为False。
count (int) – 要返回的结果数量(1-50)。默认值为10。
page (int) – 结果的页码。默认为1。
- Returns:
- 包含搜索结果的字典,包括
网页、图片和视频(如果有的话)。该结构遵循Bocha AI搜索API响应格式。
- Return type:
字典[字符串, 任意类型]
- search_brave(q: str, country: str = 'US', search_lang: str = 'en', ui_lang: str = 'en-US', count: int = 20, offset: int = 0, safesearch: str = 'moderate', freshness: str | None = None, text_decorations: bool = True, spellcheck: bool = True, result_filter: str | None = None, goggles_id: str | None = None, units: str | None = None, extra_snippets: bool | None = None, summary: bool | None = None) Dict[str, Any][来源]#
该函数查询Brave搜索引擎API并返回一个字典,表示搜索结果。 详情请参阅https://api.search.brave.com/app/documentation/web-search/query
- Parameters:
q (str) – 用户的搜索查询词。查询不能为空。查询最多400个字符和50个单词。
country (str) – 搜索结果来源的查询国家。 国家字符串仅限于2个字符的国家代码, 支持的国家列表。有关支持的值列表,请参阅 国家代码。(默认: :obj:`US `)
search_lang (str) – 搜索语言偏好。用于提供搜索结果的2个或更多字符的语言代码。有关可能值的列表,请参阅语言代码。
ui_lang (str) – 响应中首选的用户界面语言。 通常格式为'<语言代码>-<国家代码>'。 更多信息请参阅RFC 9110。有关支持的值列表,请参见UI语言代码。
count (int) – 返回的搜索结果数量。 最大值为20。实际返回数量可能少于请求数量。 将此参数与offset结合使用可实现搜索结果分页。
offset (int) – 基于零的偏移量,表示在返回结果前要跳过的每页搜索结果数量(计数)。最大值为9。实际返回数量可能少于请求值,具体取决于查询条件。要实现分页效果,请将此参数与count参数配合使用。例如,如果您的用户界面每页显示20个搜索结果,设置count为20且offset为0可显示第一页结果。要获取后续页面,将offset每次递增1(如0,1,2)。不同页面之间的结果可能存在重叠。
safesearch (str) –
过滤搜索结果中的成人内容。 支持以下值: - 'off': 不进行任何过滤。 - 'moderate': 过滤露骨内容,如图片和视频,
但允许搜索结果中出现成人域名。
'strict': 从搜索结果中移除所有成人内容。
freshness (可选[str]) –
按发现时间筛选搜索结果: - 'pd':过去24小时内发现的。 - 'pw':过去7天内发现的。 - 'pm':过去31天内发现的。 - 'py':过去365天内发现的。 - 'YYYY-MM-DDtoYYYY-MM-DD':也支持通过
指定日期范围来设置时间段,例如'2022-04-01to2022-07-30'。
text_decorations (bool) - 是否在显示字符串(例如结果片段)中包含装饰标记(例如高亮字符)。
spellcheck (bool) – 是否对提供的查询进行拼写检查。如果启用了拼写检查器,修改后的查询将始终用于搜索。修改后的查询可以在查询响应模型的altered键中找到。
result_filter (可选[str]) - 一个用逗号分隔的字符串,用于指定要在搜索结果响应中包含的结果类型。如果不指定此参数,将返回所有可获得数据且订阅了相应选项计划的结果类型。响应始终包含query和type,分别用于标识任何查询修改和响应类型。可用的结果过滤值包括: - 'discussions' - 'faq' - 'infobox' - 'news' - 'query' - 'summarizer' - 'videos' - 'web' - 'locations'
goggles_id (可选[str]) – Goggles 作为在 Brave 搜索索引之上的自定义重新排序工具。更多详情,请参考 Goggles 代码库。
units (可选[str]) – 测量单位。如果未提供,单位将从搜索国家/地区派生。可能的值为: - 'metric':标准公制单位系统 - 'imperial':英制单位系统
extra_snippets (Optional[bool]) – 片段是从查询结果页面中获取的摘录,而extra_snippets允许您获取最多5个额外的备选摘录。仅适用于Free AI、Base AI、Pro AI、Base Data、Pro Data和Custom套餐。
summary (可选[bool]) – 此参数用于在网页搜索结果中生成摘要关键词。这是启用摘要功能所必需的。
- Returns:
表示搜索结果的字典。
- Return type:
字典[字符串, 任意类型]
- search_duckduckgo(query: str, source: str = 'text', max_results: int = 5) List[Dict[str, Any]][来源]#
使用DuckDuckGo搜索引擎搜索给定查询的信息。
该函数查询DuckDuckGo API获取与给定搜索词相关的主题。结果会被格式化为一个字典列表,每个字典代表一个搜索结果。
- Parameters:
query (str) – 要搜索的查询语句。
source (str) – 要查询的信息类型(例如:"text"、"images"、"videos")。默认为"text"。
max_results (int) – 最大结果数量,默认为5。
- Returns:
- 一个字典列表,其中每个字典
代表一个搜索结果。
- Return type:
List[Dict[str, Any]]
- search_exa(query: str, search_type: Literal['auto', 'neural', 'keyword'] = 'auto', category: Literal['company', 'research paper', 'news', 'pdf', 'github', 'tweet', 'personal site', 'linkedin profile', 'financial report'] | None = None, num_results: int = 10, include_text: List[str] | None = None, exclude_text: List[str] | None = None, use_autoprompt: bool = True, text: bool = False) Dict[str, Any][来源]#
使用Exa搜索API执行智能网络搜索,可选择内容提取。
- Parameters:
query (str) – 搜索查询字符串。
search_type (Literal["auto", "neural", "keyword"]) – 要执行的搜索类型。"auto"会自动在关键词搜索和神经搜索之间做出选择。(默认值:
"auto")category (可选[Literal]) – 用于聚焦搜索的类别,例如"研究论文"或"新闻"。(默认:
None)num_results (int) – 要返回的结果数量(最多100个)。 (默认值:
10)include_text (可选[列表[字符串]]) – 必须出现在网页文本中的字符串。限制为1个最多5个单词的字符串。 (默认值:
None)exclude_text (Optional[List[str]]) – 网页文本中必须不包含的字符串。限制为最多5个单词的1个字符串。 (default:
None)use_autoprompt (bool) – 是否使用Exa的autoprompt功能来增强查询。(默认:
True)text (bool) – 是否在结果中包含网页内容。 (默认:
False)
- Returns:
- 包含搜索结果和元数据的字典:
requestId (str): 请求的唯一标识符
autopromptString (str): 如果启用则生成的自动提示
autoDate (str): 自动提示生成的时间戳
resolvedSearchType (str): 实际使用的搜索类型
results (List[Dict]): 带有元数据的搜索结果列表
searchType (str): 被选中的搜索类型
costDollars (Dict): API费用的明细
- Return type:
字典[字符串, 任意类型]
- search_google(query: str, num_result_pages: int = 5) List[Dict[str, Any]][来源]#
使用Google搜索引擎搜索给定查询的信息。
- Parameters:
query (str) – 要搜索的查询语句。
num_result_pages (int) – 要检索的结果页数。
- Returns:
一个字典列表,其中每个字典代表一个网站。
每个字典包含以下键: - 'result_id': 顺序编号。 - 'title': 网站标题。 - 'description': 网站简要描述。 - 'long_description': 网站更多详细信息。 - 'url': 网站URL。
示例: {
'result_id': 1, 'title': 'OpenAI', 'description': '一个致力于确保人工通用智能造福全人类的组织。', 'long_description': 'OpenAI是一家非营利性人工智能研究公司。我们的目标是以最有可能造福全人类的方式推进数字智能', 'url': 'https://www.openai.com'
}
网站的标题、描述和URL。
- Return type:
List[Dict[str, Any]]
- search_linkup(query: str, depth: Literal['standard', 'deep'] = 'standard', output_type: Literal['searchResults', 'sourcedAnswer', 'structured'] = 'searchResults', structured_output_schema: str | None = None) Dict[str, Any][来源]#
在Linkup API中搜索查询并以多种格式返回结果。
- Parameters:
query (str) – 搜索查询语句。
depth (Literal["standard", "deep"]) – 搜索的深度。 "standard"表示简单搜索,"deep"表示更全面的搜索。
(Literal["searchResults" (output_type) – “structured”]): 输出类型: - "searchResults"表示原始搜索结果, - "sourcedAnswer"表示带有支持来源的答案, - "structured"表示基于提供的模式输出。
"sourcedAnswer" – "structured"]): 输出类型: - "searchResults" 表示原始搜索结果, - "sourcedAnswer" 表示带有支持来源的答案, - "structured" 表示基于提供的模式输出。
- :param“structured”]): The type of output:
"searchResults" 表示原始搜索结果,
"sourcedAnswer"表示带有支持来源的答案,
"structured"表示基于提供的模式输出。
- Parameters:
structured_output_schema (可选[str]) – 如果output_type是 "structured",则指定输出的模式。必须是一个 表示有效对象JSON模式的字符串。
- Returns:
- 表示搜索结果的字典。
结构取决于output_type。如果发生错误,将返回错误信息。
- Return type:
字典[字符串, 任意类型]
- search_wiki(entity: str) str[来源]#
- Search the entity in WikiPedia and return the summary of the
必填页面,包含有关给定实体的真实信息。
- Parameters:
entity (str) – 要搜索的实体。
- Returns:
- 搜索结果。如果该实体对应的页面
存在,则以字符串形式返回该实体的摘要。
- Return type:
字符串
- tavily_search(query: str, num_results: int = 5, **kwargs) List[Dict[str, Any]][来源]#
使用Tavily搜索API为给定查询搜索信息。
- Parameters:
query (str) – 要搜索的查询语句。
num_results (int) – 要检索的搜索结果数量(默认为5)。
**kwargs –
Tavily API支持的其他可选参数: - search_depth (str): "basic"或"advanced"搜索深度。 - topic (str): 搜索类别,例如"general"或"news"。 - days (int): 新闻相关搜索的时间范围(天数)。 - max_results (int): 返回的最大结果数量
(覆盖num_results)。
详情请参阅https://docs.tavily.com/docs/python-sdk/tavily-search/ api-reference。
- Returns:
- 表示搜索结果的字典列表
每个字典包含: - 'result_id' (int): 结果的索引编号 - 'title' (str): 结果的标题 - 'description' (str): 结果的简要描述 - 'long_description' (str): 详细信息(如果有) - 'url' (str): 结果的URL链接 - 'content' (str): 搜索结果中的相关内容 - 'images' (list): 相关图片列表(如果
include_images为True时显示)
'published_date' (str): 新闻主题的发布日期(如果有)
- Return type:
List[Dict[str, Any]]
camel.toolkits.slack_toolkit 模块#
- class camel.toolkits.slack_toolkit.SlackToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Slack操作工具包的类。
该类提供了Slack操作的方法,例如创建新频道、加入现有频道、离开频道。
- create_slack_channel(name: str, is_private: bool | None = True) str[来源]#
创建一个新的Slack频道,可以是公开的或私密的。
- Parameters:
name (str) – 要创建的公共或私有频道的名称。
is_private (bool, optional) – 是否创建私有频道而非公共频道。默认为 True。
- Returns:
- 包含Slack相关信息的JSON字符串
频道已创建。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
- delete_slack_message(time_stamp: str, channel_id: str) str[来源]#
向Slack频道删除一条消息。
- Parameters:
time_stamp (str) - 要删除消息的时间戳。
channel_id (str) - 要删除消息的Slack频道ID。
- Returns:
- 指示消息是否被成功删除的确认信息
或错误消息。
- Return type:
字符串
- Raises:
SlackApiError – 发送消息时发生错误。
- get_slack_channel_information() str[来源]#
- Retrieve Slack channels and return relevant information in JSON
格式。
- Returns:
包含Slack频道信息的JSON字符串。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
- get_slack_channel_message(channel_id: str) str[来源]#
从Slack频道检索消息。
- Parameters:
channel_id (str) – 要从中检索消息的Slack频道ID。
- Returns:
包含过滤后消息数据的JSON字符串。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道消息时出现错误。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- join_slack_channel(channel_id: str) str[来源]#
加入现有的Slack频道。
- Parameters:
channel_id (str) – 要加入的Slack频道ID。
- Returns:
- 显示是否成功加入的确认消息
或错误信息。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
camel.toolkits.twitter_toolkit 模块#
- class camel.toolkits.twitter_toolkit.TwitterToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Twitter操作工具包的类。
该类提供了创建推文、删除推文以及获取认证用户个人资料信息的方法。
参考文献
https://developer.x.com/en/portal/dashboard
注意事项
要使用此工具包,您需要设置以下环境变量: - TWITTER_CONSUMER_KEY: Twitter API的消费者密钥。 - TWITTER_CONSUMER_SECRET: Twitter API的消费者密钥密文。 - TWITTER_ACCESS_TOKEN: Twitter API的访问令牌。 - TWITTER_ACCESS_TOKEN_SECRET: Twitter API的访问令牌密文
API。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- camel.toolkits.twitter_toolkit.create_tweet(text: str, poll_options: List[str] | None = None, poll_duration_minutes: int | None = None, quote_tweet_id: int | str | None = None) str[来源]#
创建一条新推文,可选择包含投票或引用推文,或仅发布纯文本推文。
此函数向Twitter API发送POST请求以创建一条新推文。该推文可以是纯文本推文,也可以选择包含投票或是引用推文。在创建推文前会向用户显示确认提示。
- Parameters:
text (str) – 推文的文本内容。Twitter对单条推文的字符限制是280个字符。
poll_options (可选[列表[字符串]]) - 用于带有投票的推文的投票选项列表。
poll_duration_minutes (Optional[int]) - 对于包含投票的推文,投票持续时间的分钟数。仅当请求中包含poll_options时才需要此参数。
quote_tweet_id (Optional[Union[int, str]]) - 被引用推文的链接。
- Returns:
- 一条表示推文创建成功的消息,
包含推文ID和文本内容。如果向Twitter API的请求未成功,则返回错误信息。
- Return type:
字符串
注意
您只能提供quote_tweet_id参数,或者poll_duration_minutes和poll_options这对参数,但不能同时提供两者。
- camel.toolkits.twitter_toolkit.delete_tweet(tweet_id: str) str[来源]#
为授权用户删除指定ID的推文。
此函数向Twitter API发送DELETE请求以删除指定ID的推文。在发送请求之前,它会提示用户确认删除操作。
- Parameters:
tweet_id (str) – 要删除的推文ID。
- Returns:
- 一条指示删除结果的消息。如果
删除成功,该消息包含被删除推文的ID。如果删除未成功,该消息包含一条错误信息。
- Return type:
字符串
- camel.toolkits.twitter_toolkit.get_my_user_profile() str[来源]#
获取认证用户的Twitter个人资料信息。
该函数向Twitter API发送GET请求,以获取认证用户的个人资料信息,包括其置顶推文。然后,它会将这些信息格式化为可读的报告。
- Returns:
- 经过格式化的已认证用户Twitter个人资料报告
信息。包括用户ID、姓名、用户名、个人简介、所在地、最新推文ID、头像图片URL、账号创建日期、保护状态、认证类型、公开指标以及置顶推文信息。如果向Twitter API发出的请求未成功,将返回错误信息。
- Return type:
字符串
- camel.toolkits.twitter_toolkit.get_user_by_username(username: str) str[来源]#
通过用户名(handle)获取一个用户的Twitter个人资料信息。
此函数向Twitter API发送GET请求以获取用户个人资料信息,包括其置顶推文。然后将这些信息格式化为可读报告。
- Parameters:
username (str) – 要检索用户的用户名(handle)。
- Returns:
- 用户Twitter个人资料信息的格式化报告。
包括用户ID、姓名、用户名、个人简介、所在地、 最新推文ID、头像图片URL、账号创建日期、 保护状态、验证类型、公开指标以及 置顶推文信息。如果向Twitter API的请求 未成功,则返回错误信息。
- Return type:
字符串
camel.toolkits.weather_toolkit 模块#
- class camel.toolkits.weather_toolkit.WeatherToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与天气数据交互的工具包的类。
该类提供了使用OpenWeatherMap API获取指定城市天气数据的方法。
- get_openweathermap_api_key() str[来源]#
从环境变量中获取OpenWeatherMap API密钥。
- Returns:
OpenWeatherMap API密钥。
- Return type:
字符串
- Raises:
ValueError - 如果在环境中找不到API密钥
变量. –
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- get_weather_data(city: str, temp_units: Literal['kelvin', 'celsius', 'fahrenheit'] = 'kelvin', wind_units: Literal['meters_sec', 'miles_hour', 'knots', 'beaufort'] = 'meters_sec', visibility_units: Literal['meters', 'miles'] = 'meters', time_units: Literal['unix', 'iso', 'date'] = 'unix') str[来源]#
获取并返回指定城市的综合天气报告,以字符串形式呈现。该报告包含当前天气状况、温度、风力详情、能见度以及日出/日落时间,所有信息均格式化为易读的字符串。
该函数与OpenWeatherMap API交互以获取数据。
- Parameters:
city (str) – 需要获取天气信息的城市名称。格式为"城市, 国家代码"(例如"Paris, FR"表示法国巴黎)。如果未提供国家代码,API将在所有国家中搜索该城市,当存在多个同名城市时可能导致错误结果。
temp_units (Literal['kelvin', 'celsius', 'fahrenheit']) – 温度单位。(默认:
kelvin)wind_units – (Literal['meters_sec', 'miles_hour', 'knots', 'beaufort']): 风速的单位。(默认:
meters_sec)visibility_units (Literal['meters', 'miles']) – 能见度距离的单位。(默认:
meters)time_units (Literal['unix', 'iso', 'date']) – 日出和日落时间的格式。(默认:
unix)
- Returns:
- 一个包含获取到的天气数据的字符串,格式化为
可读的形式。如果发生错误,将返回指示错误的消息。
- Return type:
字符串
- Example of return string:
“法国巴黎天气:15°C,体感温度13°C。最高气温:17°C, 最低气温:12°C。 风速:5米/秒,风向270度。能见度:10公里。 日出时间:05:46:05(UTC),日落时间:18:42:20(UTC)。"
注意
- Please ensure that the API key is valid and has permissions
访问天气数据。
模块内容#
- class camel.toolkits.ArxivToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于与arXiv API交互以搜索和下载学术论文的工具包。
- download_papers(query: str, paper_ids: List[str] | None = None, max_results: int | None = 5, output_dir: str | None = './') str[来源]#
根据提供的查询从arXiv下载学术论文的PDF文件。
- Parameters:
query (str) – 搜索查询字符串。
paper_ids (List[str], optional) – 要下载的特定arXiv论文ID列表。(默认值: :obj: None)
max_results (int, optional) – 要下载的搜索结果最大数量。(默认: :obj: 5)
output_dir (str, optional) - 用于保存下载PDF文件的目录。默认为当前目录。
- Returns:
状态消息,指示成功或失败。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- search_papers(query: str, paper_ids: List[str] | None = None, max_results: int | None = 5) List[Dict[str, str]][来源]#
使用查询字符串和可选的论文ID在arXiv上搜索学术论文。
- Parameters:
query (str) – 搜索查询字符串。
paper_ids (List[str], optional) – 要搜索的特定arXiv论文ID列表。(默认: :obj: None)
max_results (int, optional) – 要返回的最大搜索结果数量。(默认: :obj: 5)
- Returns:
- 一个字典列表,每个字典包含
关于论文的信息,包括标题、发表日期、作者、条目ID、摘要以及从论文中提取的文本。
- Return type:
List[Dict[str, str]]
- camel.toolkits.AskNewsToolkit(*args, **kwargs)[来源]#
一个表示用于与AskNews API交互的工具包的类。
该类提供了使用AskNews API基于用户查询获取新闻、故事和其他内容的方法。
- class camel.toolkits.AsyncAskNewsToolkit[来源]#
基类:
BaseToolkit一个表示用于异步与AskNews API交互的工具包的类。
该类提供使用AskNews API基于用户查询获取新闻、故事和其他内容的方法。
- async get_news(query: str, n_articles: int = 10, return_type: Literal['string', 'dicts', 'both'] = 'string', method: Literal['nl', 'kw'] = 'kw') str | dict | Tuple[str, dict][来源]#
根据用户查询获取新闻或故事。
- Parameters:
query (str) – 用于获取相关新闻或故事的搜索查询。
n_articles (int) – 响应中包含的文章数量。 (默认: :obj:10)
return_type (Literal["string", "dicts", "both"]) – 返回值的格式。(默认: :obj:”string”)
method (Literal["nl", "kw"]) – 搜索方法,"nl"表示自然语言搜索,"kw"表示关键词搜索(默认值::obj:”kw”)
- Returns:
- 字符串,
字典,或同时包含新闻/故事内容,若处理失败则包含错误信息。
- Return type:
Union[str, dict, Tuple[str, dict]]
- async get_stories(query: str, categories: List[Literal['Politics', 'Economy', 'Finance', 'Science', 'Technology', 'Sports', 'Climate', 'Environment', 'Culture', 'Entertainment', 'Business', 'Health', 'International']], reddit: int = 3, expand_updates: bool = True, max_updates: int = 2, max_articles: int = 10) dict | str[来源]#
根据提供的参数获取故事。
- Parameters:
query (str) - 用于获取相关故事的搜索查询。
categories (list) – 用于筛选故事的分类列表。
reddit (int) – 要包含的Reddit线程数量。 (默认值:
3)expand_updates (bool) - 是否包含详细更新。 (默认:
True)max_updates (int) – 每个故事的最大最近更新次数。 (默认值:
2)max_articles (int) – 每次更新关联的最大文章数量。(默认值:
10)
- Returns:
- 包含故事及其相关数据的字典
如果处理失败则返回错误信息。
- Return type:
联合[字典, 字符串]
- get_tools() List[FunctionTool][来源]#
- Returns a list of FunctionTool objects representing the functions
在工具包中。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- async get_web_search(queries: List[str], return_type: Literal['string', 'dicts', 'both'] = 'string') str | dict | Tuple[str, dict][来源]#
根据给定的查询执行实时网络搜索。
- Parameters:
queries (List[str]) – 搜索查询的列表。
return_type (Literal["string", "dicts", "both"]) – 返回值的格式。(默认:
"string")
- Returns:
- 一个字符串,
字典, 或同时包含搜索结果, 如果进程失败则包含错误信息。
- Return type:
Union[str, dict, Tuple[str, dict]]
- async query_finance(asset: Literal['bitcoin', 'ethereum', 'cardano', 'uniswap', 'ripple', 'solana', 'polkadot', 'polygon', 'chainlink', 'tether', 'dogecoin', 'monero', 'tron', 'binance', 'aave', 'tesla', 'microsoft', 'amazon'], metric: Literal['news_positive', 'news_negative', 'news_total', 'news_positive_weighted', 'news_negative_weighted', 'news_total_weighted'] = 'news_positive', return_type: Literal['list', 'string'] = 'string', date_from: datetime | None = None, date_to: datetime | None = None) list | str[来源]#
获取指定资产、指标和日期范围内的资产情绪数据。
- Parameters:
asset (Literal) – 要获取情绪数据的资产。
metric (Literal) – 要分析的情感指标。
return_type (Literal["list", "string"]) – 返回值的格式。(默认:
"string")date_from (datetime, optional) – 数据的起始日期和时间,采用ISO 8601格式。
date_to (datetime, optional) – 数据的结束日期和时间,使用ISO 8601格式。
- Returns:
- 包含日期时间的字典列表
以及数值或描述所有日期时间与数值对的字符串, 用于为感兴趣主题的新闻情绪提供量化时间序列数据, 如果处理失败则返回错误信息。
- Return type:
Union[列表, 字符串]
- async search_reddit(keywords: List[str], n_threads: int = 5, return_type: Literal['string', 'dicts', 'both'] = 'string', method: Literal['nl', 'kw'] = 'kw') str | dict | Tuple[str, dict][来源]#
根据提供的关键词搜索Reddit。
- Parameters:
keywords (list) – 要在Reddit上搜索的关键词列表。
n_threads (int) – 要总结并返回的Reddit线程数量。 (默认: :obj:5)
return_type (Literal["string", "dicts", "both"]) – 返回值的格式。(默认: :obj:”string”)
method (Literal["nl", "kw"]) – 搜索方法,可以是自然语言搜索的"nl"或关键词搜索的"kw"。 (默认值: :obj:”kw”)
- Returns:
- Reddit搜索
返回结果为字符串、字典或两者皆有,如果处理失败则返回错误信息。
- Return type:
Union[str, dict, Tuple[str, dict]]
- class camel.toolkits.AudioAnalysisToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit- ask_question_about_audio(audio_path: str, question: str) str[来源]#
询问关于音频的任何问题,并通过多模态模型获取答案。
- Parameters:
audio_path (str) - 音频文件的路径。
question (str) – 关于音频要询问的问题。
- Returns:
问题的答案。
- Return type:
字符串
- audio2text(audio_path: str) str[来源]#
将音频转录为文本。
- Parameters:
audio_path (str) - 音频文件或URL的路径。
- Returns:
转录的文本。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
- Returns a list of FunctionTool objects representing the functions
在工具包中。
- Returns:
- 表示工具包中函数的FunctionTool对象列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.BaseToolkit(timeout: float | None = None)[来源]#
基类:
object工具包的基础类。
- Parameters:
timeout (可选[float]) - 工具的超时时间。
- class FastMCP(name: str | None = None, instructions: str | None = None, **settings: Any)#
基类:
object- add_prompt(prompt: Prompt) None#
向服务器添加一个提示。
- Parameters:
prompt – 要添加的Prompt实例
- add_resource(resource: Resource) None#
向服务器添加资源。
- Parameters:
resource – 要添加的Resource实例
- add_tool(fn: Callable[[...], Any], name: str | None = None, description: str | None = None) None#
向服务器添加一个工具。
工具函数可以选择性地通过添加一个带有Context类型注解的参数来请求Context对象。有关示例,请参见@tool装饰器。
- Parameters:
fn – 要注册为工具的函数
name – 工具的可选名称(默认为函数名称)
description – 工具功能的可选描述
- async call_tool(name: str, arguments: dict[str, Any]) Sequence[TextContent | ImageContent | EmbeddedResource]#
通过名称调用工具并传入参数。
- get_context() Context[ServerSession, object]#
返回一个Context对象。请注意,该上下文仅在请求期间有效;在请求之外,大多数方法都会报错。
- async get_prompt(name: str, arguments: dict[str, Any] | None = None) GetPromptResult#
通过名称和参数获取提示。
- property instructions: str | None#
- async list_prompts() list[Prompt]#
列出所有可用的提示词。
- async list_resource_templates() list[ResourceTemplate]#
- async list_resources() list[Resource]#
列出所有可用资源。
- async list_tools() list[Tool]#
列出所有可用工具。
- property name: str#
- prompt(name: str | None = None, description: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
用于注册提示的装饰器。
- Args:
name: 提示的可选名称(默认为函数名) description: 提示功能的可选描述
- Example:
@server.prompt() def analyze_table(table_name: str) -> list[Message]:
schema = read_table_schema(table_name) return [
- {
“role”: “user”, “content”: f”分析这个架构:
- {schema}”
}
]
@server.prompt() async def analyze_file(path: str) -> list[Message]:
content = await read_file(path) return [
- {
“角色”: “用户”, “内容”: {
}
}
]
- async read_resource(uri: AnyUrl | str) Iterable[ReadResourceContents]#
通过URI读取资源。
- resource(uri: str, *, name: str | None = None, description: str | None = None, mime_type: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
装饰器,用于将函数注册为资源。
该函数将在读取资源时被调用以生成其内容。 函数可以返回: - str 表示文本内容 - bytes 表示二进制内容 - 其他类型将被转换为JSON
如果URI包含参数(例如"resource://{param}")或者函数具有参数,它将被注册为模板资源。
- Parameters:
uri – 资源的URI(例如"resource://my-resource"或"resource://{param}")
name – 资源的可选名称
description – 资源的可选描述
mime_type – 资源的可选MIME类型
示例
@server.resource(“resource://my-resource”) def get_data() -> str:
return “Hello, world!”
@server.resource("resource://my-resource") async get_data() -> str:
data = await fetch_data() return f"你好,世界! {data}"
@server.resource(“resource://{city}/weather”) def get_weather(city: str) -> str:
返回 f"{city}的天气"
@server.resource(“resource://{city}/weather”) async def get_weather(city: str) -> str:
data = await fetch_weather(city) return f"城市{city}的天气: {data}"
- run(transport: Literal['stdio', 'sse'] = 'stdio') None#
运行FastMCP服务器。请注意这是一个同步函数。
- Parameters:
transport – 使用的传输协议("stdio" 或 "sse")
- async run_sse_async() None#
使用SSE传输运行服务器。
- async run_stdio_async() None#
使用stdio传输运行服务器。
- sse_app() Starlette#
返回一个SSE服务器应用的实例。
- tool(name: str | None = None, description: str | None = None) Callable[[Callable[[...], Any]], Callable[[...], Any]]#
用于注册工具的装饰器。
工具可以选择性地通过添加带有Context类型注解的参数来请求Context对象。该上下文提供了对MCP功能的访问,如日志记录、进度报告和资源访问。
- Parameters:
name – 工具的可选名称(默认为函数名称)
description – 工具功能的可选描述
示例
@server.tool() def my_tool(x: int) -> str:
return str(x)
@server.tool() def tool_with_context(x: int, ctx: Context) -> str:
ctx.info(f"正在处理 {x}") return str(x)
@server.tool() async def async_tool(x: int, context: Context) -> str:
await context.report_progress(50, 100) return str(x)
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- timeout: float | None = None#
- class camel.toolkits.BrowserToolkit(headless: bool = False, cache_dir: str | None = None, channel: Literal['chrome', 'msedge', 'chromium'] = 'chromium', history_window: int = 5, web_agent_model: BaseModelBackend | None = None, planning_agent_model: BaseModelBackend | None = None, output_language: str = 'en')[来源]#
基类:
BaseToolkit一个用于浏览网页并与网页交互的类。
该类提供了浏览网页以及与网页交互的方法。
- browse_url(task_prompt: str, start_url: str, round_limit: int = 12) str[来源]#
一个强大的工具包,可以模拟浏览器交互来解决需要多步操作的任务。
- Parameters:
task_prompt (str) – 需要解决的任务提示。
start_url (str) - 要访问的起始URL。
round_limit (int) – 解决任务的轮次限制。 (默认:
12).
- Returns:
任务模拟结果。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.CodeExecutionToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于代码执行的工具包。
- Parameters:
sandbox (str) - 用于执行代码的环境类型。 (默认: subprocess)
verbose (bool) - 是否打印代码执行的输出。 (默认:
False)unsafe_mode (bool) - 如果为True,解释器将通过eval()运行代码而不进行任何安全检查。(默认值:
False)import_white_list (可选[列表[字符串]]) – 允许导入的列表。 (默认:
None)require_confirm (bool) – 是否在执行代码前需要确认。 (默认:
False)
- execute_code(code: str) str[来源]#
执行给定的代码片段。
- Parameters:
code (str) – 输入到Code Interpreter工具调用的代码。
- Returns:
来自Code Interpreter工具调用的文本输出。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.DalleToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示使用OpenAI的DALL-E模型进行图像生成的工具包类。
- base64_to_image(base64_string: str) Image | None[来源]#
将base64编码的字符串转换为PIL Image对象。
- Parameters:
base64_string (str) – 图像的base64编码字符串。
- Returns:
- PIL图像对象,如果转换失败则为None
失败。
- Return type:
可选[Image.Image]
- get_dalle_img(prompt: str, image_dir: str = 'img') str[来源]#
- Generate an image using OpenAI’s DALL-E model.
生成的图像已保存到指定目录。
- Parameters:
prompt (str) - 用于生成图像的文本提示。
image_dir (str) – 保存生成图片的目录。默认为'img'。
- Returns:
保存图像的路径。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.DappierToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与Dappier API交互的工具包的类。
该类提供实时数据搜索和获取AI推荐的方法,涵盖新闻、金融、股市、体育、天气等关键垂直领域。
- get_ai_recommendations(query: str, data_model_id: str = 'dm_01j0pb465keqmatq9k83dthx34', similarity_top_k: int = 9, ref: str | None = None, num_articles_ref: int = 0, search_algorithm: Literal['most_recent', 'semantic', 'most_recent_semantic', 'trending'] = 'most_recent') List[Dict[str, str]] | Dict[str, str][来源]#
根据提供的查询和数据模型,获取AI驱动的推荐建议。
该函数使用指定的数据模型和搜索算法获取实时AI生成的推荐结果。返回结果包含基于查询的个性化内容,并可选择性地包含与特定参考领域的相关性。
- Supported Data Models:
dm_01j0pb465keqmatq9k83dthx34:
来自顶级体育来源的实时新闻、更新和个性化内容,包括Sportsnaut、Forever Blueshirts、Minnesota Sports Fan、LAFB Network、Bounding Into Sports和Ringside Intel。 - dm_01j0q82s4bfjmsqkhs3ywm3x6y: 来自顶级来源如The Mix、Snipdaily、Nerdable和Familyproof的实时更新、分析和个性化内容。
- Parameters:
query (str) – 用于获取推荐结果的用户查询。
data_model_id (str, optional) – 用于推荐的数据模型ID。数据模型ID总是以"dm_"前缀开头。(默认值: :obj: dm_01j0pb465keqmatq9k83dthx34)
similarity_top_k (int, optional) – 基于相似度检索的top文档数量。(默认: :obj: 9)
ref (可选[str], 可选) – 应该显示AI推荐内容的网站域名。(默认值: :obj: None)
num_articles_ref (int, optional) – 从指定参考域(ref)返回的最小文章数量。其余文章将来自RAG模型中的其他站点。(默认值: :obj: 0)
(Literal[ (search_algorithm) – "most_recent", "semantic", "most_recent_semantic", "trending", ], 可选): 用于检索文章的搜索算法。(默认: :obj: most_recent)
- Returns:
- 推荐文章或内容列表
基于指定的参数、查询和数据模型。
- Return type:
List[Dict[str, str]]
注意
提供多个数据模型ID,可在以下位置找到: https://marketplace.dappier.com/marketplace
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- search_real_time_data(query: str, ai_model_id: str = 'am_01j06ytn18ejftedz6dyhz2b15') str[来源]#
使用AI模型搜索实时数据。
该函数使用指定的AI模型基于给定查询访问实时信息。根据AI模型ID的不同,获取的数据可能包括通用网络搜索结果或财经新闻和股票价格。
- Supported AI Models:
am_01j06ytn18ejftedz6dyhz2b15:
获取实时的Google网页搜索结果,包括最新新闻、天气更新、旅行详情、优惠信息等。 - am_01j749h8pbf7ns8r1bq9s2evrh: 从polygon.io获取实时财经新闻、股票价格和交易数据,提供AI驱动的洞察和即时更新。
- Parameters:
query (str) – 用户提供的查询语句。示例包括: - "今天德克萨斯州奥斯汀的天气如何?" - "Meta公司的最新新闻是什么?" - "AAPL的股票价格是多少?"
ai_model_id (str, optional) – 用于查询的AI模型ID。 AI模型ID始终以"am_"前缀开头。 (默认值: am_01j06ytn18ejftedz6dyhz2b15)
- Returns:
- 与提供的查询相对应的搜索结果
AI模型ID。根据所选的AI模型,这可能包含实时搜索数据。
- Return type:
字符串
注意
提供多个AI模型ID,可在以下位置找到: https://marketplace.dappier.com/marketplace
- class camel.toolkits.DataCommonsToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个代表Data Commons工具包的类。
该类提供了从Data Commons知识图谱查询和检索数据的方法。主要功能包括: - 执行SPARQL查询 - 检索与节点关联的三元组 - 获取统计时间序列数据 - 分析属性标签和值 - 检索给定地点类型内的地点 - 获取特定变量和位置的统计值
所有数据均来自Data Commons的知识图谱。 更多详情请参阅https://datacommons.org/browser/。
- get_places_in(dcids: list, place_type: str) Dict[str, Any] | None[来源]#
检索给定地点类型内的地点。
- Parameters:
dcids (列表) - 要分析的Data Commons ID(DCID)列表。
place_type (str) - 要筛选的地点类型。
- Returns:
- 每个DCID的分析结果如果
成功,(默认:
None)否则。
- Return type:
可选[字典[str, 任意类型]]
- get_property_labels(dcids: str | List[str], out: bool = True) Dict[str, List[str]] | None[来源]#
检索并分析给定DCID的属性标签。
- Parameters:
dcids (列表) – 要分析的Data Commons ID(DCID)列表。
out (bool) - 要检索属性的方向。(默认:
True)
- Returns:
- 每个DCID的分析结果如果
成功,(默认:
None) 否则。
- Return type:
可选[字典[str, 列表[str]]]
- get_property_values(dcids: str | List[str], prop: str, out: bool | None = True, value_type: str | None = None, limit: int | None = None) Dict[str, Any] | None[来源]#
检索并分析给定DCIDs的属性值。
- Parameters:
dcids (列表) - 要分析的Data Commons ID(DCID)列表。
prop (str) - 要分析的属性。
value_type (str, optional) – 用于筛选的属性值类型。默认为NONE。仅当该值引用节点时适用。
out (bool, optional) – 标签的方向。(默认:
True) (仅返回指向请求节点的响应节点)。如果设为False,将仅返回远离请求节点的响应节点。(默认:None)limit (int, optional) – (≤ 500) 每个节点返回的最大值数量。(默认:
datacommons.utils._MAX_LIMIT)
- Returns:
- 每个DCID的分析结果如果
成功,(默认:
None)否则。
- Return type:
可选[字典[str, 任意类型]]
- get_stat_all(places: str, stat_vars: str) dict | None[来源]#
获取给定地点和日期的统计变量的值。
- Parameters:
places (str) – 要查询的Place对象的DCID ID。 (这里的DCID代表Data Commons ID,是Data Commons中分配给所有实体的唯一标识符。)
stat_vars (str) – 统计变量的dcids,位于 https://datacommons.org/browser/StatisticalVariable
- Returns:
- 一个以地点DCID为键的字典
如果成功,值为元组列表,(默认:
None) 否则。
- Return type:
可选[字典]
- get_stat_time_series(place: str, stat_var: str, measurement_method: str | None = None, observation_period: str | None = None, unit: str | None = None, scaling_factor: str | None = None) Dict[str, Any] | None[来源]#
获取某个地点的统计时间序列数据。
- Parameters:
place (str) – 要查询的Place的dcid。
stat_var (str) – StatisticalVariable的dcid。
measurement_method (str, optional) – 用于测量统计变量的技术。(默认:
None)observation_period (str, optional) – 进行观测的时间周期。(默认:
None)scaling_factor (str, optional) - 统计变量的属性,表示测量值乘以的因子以符合特定格式。(默认:
None)unit (str, optional) – 测量单位。(默认值:
None)
- Returns:
- 一个包含统计数据的字典
如果成功则为时间序列数据,(默认:
None) 否则。
- Return type:
可选[字典[str, 任意类型]]
- get_stat_value(place: str, stat_var: str, date: str | None = None, measurement_method: str | None = None, observation_period: str | None = None, unit: str | None = None, scaling_factor: str | None = None) float | None[来源]#
获取给定地点和日期的统计变量的值。
- Parameters:
place (str) – 要查询的Place的DCID。
stat_var (str) – 统计变量的DCID。
date (str, optional) – 首选的观测日期,采用ISO 8601格式。如果未指定,则返回最新的观测值。 (默认值:
None)measurement_method (str, optional) – 首选measurementMethod值的DCID。(默认:
None)observation_period (str, optional) – 首选的观察周期值。(默认:
None)unit (str, optional) – 首选单位值的DCID。 (默认:
None)scaling_factor (str, optional) – 首选的scalingFactor值。 (默认:
None)
- Returns:
- 统计变量在
给定地点和日期的值(如果成功,默认为:
None),否则返回其他值。
- Return type:
可选[浮点数]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- get_triples(dcids: str | List[str], limit: int = 500) Dict[str, List[tuple]] | None[来源]#
检索与节点关联的三元组。
- Parameters:
dcids (Union[str, List[str]]) - 要查询的单个DCID或DCID列表
limit (int) – 每个属性和类型组合的最大三元组数量。(默认:
500)
- Returns:
- 一个字典,其中键是
DCIDs,如果成功则值为关联三元组的列表, (默认:
None) 否则。
- Return type:
可选[字典[str, 列表[元组]]]
注意: - 如果缺少任何必需参数,该函数将抛出ValueError
缺少参数。
如果dcids不是字符串或字符串列表,该函数将引发TypeError。
如果限制值不在1到500之间,该函数将引发ValueError。
如果提供的DCID中有一个或多个在Data Commons知识图谱中不存在,该函数将引发KeyError。
如果发生意外错误,该函数将引发异常。
- query_data_commons(query_string: str) List[Dict[str, Any]] | None[来源]#
使用SPARQL查询Data Commons知识图谱。
- Parameters:
query_string (str) – 一个SPARQL查询字符串。
- Returns:
- 字典列表,每个
表示一个符合查询条件的节点(如果成功), (默认:
None) 否则。
- Return type:
可选[列表[字典[str, 任意]]]
注意: - 仅支持有限的SPARQL功能子集(ORDER BY,
DISTINCT, LIMIT).
查询中的每个变量都应有一个'typeOf'条件。
Python SPARQL 库目前仅支持 API 的 V1 版本。
- class camel.toolkits.ExcelToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于从Excel文件中提取详细单元格信息的工具包类。
该类提供了处理docx、pdf、pptx等文件的方法,但无法处理excel文件。
- extract_excel_content(document_path: str) str[来源]#
从Excel文件中提取详细的单元格信息,包括多个工作表。
- Parameters:
document_path (str) – Excel文件的路径。
- Returns:
提取的Excel信息,包括每个工作表的详细信息。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.FileWriteToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于创建、写入和修改文件中文本的工具包。
该类提供跨平台(macOS、Linux、Windows)支持,可用于写入多种文件格式(Markdown、DOCX、PDF和纯文本)、替换现有文件中的文本、自动备份、自定义编码以及为特殊格式提供增强的格式化选项。
- get_tools() List[FunctionTool][来源]#
返回一个FunctionTool对象列表,表示工具包中的函数。
- Returns:
- 表示FunctionTool对象的列表
此工具包中可用的函数。
- Return type:
列表[FunctionTool]
- write_to_file(content: str | List[List[str]], filename: str, encoding: str | None = None) str[来源]#
将给定内容写入文件。
If the file exists, it will be overwritten. Supports multiple formats: Markdown (.md, .markdown, default), Plaintext (.txt), CSV (.csv), DOC/DOCX (.doc, .docx), PDF (.pdf), JSON (.json), YAML (.yml, .yaml), and HTML (.html, .htm).
- Parameters:
content (Union[str, List[List[str]]]) – 要写入文件的内容。对于所有格式,内容必须是字符串或符合相应格式的列表。
filename (str) - 文件名或文件路径。如果提供的是相对路径,将会被解析为self.output_dir。
encoding (可选[str]) – 要使用的字符编码。(默认值: :obj: None)
- Returns:
一条指示成功或错误详情的消息。
- Return type:
字符串
- class camel.toolkits.FunctionTool(func: Callable, openai_tool_schema: Dict[str, Any] | None = None, synthesize_schema: bool | None = False, synthesize_schema_model: BaseModelBackend | None = None, synthesize_schema_max_retries: int = 2, synthesize_output: bool | None = False, synthesize_output_model: BaseModelBackend | None = None, synthesize_output_format: Type[BaseModel] | None = None)[来源]#
基类:
objectOpenAI聊天模型可调用函数的抽象。参见 https://platform.openai.com/docs/api-reference/chat/create。
默认情况下,工具模式将从函数中解析,或者您可以提供用户定义的工具模式来覆盖。
- Parameters:
func (Callable) – 要调用的函数。默认情况下,工具模式会从函数签名和文档字符串中解析。
openai_tool_schema (可选[字典[字符串, 任意类型]], 可选) – 用户自定义的OpenAI工具模式,用于覆盖默认结果。 (默认值:
None)synthesize_schema (Optional[bool], optional) - 是否启用模式助手模型,在验证失败或未提供有效模式时自动合成模式。(默认:
False)synthesize_schema_model (Optional[BaseModelBackend], optional) – 一个 用于合成模式的辅助模型(例如LLM模型),当synthesize_schema启用且未提供有效模式时使用。(默认值:
None)synthesize_schema_max_retries (int, optional) – 当先前尝试失败时,使用模式助手模型进行模式合成的最大重试次数。(默认值: 2)
synthesize_output (Optional[bool], optional) - 用于启用合成输出模式的标志,其中输出将基于函数的执行结果进行合成。(默认值:
False)synthesize_output_model (可选[BaseModelBackend], 可选) – 用于合成模式中输出合成的模型。 (默认值:
None)synthesize_output_format (Optional[Type[BaseModel]], optional) – 合成输出时的响应格式。(默认:
None)
- get_openai_function_schema() Dict[str, Any][来源]#
从OpenAI工具模式中获取函数的模式。
该方法提取并返回与此函数关联的OpenAI工具模式中特定于函数的部分。
- Returns:
- OpenAI工具中函数的模式
schema.
- Return type:
字典[字符串, 任意类型]
- get_openai_tool_schema() Dict[str, Any][来源]#
获取此函数的OpenAI工具模式。
该方法返回与此函数关联的OpenAI工具模式,在验证其符合OpenAI规范后。
- Returns:
此函数的OpenAI工具模式。
- Return type:
字典[字符串, 任意类型]
- get_parameter(param_name: str) Dict[str, Any][来源]#
从函数模式中获取特定参数的架构。
- Parameters:
param_name (str) – 要获取模式的参数名称。
- Returns:
指定参数的架构。
- Return type:
字典[字符串, 任意类型]
- get_paramter_description(param_name: str) str[来源]#
从函数模式中获取特定参数的描述。
- Parameters:
param_name (str) – 要获取描述的参数的名称。
- Returns:
指定参数的描述。
- Return type:
字符串
- property is_async: bool#
- property parameters: Dict[str, Any]#
获取属性
parameters的Getter方法。- Returns:
- 包含以下信息的字典
该函数的参数。
- Return type:
字典[字符串, 任意类型]
- set_function_description(description: str) None[来源]#
设置OpenAI工具模式中函数的描述。
- Parameters:
描述 (str) – 该函数的描述信息。
- set_openai_function_schema(openai_function_schema: Dict[str, Any]) None[来源]#
在OpenAI工具模式中设置函数的模式。
- Parameters:
openai_function_schema (Dict[str, Any]) – 要在OpenAI工具模式中设置的函数模式。
- set_openai_tool_schema(schema: Dict[str, Any]) None[来源]#
设置此函数的OpenAI工具模式。
允许为该函数设置自定义的OpenAI工具架构。
- Parameters:
schema (Dict[str, Any]) – 要设置的OpenAI工具模式。
- set_parameter(param_name: str, value: Dict[str, Any])[来源]#
设置函数模式中特定参数的架构。
- Parameters:
param_name (str) - 要为其设置模式的参数名称。
value (Dict[str, Any]) – 要为参数设置的schema。
- set_paramter_description(param_name: str, description: str) None[来源]#
为函数模式中的特定参数设置描述。
- Parameters:
param_name (str) – 要设置描述的参数名称。
description (str) - 参数的描述信息。
- synthesize_execution_output(args: tuple[Any, ...] | None = None, kwargs: Dict[str, Any] | None = None) Any[来源]#
根据提供的位置参数和关键字参数,合成函数的输出。
- Parameters:
args (可选[tuple]) – 在合成过程中传递给函数的位置参数。(默认值:
None)kwargs (可选[Dict[str, Any]]) – 在合成过程中传递给函数的关键字参数。(默认值:
None)
- Returns:
- 函数执行生成的合成输出。如果未提供
合成模型,则会记录警告信息。
- Return type:
任何
- synthesize_openai_tool_schema(max_retries: int | None = None) Dict[str, Any][来源]#
为指定函数合成一个OpenAI工具模式。
该方法使用语言模型(LLM)为指定函数合成OpenAI工具模式,首先生成文档字符串,然后基于函数源代码创建模式。如果失败,模式合成和验证过程最多会重试max_retries次。
- Parameters:
max_retries (Optional[int], optional) – 如果模式合成和验证过程失败时的最大重试次数。(默认值:
None)- Returns:
该函数的OpenAI工具合成模式。
- Return type:
字典[字符串, 任意类型]
- Raises:
ValueError – 如果模式合成或验证在达到最大重试次数后仍然失败,将引发ValueError错误,提示需要手动设置模式。
- static validate_openai_tool_schema(openai_tool_schema: Dict[str, Any]) None[来源]#
验证OpenAI工具模式是否符合
ToolAssistantToolsFunction。 此函数检查提供的openai_tool_schema是否遵循 OpenAI的ToolAssistantToolsFunction所需规范。它确保 函数描述和参数根据JSON模式规范正确格式化。 :param openai_tool_schema: 要验证的OpenAI工具模式验证。
- Raises:
ValidationError - 如果模式不符合规范时抛出。
SchemaError - 如果参数不符合JSON Schema引用规范。
- class camel.toolkits.GithubToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与GitHub仓库交互的工具包的类。
- This class provides methods for retrieving open issues, retrieving
具体问题,以及在GitHub仓库中创建拉取请求。
- Parameters:
repo_name (str) - GitHub仓库的名称。
access_token (str, optional) – 用于GitHub身份验证的访问令牌。如果未提供,将使用get_github_access_token方法获取。
- create_pull_request(file_path: str, new_content: str, pr_title: str, body: str, branch_name: str) str[来源]#
创建一个拉取请求。
此函数在指定仓库中创建一个拉取请求,该请求将特定路径下的文件内容更新为新内容。拉取请求描述中包含问题标题和编号的相关信息。
- Parameters:
file_path (str) – 仓库中待更新文件的路径。
new_content (str) - 指定文件的新内容。
pr_title (str) - 这个pull request所解决问题的标题。
body (str) – 拉取请求的提交信息。
branch_name (str) - 要创建并从中提交拉取请求的分支名称。
- Returns:
- 关于是否成功创建拉取请求的格式化报告
成功与否。
- Return type:
字符串
- get_all_file_paths(path: str = '') List[str][来源]#
递归获取GitHub仓库中的所有文件路径。
- Parameters:
path (str) – 开始遍历的仓库路径。 空字符串表示从根目录开始。 (默认值: :obj: “”)
- Returns:
- 指定目录内的文件路径列表
结构。
- Return type:
List[str]
- get_github_access_token() str[来源]#
从环境变量中获取GitHub访问令牌。
- Returns:
包含GitHub访问令牌的字符串。
- Return type:
字符串
- Raises:
ValueError – 如果在环境变量中未找到API密钥或密钥。
- get_issue_content(issue_number: int) str[来源]#
根据编号获取特定问题的内容。
- Parameters:
issue_number (int) – 要获取的问题编号。
- Returns:
问题内容详情。
- Return type:
字符串
- get_issue_list(state: Literal['open', 'closed', 'all'] = 'all') List[Dict[str, object]][来源]#
从GitHub仓库获取所有问题。
- Parameters:
state (Literal["open", "closed", "all"]) – 要获取的拉取请求的状态。(默认: :obj: all) 可选值为: - "open": 仅获取打开的拉取请求。 - "closed": 仅获取已关闭的拉取请求。 - "all": 获取所有拉取请求,无论状态如何。
- Returns:
- 一个字典列表,其中每个
字典包含问题编号和标题。
- Return type:
列表[字典[str, 对象]]
- get_pull_request_code(pr_number: int) List[Dict[str, str]][来源]#
获取特定拉取请求的代码变更。
- Parameters:
pr_number (int) – 要获取的拉取请求编号。
- Returns:
- 一个字典列表,其中每个字典
包含文件名和对应的代码变更(补丁)。
- Return type:
List[Dict[str, str]]
- get_pull_request_comments(pr_number: int) List[Dict[str, str]][来源]#
获取特定拉取请求中的评论。
- Parameters:
pr_number (int) – 要获取的拉取请求编号。
- Returns:
- 一个字典列表,其中每个字典
包含用户ID和评论内容。
- Return type:
List[Dict[str, str]]
- get_pull_request_list(state: Literal['open', 'closed', 'all'] = 'all') List[Dict[str, object]][来源]#
从GitHub仓库获取所有拉取请求。
- Parameters:
state (Literal["open", "closed", "all"]) – 要获取的拉取请求的状态。(默认: :obj: all) 可选值为: - "open": 仅获取打开的拉取请求。 - "closed": 仅获取已关闭的拉取请求。 - "all": 获取所有拉取请求,无论状态如何。
- Returns:
- 一个字典列表,其中每个字典包含
拉取请求编号和标题。
- Return type:
列表
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.GoogleCalendarToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Google日历操作工具包的类。
该类提供了从Google日历创建事件、检索事件、更新事件和删除事件的方法。
- create_event(event_title: str, start_time: str, end_time: str, description: str = '', location: str = '', attendees_email: List[str] | None = None, timezone: str = 'UTC') Dict[str, Any][来源]#
在用户的主Google日历中创建一个事件。
- Parameters:
event_title (str) - 事件的标题。
start_time (str) - 以ISO格式表示的起始时间(YYYY-MM-DDTHH:MM:SS)。
end_time (str) – 结束时间,ISO格式(YYYY-MM-DDTHH:MM:SS)。
description (str, optional) – 事件的描述。
location (str, optional) – 事件发生的位置。
attendees_email (List[str], optional) – 电子邮件地址列表。 (默认值:
None)timezone (str, optional) - 事件的时区。 (默认:
UTC)
- Returns:
一个包含所创建事件详细信息的字典。
- Return type:
字典
- Raises:
ValueError - 如果事件创建失败。
- delete_event(event_id: str) str[来源]#
从用户的主Google日历中删除一个事件。
- Parameters:
event_id (str) – 要删除的事件ID。
- Returns:
一条指示删除结果的消息。
- Return type:
字符串
- Raises:
ValueError - 如果事件删除失败。
- get_calendar_details() Dict[str, Any][来源]#
获取用户主要Google日历的详细信息。
- Returns:
一个包含日历详细信息的字典。
- Return type:
字典
- Raises:
ValueError - 如果获取日历详情失败。
- get_events(max_results: int = 10, time_min: str | None = None) List[Dict[str, Any]] | Dict[str, Any][来源]#
从用户的主Google日历中检索即将发生的事件。
- Parameters:
max_results (int, optional) – 要检索的事件最大数量。 (默认值:
10)time_min (str, optional) – 获取事件的最小时间。 如果未提供,默认为当前时间。 (default:
None)
- Returns:
- 一个包含以下内容的列表
字典,每个字典包含一个事件的详细信息,或者是一个带有错误消息的字典。
- Return type:
Union[List[Dict[str, Any]], Dict[str, Any]]
- Raises:
ValueError - 如果事件检索失败。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- update_event(event_id: str, event_title: str | None = None, start_time: str | None = None, end_time: str | None = None, description: str | None = None, location: str | None = None, attendees_email: List[str] | None = None) Dict[str, Any][来源]#
更新用户主Google日历中的现有事件。
- Parameters:
event_id (str) - 要更新的事件ID。
event_title (可选[str]) - 事件的新标题。 (默认值:
None)start_time (可选[str]) – 新的开始时间,采用ISO格式 (YYYY-MM-DDTHH:MM:SSZ)。 (默认值:
None)end_time (Optional[str]) – 新的结束时间,采用ISO格式 (YYYY-MM-DDTHH:MM:SSZ)。 (默认值:
None)description (Optional[str]) – 事件的新描述。 (default:
None)location (Optional[str]) – 事件的新位置。 (默认值:
None)attendees_email (可选[列表[字符串]]) - 电子邮件地址列表。 (默认值:
None)
- Returns:
- 包含更新详情的字典
事件。
- Return type:
字典[字符串, 任意类型]
- Raises:
ValueError - 如果事件更新失败。
- class camel.toolkits.GoogleMapsToolkit(timeout: float | None = None)[来源]#
基类:
BaseToolkit一个表示与GoogleMaps API交互工具包的类。 该类提供了使用Google Maps API验证地址、获取海拔高度和获取时区信息的方法。
- get_address_description(address: str | List[str], region_code: str | None = None, locality: str | None = None) str[来源]#
通过Google Maps API验证地址,返回描述性摘要。使用Google Maps API验证地址,返回的摘要包括地址补全信息、格式化地址、位置坐标以及适用于给定地址的元数据类型。
- Parameters:
address (Union[str, List[str]]) – 要验证的地址或组件。可以是单个字符串或表示不同部分的列表。
region_code (str, optional) – 用于地区限制的国家代码,有助于缩小结果范围。(默认:
None)locality (str, optional) – 将验证限制在特定地区,例如"Mountain View"。(默认值:
None)
- Returns:
- 地址验证结果摘要,包括
地址补全信息、格式化地址、地理坐标(纬度和经度)以及该地址对应的元数据类型。
- Return type:
字符串
- get_elevation(lat: float, lng: float) str[来源]#
获取给定纬度和经度的高程数据。 使用Google Maps API获取指定纬度和经度的高程数据。它能优雅地处理异常情况,并返回高程描述,包括以米为单位的值和数据分辨率。
- Parameters:
lat (float) – 要查询位置的纬度。
lng (float) – 要查询位置的经度。
- Returns:
- 指定位置的海拔高度描述,
包括以米为单位的海拔高度和数据分辨率。如果 无法获取海拔数据,则会返回一条提示信息。
- Return type:
字符串
- get_timezone(lat: float, lng: float) str[来源]#
获取给定纬度和经度的时区信息。 该函数使用Google Maps Timezone API来获取指定纬度和经度的时区数据。它返回时区的自然语言描述,包括时区ID、名称、标准时间偏移量、夏令时偏移量以及与协调世界时(UTC)的总偏移量。
- Parameters:
lat (float) – 要查询位置的纬度。
lng (float) – 要查询位置的经度。
- Returns:
- 描述时区信息的字符串,
包括时区ID和名称、标准时间偏移量、夏令时偏移量以及与UTC的总偏移量。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.GoogleScholarToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于从Google Scholar检索作者及其出版物信息的工具包。
- author_identifier#
作者的Google Scholar网址或要搜索的作者姓名。
- Type:
Union[str, None]
- is_author_name#
标识该标识符是否为名称的标志。 (默认值:
False)- Type:
布尔值
- scholarly#
用于查询Google Scholar的学术模块。
- Type:
模块
- author#
缓存的作者详细信息,允许根据需要手动分配。
- Type:
可选[字典[str, 任意类型]]
- property author: Dict[str, Any]#
获取作者属性的Getter方法,如果未缓存则获取详细信息。
- Returns:
- 包含作者详情的字典。如果没有数据
可用,则返回空字典。
- Return type:
字典[字符串, 任意类型]
- get_full_paper_content_by_link(pdf_url: str) str | None[来源]#
使用arxiv2text工具从给定的PDF URL获取完整的论文内容。
- Parameters:
pdf_url (str) – PDF文件的URL。
- Returns:
- 从PDF中提取的全文,如果出现错误则为None
发生错误时。
- Return type:
可选[str]
- get_publication_by_title(publication_title: str) dict | None[来源]#
根据标题获取特定出版物的详细信息。请注意,此方法无法获取论文的完整内容。
- Parameters:
publication_title (str) - 要搜索的出版物标题。
- Returns:
- 一个包含详细信息的字典,关于
找到的出版物;否则为None。
- Return type:
可选[字典]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.HumanToolkit(timeout: float | None = None)[来源]#
基类:
BaseToolkit一个代表人类交互工具包的类。
- ask_human_via_console(question: str) str[来源]#
通过控制台向人类提问。
- Parameters:
问题 (str) – 要向人类提出的问题。
- Returns:
人类的回答。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.ImageAnalysisToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于全面图像分析和理解的工具包。 该工具包利用具备视觉能力的语言模型来执行这些任务。
- ask_question_about_image(image_path: str, question: str, sys_prompt: str | None = None) str[来源]#
使用可选自定义指令回答图像问题。
- Parameters:
image_path (str) - 本地路径或指向图像文件的URL。
question (str) – 关于图像内容的查询。
sys_prompt (可选[str]) – 用于分析的自定义系统提示。 (默认:
None)
- Returns:
基于视觉理解的详细回答
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
- Returns a list of FunctionTool objects representing the functions
在工具包中。
- Returns:
- 表示工具包中函数的FunctionTool对象列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.LinkedInToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示LinkedIn操作工具包的类。
该类提供了创建帖子、删除帖子以及获取认证用户个人资料信息的方法。
- create_post(text: str) dict[来源]#
为认证用户在LinkedIn上创建一篇帖子。
- Parameters:
text (str) – 要创建的帖子内容。
- Returns:
- 一个包含帖子ID和内容的字典
如果帖子创建失败,这些值将为None。
- Return type:
字典
- Raises:
异常 - 如果由于LinkedIn API返回错误响应导致帖子创建失败。
- delete_post(post_id: str) str[来源]#
删除授权用户指定ID的LinkedIn帖子。
此函数向LinkedIn API发送DELETE请求以删除指定ID的帖子。在发送请求之前,它会提示用户确认删除操作。
- Parameters:
post_id (str) – 要删除的帖子的ID。
- Returns:
- 一条指示删除结果的消息。如果
删除成功,该消息包含被删除帖子的ID。如果删除未成功,该消息包含一条错误信息。
- Return type:
字符串
- get_profile(include_id: bool = False) dict[来源]#
获取已认证用户的LinkedIn个人资料信息。
该函数向LinkedIn API发送GET请求以获取认证用户的个人资料信息。可选地,它还会返回用户的LinkedIn ID。
- Parameters:
include_id (bool) – 是否在响应中包含LinkedIn个人资料ID。
- Returns:
- 包含用户LinkedIn个人资料的字典
信息。如果include_id为True,该字典还将包含个人资料ID。
- Return type:
字典
- Raises:
异常 - 如果由于LinkedIn API返回错误响应导致个人资料获取失败。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.MCPToolkit(servers: List[MCPClient] | None = None, config_path: str | None = None)[来源]#
基类:
BaseToolkitMCPToolkit 提供了一个统一接口,用于管理多个MCP服务器连接及其工具。
该类负责管理多个MCP服务器连接的生命周期,并为本地和远程MCP服务提供集中式配置机制。
- Parameters:
servers (Optional[List[MCPClient]]) – 要管理的MCPClient实例列表。
config_path (Optional[str]) - 指向定义MCP服务器的JSON配置文件的路径
注意
必须提供servers或config_path。如果两者都提供,来自这两个源的服务器将被合并。
对于配置文件中的Web服务器,您可以使用"headers"字段指定授权头部信息,以连接到受保护的MCP服务器端点。
示例配置:
{ "mcpServers": { "protected-server": { "url": "https://example.com/mcp", "timeout": 30, "headers": { "Authorization": "Bearer YOUR_TOKEN", "X-API-Key": "YOUR_API_KEY" } } } }
- servers#
正在管理的MCPClient实例列表。
- Type:
列表[MCPClient]
- connection() AsyncGenerator[MCPToolkit, None][来源]#
异步上下文管理器,可同时建立与所有托管MCP服务器实例的连接。
- Yields:
MCPToolkit – 包含所有已连接服务器的自身。
- get_tools() List[FunctionTool][来源]#
聚合来自托管MCP服务器实例的所有工具。
- Returns:
所有可用功能工具的综合列表。
- Return type:
列表[FunctionTool]
- class camel.toolkits.MathToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示数学运算工具包的类。
该类提供基本数学运算方法,如加法、减法、乘法、除法及四舍五入。
- add(a: float, b: float) float[来源]#
将两个数字相加。
- Parameters:
a (float) – 要相加的第一个数字。
b (float) - 要相加的第二个数字。
- Returns:
两个数字的总和。
- Return type:
浮点数
- divide(a: float, b: float, decimal_places: int = 2) float[来源]#
将两个数相除。
- Parameters:
a (float) – 除法运算中的被除数。
b (float) - 除法运算中的除数。
decimal_places (int, optional) – 要四舍五入的小数位数。默认为2。
- Returns:
a除以b的结果。- Return type:
浮点数
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- multiply(a: float, b: float, decimal_places: int = 2) float[来源]#
将两个数字相乘。
- Parameters:
a (float) – 乘法运算中的乘数。
b (float) – 乘法运算中的被乘数。
decimal_places (int, optional) – 要四舍五入的小数位数。默认为2。
- Returns:
两个数字的乘积。
- Return type:
浮点数
- class camel.toolkits.MemoryToolkit(agent: ChatAgent, timeout: float | None = None)[来源]#
基类:
BaseToolkit一个提供保存、加载和清除ChatAgent内存方法的工具包。 这些方法以FunctionTool对象的形式暴露用于函数调用。内部实现调用了:
agent.save_memory(path)
agent.load_memory(new_memory_obj)
agent.load_memory_from_path(path)
agent.clear_memory()
- Parameters:
agent (ChatAgent) – 将被管理内存的聊天代理。
timeout (Optional[float], optional) – 工具包操作允许的最大执行时间,单位为秒。如果为None,则不应用超时限制。(默认值:
None)
- get_tools() list[FunctionTool][来源]#
将内存管理方法作为功能工具暴露给ChatAgent。
- Returns:
FunctionTool对象列表。
- Return type:
列表[FunctionTool]
- load(memory_json: str) str[来源]#
从JSON字符串将内存加载到代理中。
- Parameters:
memory_json (str) – 包含内存记录的JSON字符串。
- Returns:
确认或错误信息。
- Return type:
字符串
- class camel.toolkits.MeshyToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示使用Meshy进行3D模型生成的工具包类。
该类提供了使用Meshy处理文本/图像生成3D模型的方法。
调用generate_3d_model_complete方法来生成优化后的3D模型。
参考: https://docs.meshy.ai/api-text-to-3d-beta#create-a-text-to-3d-preview-task
- generate_3d_model_complete(prompt: str, art_style: str, negative_prompt: str) Dict[str, Any][来源]#
通过处理预览和优化阶段生成完整的3D模型
- Parameters:
prompt (str) - 对象的描述。
art_style (str) - 3D模型的艺术风格。
negative_prompt (str) - 模型不应该生成的内容。
- Returns:
最终精炼的3D模型响应。
- Return type:
字典[字符串, 任意类型]
- generate_3d_preview(prompt: str, art_style: str, negative_prompt: str) Dict[str, Any][来源]#
使用Meshy API生成3D预览。
- Parameters:
prompt (str) - 对象的描述。
art_style (str) - 3D模型的艺术风格。
negative_prompt (str) - 模型不应该生成的内容。
- Returns:
- 响应中的result属性包含
新创建的Text to 3D任务的任务ID。
- Return type:
字典[字符串, 任意类型]
- get_task_status(task_id: str) Dict[str, Any][来源]#
使用Meshy API获取特定3D模型生成任务的状态或结果。
- Parameters:
task_id (str) – 要检索的任务ID。
- Returns:
来自Meshy API的响应。
- Return type:
字典[字符串, 任意类型]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- refine_3d_model(preview_task_id: str) Dict[str, Any][来源]#
使用Meshy API优化3D模型。
- Parameters:
preview_task_id (str) – 要优化的预览任务ID。
- Returns:
来自Meshy API的响应。
- Return type:
字典[字符串, 任意类型]
- wait_for_task_completion(task_id: str, polling_interval: int = 10, timeout: int = 3600) Dict[str, Any][来源]#
通过轮询任务状态来等待任务完成。
- Parameters:
task_id (str) - 要监控的任务ID。
polling_interval (int) – 状态检查之间的等待秒数。 (默认:
10)timeout (int) – 超时前等待的最大秒数。 (默认:
3600)
- Returns:
当任务完成时来自API的最终响应。
- Return type:
字典[字符串, 任意类型]
- Raises:
TimeoutError - 如果任务在超时期限内未完成。
RuntimeError - 如果任务失败或被取消。
- class camel.toolkits.MinerUToolkit(api_key: str | None = None, api_url: str | None = 'https://mineru.net/api/v4', is_ocr: bool = False, enable_formula: bool = False, enable_table: bool = True, layout_model: str = 'doclayout_yolo', language: str = 'en', wait: bool = True, timeout: float = 300)[来源]#
基类:
BaseToolkit- Toolkit for extracting and processing document content
使用MinerU API。
提供全面的文档处理能力,包括从URL和文件中提取内容,通过MinerU API服务支持OCR、公式识别和表格检测。
注意
最大文件大小:每个文件200MB
最大页数:每个文件600页
每日配额:高优先级解析2000页
网络限制可能会影响某些URL(例如GitHub、AWS)
- extract_from_urls(urls: str | List[str]) Dict[来源]#
从一个或多个URL处理和提取内容。
- Parameters:
urls (str | List[str]) – 用于内容提取的目标URL或URL列表。支持单个URL字符串和列表中的多个URL。
- Returns:
- 响应包含已完成任务结果(当wait为True时)
或者包含用于状态跟踪的任务/批次标识符(当wait为False时)。
- Return type:
字典
- get_batch_status(batch_id: str) Dict[来源]#
获取批量提取任务的当前状态。
- Parameters:
batch_id (str) – 用于检查批量提取任务的唯一标识符
- Returns:
- 批量任务中所有文件的全面状态信息和结果
。
- Return type:
字典
注意
这是一个底层状态检查方法。对于大多数使用场景,建议使用batch_extract_from_urls并设置wait=True以实现自动完成处理。
- get_task_status(task_id: str) Dict[来源]#
获取单个提取任务的当前状态。
- Parameters:
task_id (str) – 用于检查的提取任务的唯一标识符。
- Returns:
- 指定任务的状态信息和结果(如果任务已完成)
针对该任务。
- Return type:
字典
注意
这是一个底层状态检查方法。对于大多数使用场景,建议使用 extract_from_url 并设置 wait=True 以实现自动完成处理。
- get_tools() List[FunctionTool][来源]#
检索可用的工具包函数作为FunctionTool对象。
- Returns:
- 表示FunctionTool对象的集合
该工具包中可用的文档处理功能。
- Return type:
列表[FunctionTool]
- class camel.toolkits.NetworkXToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit- add_edge(source: str, target: str, **attributes: Any) None[来源]#
向图中添加一条边。
- Parameters:
source (str) - 源节点ID。
target (str) – 目标节点ID。
attributes (dict) - 额外的边属性。
- add_node(node_id: str, **attributes: Any) None[来源]#
向图中添加一个节点。
- Parameters:
node_id (str) - 节点的ID。
attributes (dict) - 额外的节点属性。
- compute_centrality() Dict[str, float][来源]#
计算图的中心性度量。
- Returns:
每个节点的中心性值。
- Return type:
字典[str, float]
- export_to_file(file_path: str) None[来源]#
将图形导出为JSON格式的文件。
- Parameters:
file_path (str) - 用于保存图形的文件路径。
- get_edges() List[Tuple[str, str]][来源]#
返回图中的所有边。
- Returns:
边的列表,格式为(源节点, 目标节点)。
- Return type:
列表[元组[字符串, 字符串]]
- get_shortest_path(source: str, target: str, weight: str | Callable | None = None, method: Literal['dijkstra', 'bellman-ford'] = 'dijkstra') List[str][来源]#
查找两个节点之间的最短路径。
- Parameters:
source (str) - 源节点ID。
target (str) – 目标节点ID。
weight (None, str or function, optional) – 边的权重/距离。 如果是None,每条边的权重/距离/成本为1。 如果是字符串,则使用该边属性作为边的权重。 如果是函数,边的权重是该函数返回的值。 该函数必须接受三个位置参数:两个端点和边属性字典。(默认:
None)method (Literal['dijkstra', 'bellman-ford'], optional) – 用于计算路径的算法。如果weight为None则忽略该参数。(默认值:
'dijkstra')
- Returns:
最短路径中的节点列表。
- Return type:
List[str]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表,用于
工具包方法。
- Return type:
列表[FunctionTool]
- class camel.toolkits.NotionToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于从用户的Notion页面检索信息的工具包。
- notion_token#
用于与Notion API交互的notion_token。(默认值:
None)- Type:
可选[str],可选
- notion_client#
用于与notion API交互的notion模块。
- Type:
模块
- get_notion_block_text_content(block_id: str) str[来源]#
获取Notion块的文本内容。
- Parameters:
block_id (str) – 要检索的Notion块的ID。
- Returns:
- Notion块中的文本内容,包含所有
子块。
- Return type:
字符串
- get_text_from_block(block: dict) str[来源]#
根据Notion块的类型提取纯文本。
- Parameters:
block (dict) – 表示Notion块的字典。
- Returns:
一个包含提取的纯文本和块类型的字符串。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.OpenAIAgentToolkit(model: BaseModelBackend | None = None, api_key: str | None = None, timeout: float | None = None)[来源]#
基类:
BaseToolkit用于访问OpenAI代理工具(包括网络搜索和文件搜索)的工具包。
通过Responses API提供对OpenAI网络搜索和文件搜索功能的访问,使代理能够从网络检索信息并搜索上传的文件。
- file_search(query: str, vector_store_id: str) str[来源]#
使用OpenAI的文件搜索工具在文件中进行搜索。
- Parameters:
query (str) – 搜索查询语句。
vector_store_id (str) – 要搜索的向量存储ID。
- Returns:
搜索结果或错误信息。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
检索可用的工具包函数作为FunctionTool对象。
- Returns:
- 表示FunctionTool对象的集合
该工具包中可用的搜索功能。
- Return type:
列表[FunctionTool]
- class camel.toolkits.OpenAPIToolkit[来源]#
基类:
object一个表示用于与OpenAPI API交互的工具包的类。
该类提供了基于OpenAPI规范与API交互的方法。它会为OpenAPI规范中定义的每个API操作动态生成函数,允许用户向API端点发起HTTP请求。
- apinames_filepaths_to_funs_schemas(apinames_filepaths: List[Tuple[str, str]]) Tuple[List[Callable], List[Dict[str, Any]]][来源]#
将多个OpenAPI规范中的函数和模式组合起来,使用API名称作为键。
该函数遍历API名称和OpenAPI规范文件路径的元组,解析每个规范以生成可调用函数和模式字典,所有内容按API名称组织。
参数: apinames_filepaths (List[Tuple[str, str]]): 一个元组列表,其中
每个元组包含: - 第一个元素是API名称(字符串)。 - 第二个元素是API的OpenAPI规范文件的路径(字符串)。
第二个元素。
- Returns:
- Tuple[List[Callable], List[Dict[str, Any]]]:: 可调用对象之一
用于API操作的函数集合,以及另一个表示规范中模式的字典集合。
- generate_apinames_filepaths() List[Tuple[str, str]][来源]#
生成一个包含API名称及其对应文件路径的元组列表。
该函数遍历OpenAPIName枚举,为每个API的OpenAPI规范文件构建文件路径,并将API名称及其文件路径的元组追加到列表中。文件路径是相对于与脚本同目录下的'open_api_specs'目录的。
- Returns:
- 一个元组列表,其中每个元组包含
两个元素。每个元组的第一个元素是表示API名称的字符串,第二个元素是指定该API的OpenAPI规范文件路径的字符串。
- Return type:
列表[元组[字符串, 字符串]]
- generate_openapi_funcs(api_name: str, openapi_spec: Dict[str, Any]) List[Callable][来源]#
根据OpenAPI规范生成Python函数列表。
该函数动态生成一个可调用函数的列表,这些函数代表OpenAPI规范文档中定义的API操作。每个函数设计用于执行规范中定义的对应API操作(如GET、POST)的HTTP请求。这些函数通过openapi_function_decorator装饰器进行修饰,该装饰器配置它们以构建并发送带有适当参数、头部和正文内容的HTTP请求。
- Parameters:
api_name (str) – API的名称,用于为生成的函数名称添加前缀。
openapi_spec (Dict[str, Any]) – 以字典形式表示的OpenAPI规范。
- Returns:
- 包含生成函数的列表。每个
函数在被调用时,将根据OpenAPI规范中定义的对应API操作发起HTTP请求。
- Return type:
列表[可调用对象]
- Raises:
ValueError – 如果OpenAPI规范不包含服务器信息,这些信息是确定API请求基础URL所必需的。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- openapi_function_decorator(api_name: str, base_url: str, path: str, method: str, openapi_security: List[Dict[str, Any]], sec_schemas: Dict[str, Dict[str, Any]], operation: Dict[str, Any]) Callable[来源]#
装饰一个函数以基于OpenAPI规范详情发起HTTP请求。
该装饰器根据提供的OpenAPI操作规范、安全要求和参数,动态构建并执行API请求。它支持使用apiKey类型安全方案保护的操作,并自动从环境变量中注入必要的API密钥。同时支持path、query、header和cookie中的参数。
- Parameters:
api_name (str) - API的名称,用于从配置中检索API密钥名称和URL。
base_url (str) - API的基础URL。
path (str) – API端点的路径,相对于基础URL。
method (str) – HTTP请求的方法(例如:'get'、'post')。
openapi_security (List[Dict[str, Any]]) – OpenAPI规范中定义的全局安全配置。
sec_schemas (Dict[str, Dict[str, Any]]) - 详细的安全方案。
operation (Dict[str, Any]) – 一个包含OpenAPI操作详情的字典,包括参数和请求体定义。
- Returns:
- 一个装饰器,当应用于函数时,能够
使函数根据提供的OpenAPI操作细节发起HTTP请求。
- Return type:
可调用
- Raises:
TypeError - 如果安全要求包含不受支持的类型。
ValueError - 如果环境变量中缺少必需的API密钥,或者请求正文的内容类型不受支持。
- openapi_spec_to_openai_schemas(api_name: str, openapi_spec: Dict[str, Any]) List[Dict[str, Any]][来源]#
将OpenAPI规范转换为OpenAI模式格式。
该函数遍历OpenAPI规范中定义的路径和操作,过滤掉已弃用的操作。对于每个操作,它会构建一个适合OpenAI格式的模式,包括操作元数据如函数名称、描述、参数和请求体。如果操作缺少描述或摘要,则会引发ValueError。
- Parameters:
api_name (str) – API的名称,用于为生成的函数名称添加前缀。
openapi_spec (Dict[str, Any]) – 以字典形式表示的OpenAPI规范。
- Returns:
- 一个字典列表,每个字典代表一个
符合OpenAI模式格式的函数,包含有关函数名称、描述和参数的详细信息。
- Return type:
List[Dict[str, Any]]
- Raises:
ValueError – 如果OpenAPI规范中的操作没有描述或摘要。
注意
该函数假设OpenAPI规范遵循3.0+格式。
- Reference:
- class camel.toolkits.OpenBBToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个通过OpenBB平台访问金融数据和分析的工具包。
该工具包提供通过OpenBB平台SDK获取和分析金融市场数据的方法,包括股票、ETF、加密货币、经济指标等。有关凭证配置,请参考OpenBB文档https://my.openbb.co/app/platform/credentials。
- get_available_indicators(provider: Literal['econdb', 'imf'] = 'econdb') List[来源]#
获取可用经济指标列表。
- Parameters:
provider (Literal["econdb", "imf"]) – 数据提供商。 (默认:
econdb)- Returns:
可用指标。
- Return type:
列表
- get_available_indices(provider: Literal['fmp', 'yfinance'] = 'fmp') List[来源]#
获取可用市场指数的列表。
- Parameters:
provider (Literal["fmp", "yfinance"]) – 数据提供商。 (默认:
fmp)- Returns:
可用索引。
- Return type:
列表
- get_company_profile(symbol: str, provider: Literal['fmp', 'intrinio', 'yfinance'] = 'fmp') List[来源]#
获取公司简介信息。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
provider (Literal["fmp", "intrinio", "yfinance"]) – 数据提供商。 (默认:
fmp)
- Returns:
公司简介。
- Return type:
列表
- get_dividend_calendar(start_date: str | None = None, end_date: str | None = None) List[来源]#
获取股息日历,可选择计算收益率。
- Parameters:
start_date (可选[str]) – 起始日期,格式为YYYY-MM-DD。 (默认值:
None)end_date (Optional[str]) – 结束日期,格式为YYYY-MM-DD。(默认值:
None)
- Returns:
股息日历。
- Return type:
列表
- get_earnings_calendar(start_date: str | None = None, end_date: str | None = None) List[来源]#
获取公司财报日历,提供筛选和排序选项。
- Parameters:
start_date (Optional[str]) – 开始日期,格式为YYYY-MM-DD。 (默认:
None)end_date (Optional[str]) – 结束日期,格式为YYYY-MM-DD。(默认值:
None)
- Returns:
盈利日历。
- Return type:
列表
- get_economic_calendar(provider: Literal['fmp', 'tradingeconomics'] = 'fmp', start_date: str | None = None, end_date: str | None = None) List[来源]#
获取经济日历事件。
- Parameters:
provider (Literal["fmp", "tradingeconomics"]) – 数据提供商。 (默认:
fmp)start_date (可选[str]) – 以YYYY-MM-DD格式表示的起始日期。 (默认值:
None)end_date (Optional[str]) – 结束日期,格式为YYYY-MM-DD。(默认值:
None)
- Returns:
经济日历。
- Return type:
列表
- get_financial_attributes(symbol: str, tag: str, frequency: Literal['daily', 'weekly', 'monthly', 'quarterly', 'yearly'] = 'yearly') List[来源]#
获取特定财务属性的历史数值。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
tag (str) – 财务属性标签(使用search_financial_attributes来查找标签)。
(Literal["daily" (频率) – “yearly”]): 数据频率,可选"daily"、"weekly"、"monthly"、"quarterly"、"yearly"。(默认:
yearly)"weekly" – “yearly”]): 数据频率,"daily"(每日), "weekly"(每周), "monthly"(每月), "quarterly"(每季度), "yearly"(每年)。 (默认:
yearly)"monthly" – “yearly”]): 数据频率,"daily"(每日)、"weekly"(每周)、"monthly"(每月)、 "quarterly"(每季度)、"yearly"(每年)。(默认:
yearly)"quarterly" – “yearly”]): 数据频率,"daily"(每日)、"weekly"(每周)、"monthly"(每月)、"quarterly"(每季度)、"yearly"(每年)。(默认:
yearly)
- :param“yearly”]): Data frequency, “daily”, “weekly”, “monthly”,
“quarterly”, “yearly”。(默认:
yearly)
- Returns:
历史数值。
- Return type:
列表
- get_financial_metrics(symbol: str, provider: Literal['fmp', 'intrinio', 'yfinance'] = 'fmp', period: Literal['annual', 'quarter'] = 'annual', limit: int = 5) List[来源]#
获取公司财务指标和比率。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
provider (Literal["fmp", "intrinio", "yfinance"]) – 数据源。 (默认:
fmp)period (Literal["annual", "quarter"]) – 报告周期,"annual":年度指标,"quarter":季度指标。(默认值:
annual)limit (int) – 要返回的周期数。(默认:
5)
- Returns:
财务指标。
- Return type:
列表
- get_financial_statement(symbol: str, provider: Literal['fmp', 'intrinio', 'polygon', 'yfinance'] = 'fmp', statement_type: Literal['balance', 'income', 'cash'] = 'balance', period: Literal['annual', 'quarter'] = 'annual', limit: int = 5) List[来源]#
获取公司财务报表。
访问资产负债表、利润表或现金流量表数据。 数据可用性和字段名称因数据提供商和公司类型而异。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
provider (Literal["fmp", "intrinio", "polygon", "yfinance"]) – 数据提供者。(默认:
fmp)statement_type (Literal["balance", "income", "cash"]) – 财务报表类型,"balance": 资产负债表,"income": 利润表,"cash": 现金流量表 (默认值:
balance)period (Literal["annual", "quarter"]) – 报告周期,"annual": 年度报告, "quarter": 季度报告。(默认值:
annual)limit (int) – 要返回的周期数。(默认:
5)
- Returns:
财务报表数据。
- Return type:
列表
- get_historical_data(symbol: str, provider: Literal['fmp', 'polygon', 'tiingo', 'yfinance'] = 'fmp', asset_type: Literal['equity', 'currency', 'crypto'] = 'equity', start_date: str | None = None, end_date: str | None = None, interval: Literal['1m', '5m', '15m', '30m', '1h', '4h', '1d'] = '1d') List[来源]#
从OpenBB平台提供商获取历史市场数据。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
provider (Literal["fmp", "polygon", "tiingo", "yfinance"]) – 数据源。(默认:
fmp)asset_type (Literal["equity", "currency", "crypto"]) – 资产类型。 (默认值:
equity)start_date – 开始日期,格式为YYYY-MM-DD。如果为None,则使用提供商的默认回溯期。(默认:
None)end_date – 结束日期,格式为YYYY-MM-DD。如果为None,则使用当前日期。(默认:
None)interval – 数据频率/时间框架。(默认:
1d)
- Returns:
历史市场数据。
- Return type:
列表
- get_indicator_data(symbol: str, country: str, provider: Literal['econdb', 'imf'] = 'econdb') List[来源]#
获取经济指标的详细元数据。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)。
country (str) – 国家代码(例如,'US'代表美国)。
provider (Literal["econdb", "imf"]) – 数据提供商。(默认:
econdb)
- Returns:
指标数据。
- Return type:
列表
- get_ipo_calendar(start_date: str | None = None, end_date: str | None = None) List[来源]#
获取包含全面筛选选项的IPO/SPO日历。
- Parameters:
start_date (可选[str]) – 以YYYY-MM-DD格式表示的起始日期。 (默认值:
None)end_date (Optional[str]) – 结束日期,格式为YYYY-MM-DD。(默认值:
None)
- Returns:
IPO/SPO日历。
- Return type:
列表
- get_market_data(category: Literal['gainers', 'losers', 'active'] = 'active') List[来源]#
获取市场变动数据。
- Parameters:
category (Literal["gainers", "losers", "active"]) – 市场数据类型。必须是'gainers'、'losers'或'active'。(默认值:
active)- Returns:
市场变动数据。
- Return type:
列表
- get_stock_quote(symbol: str, provider: Literal['fmp', 'intrinio', 'yfinance'] = 'fmp') List[来源]#
获取给定股票代码的当前报价。
- Parameters:
symbol (str) – 股票代码(例如,'AAPL'代表苹果公司)
provider (Literal["fmp", "intrinio", "yfinance"]) – 数据源。 (默认:
fmp)
- Returns:
请求格式的股票报价数据
- Return type:
列表
- get_tools() List[FunctionTool][来源]#
返回可用的OpenBB金融工具列表。
- Returns:
可用工具列表。
- Return type:
列表[FunctionTool]
- screen_market(provider: Literal['fmp', 'yfinance'] = 'fmp', country: str | None = None, exchange: str | None = None, sector: str | None = None, industry: str | None = None, mktcap_min: float | None = None, mktcap_max: float | None = None, beta_min: float | None = None, beta_max: float | None = None) List[来源]#
根据市场和基本面标准筛选股票。
- Parameters:
provider (Literal["fmp", "yfinance"]) – 数据提供者。 (默认:
fmp)country (可选[str]) – 两位字母的ISO国家代码(例如'US'、'IN'、'CN')。(默认值:
None)exchange (可选[str]) – 股票交易所代码(例如'NYSE', 'AMEX', 'NSE')。(默认:
None)sector (可选[str]) - 市场行业(例如:'金融服务'、'医疗保健')。(默认值:
None)industry (可选[str]) – 行业细分领域(例如: '区域性银行'、'制药公司')。(默认值:
None)mktcap_min (可选[float]) - 以美元计的最小市值。 (默认值:
None)mktcap_max (可选[float]) – 以美元计的最大市值。 (默认:
None)beta_min (可选[float]) – 最小beta值。 (默认值:
None)beta_max (可选[float]) - 最大beta值。 (默认:
None)
- Returns:
筛选过的股票。
- Return type:
列表
- search_equity(query: str, provider: Literal['intrinio', 'sec'] = 'sec') List[来源]#
搜索股票代码和公司信息。
对于SEC提供商,空查询(“”)返回按市值排序的完整公司列表。
- Parameters:
query (str) – 搜索查询(公司名称或股票代码),使用""获取完整的SEC列表。
provider (Literal["intrinio", "sec"]) – 数据提供商。可用选项: - sec: SEC EDGAR数据库(按市值排序) - intrinio: Intrinio金融数据
- Returns:
搜索结果。
- Return type:
列表
- search_etf(query: str, provider: Literal['fmp', 'intrinio'] = 'fmp') List[来源]#
搜索ETF信息。
- Parameters:
query (str) – 搜索查询(ETF名称或代码)。
provider (Literal["fmp", "intrinio"]) – 数据提供方。(默认:
fmp)
- Returns:
ETF 搜索结果。
- Return type:
列表
- search_filings(symbol: str, provider: Literal['fmp', 'intrinio', 'sec'] = 'sec', form_type: str | None = None) List[来源]#
通过CIK或股票代码搜索SEC文件。
- Parameters:
symbol (str) – 要获取数据的股票代码(例如"MAXD")。
provider (Literal["fmp", "intrinio", "sec"]) – 数据提供商。 (默认:
sec)form_type (可选[str]) - 按表单类型过滤。检查数据提供者以获取可用类型。对于提供者(如sec),允许多个逗号分隔项。(默认:
None)
- Returns:
文件搜索结果。
- Return type:
列表
- class camel.toolkits.PubMedToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于与PubMed的E-utilities API交互以访问MEDLINE数据的工具包。
该工具包提供从PubMed数据库搜索和检索论文的功能,包括摘要、引用和其他元数据。
- Parameters:
timeout (可选[float]) – API请求的超时时间,单位为秒。 (默认值:
None)
- BASE_URL = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils'#
- get_abstract(paper_id: str | int) str[来源]#
从MEDLINE/PubMed获取特定生物医学论文的摘要。
- Parameters:
paper_id (Union[str, int]) – 论文的PubMed ID。
- Returns:
摘要文本。
- Return type:
字符串
- get_citation_count(paper_id: str | int) int[来源]#
获取MEDLINE/PubMed中生物医学论文的引用次数。
- Parameters:
paper_id (Union[str, int]) - 论文的PubMed ID。
- Returns:
引用次数,如果检索失败则为0。
- Return type:
int
- get_paper_details(paper_id: str | int, include_references: bool = False) Dict[str, Any] | None[来源]#
从MEDLINE/PubMed获取特定生物医学论文的详细信息。
- Parameters:
paper_id (Union[str, int]) - 论文的PubMed ID。
include_references (bool, optional) – 是否包含被引用的论文。(默认:
False)
- Returns:
- 论文详情包括标题、作者、
摘要等,如果检索失败则为None。
- Return type:
可选[字典[str, 任意类型]]
获取与MEDLINE/PubMed中特定论文相关的生物医学论文。
- Parameters:
paper_id (Union[str, int]) - 论文的PubMed ID。
max_results (int, optional) – 要返回的最大结果数量。 (默认值:
10)
- Returns:
相关论文及其元数据列表。
- Return type:
List[Dict[str, Any]]
- get_tools() List[FunctionTool][来源]#
返回由PubMed工具包提供的工具列表。
- Returns:
可用工具列表。
- Return type:
列表[FunctionTool]
- search_papers(query: str, max_results: int = 10, sort: str = 'relevance', date_range: Dict[str, str] | None = None, publication_type: List[str] | None = None) List[Dict[str, str]][来源]#
通过PubMed的高级筛选选项搜索MEDLINE中的生物医学论文。
- Parameters:
query (str) – 搜索查询字符串。
max_results (int, optional) – 要返回的最大结果数量。 (默认值:
10)sort (str, optional) – 排序顺序 - 'relevance'(相关性)或'date'(日期)。 (默认值:
"relevance")date_range (Optional[Dict[str, str]], optional) – 日期范围过滤器,使用'from'和'to'日期,格式为YYYY/MM/DD。 (default:
None)publication_type (Optional[List[str]], optional) – 按出版物类型筛选(例如:[“Journal Article”, “Review”])。 (默认值:
None)
- Returns:
包含论文元数据的论文列表。
- Return type:
List[Dict[str, str]]
- class camel.toolkits.RedditToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个代表Reddit操作工具包的类。
该工具包提供了与Reddit API交互的方法,允许用户收集热门帖子、对评论进行情感分析,并跟踪多个子版块中的关键词讨论。
- retries#
API请求失败时的重试次数。
- Type:
int
- delay#
重试之间的延迟时间(以秒为单位)。
- Type:
浮点数
- reddit#
Reddit客户端的一个实例。
- Type:
Reddit
- collect_top_posts(subreddit_name: str, post_limit: int = 5, comment_limit: int = 5) List[Dict[str, Any]] | str[来源]#
收集指定子版块的热门帖子及其评论。
- Parameters:
subreddit_name (str) – 要从中收集帖子的subreddit名称。
post_limit (int) – 要收集的热门帖子最大数量。默认为5。
comment_limit (int) – 每篇帖子收集的热门评论的最大数量。默认为5。
- Returns:
- 一个字典列表,每个
包含帖子标题及其热门评论(如果成功)。 如果凭据未设置则显示字符串警告。
- Return type:
Union[List[Dict[str, Any]], str]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表,用于
工具包方法。
- Return type:
列表[FunctionTool]
- perform_sentiment_analysis(data: List[Dict[str, Any]]) List[Dict[str, Any]][来源]#
对从Reddit帖子收集的评论进行情感分析。
- Parameters:
data (List[Dict[str, Any]]) – 包含Reddit帖子和评论数据的字典列表。
- Returns:
- 原始数据添加了每条评论的‘情感
评分’。
- Return type:
List[Dict[str, Any]]
- track_keyword_discussions(subreddits: List[str], keywords: List[str], post_limit: int = 10, comment_limit: int = 10, sentiment_analysis: bool = False) List[Dict[str, Any]] | str[来源]#
追踪指定子版块中关于特定关键词的讨论。
- Parameters:
subreddits (List[str]) – 要在其中搜索的subreddit名称列表。
keywords (List[str]) – 用于跟踪子论坛讨论中的关键词列表
post_limit (int) – 每个subreddit收集的热门帖子最大数量。默认为10。
comment_limit (int) – 每篇帖子收集的热门评论的最大数量。默认为 10。
sentiment_analysis (bool) – 如果为True,将对评论进行情感分析。默认为False。
- Returns:
- 字典列表
包含子版块名称、帖子标题、评论内容以及每个包含指定关键词评论的点赞数(如果成功)。如果凭据未设置则返回字符串警告。
- Return type:
Union[List[Dict[str, Any]], str]
- class camel.toolkits.RetrievalToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示信息检索工具包的类。
该类提供了基于指定查询从本地向量存储系统中检索信息的方法。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- information_retrieval(query: str, contents: str | List[str], top_k: int = 1, similarity_threshold: float = 0.7) str[来源]#
从本地向量存储中根据指定查询检索信息。该函数连接到本地向量存储系统,并通过处理输入查询来获取相关信息。当问题的答案需要依赖外部知识源时,使用此函数至关重要。
- Parameters:
query (str) – 需要回答的问题或查询。
contents (Union[str, List[str]]) - 本地文件路径、远程URL或字符串内容。
top_k (int, optional) – 在检索过程中返回的顶部结果数量。必须为正整数。默认为DEFAULT_TOP_K_RESULTS。
similarity_threshold (float, optional) – 用于过滤结果的相似度阈值。默认为 DEFAULT_SIMILARITY_THRESHOLD。
- Returns:
- 查询返回的信息,经过汇总
并格式化为字符串。
- Return type:
字符串
示例
# 获取关于CAMEL AI的信息。 information_retrieval(query = "如何为CAMEL AI做贡献?",
contents=”camel-ai/camel”)
- class camel.toolkits.SearchToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个代表网页搜索工具包的类。
该类提供了使用搜索引擎(如Google、DuckDuckGo、Wikipedia、Wolfram Alpha和Brave)在网络上搜索信息的方法。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- query_wolfram_alpha(query: str, is_detailed: bool = False) str | Dict[str, Any][来源]#
查询Wolfram|Alpha并返回结果。Wolfram|Alpha是由Wolfram Research开发的答案引擎。它作为一项在线服务提供,通过从外部来源数据计算答案来回答事实查询。
- Parameters:
query (str) – 要发送给Wolfram Alpha的查询语句。
is_detailed (bool) - 是否在结果中包含包括逐步信息在内的额外细节。 (默认:
False)
- Returns:
- Wolfram Alpha返回的结果。
如果is_detailed为False则返回字符串,否则返回包含详细信息的字典。
- Return type:
Union[str, Dict[str, Any]]
- search_baidu(query: str, max_results: int = 5) Dict[str, Any][来源]#
通过网页抓取方式使用百度搜索获取相关搜索结果。该方法查询百度的搜索引擎并提取包括标题、描述和URL在内的搜索结果。
- Parameters:
query (str) – 要提交给百度的搜索查询字符串。
max_results (int) – 返回结果的最大数量。 (默认值:
5)
- Returns:
- 包含搜索结果或错误的字典
消息。
- Return type:
字典[字符串, 任意类型]
- search_bing(query: str, max_results: int = 5) Dict[str, Any][来源]#
使用Bing搜索引擎搜索给定查询的信息。
该函数通过网页抓取查询中文版必应搜索引擎(cn.bing.com),获取相关搜索结果。它会提取包括标题、摘要和URL在内的搜索结果。当查询内容为中文或需要中文搜索结果时,此函数特别有用。
- Parameters:
query (str) – 要提交给Bing的搜索查询字符串。对于中文查询或需要中文结果时效果最佳。
max_results (int) – 返回结果的最大数量。 (默认值:
5)
- Returns:
- 包含以下任一内容的字典:
- 'results': 字典列表,每个字典包含:
'result_id': 结果的索引。
'snippet': 搜索结果的简要描述。
'title': 搜索结果的标题。
'link': 搜索结果的URL。
或 'error': 如果出错时的错误信息。
- Return type:
字典 ([字符串, 任意类型])
- search_bocha(query: str, freshness: str = 'noLimit', summary: bool = False, count: int = 10, page: int = 1) Dict[str, Any][来源]#
查询Bocha AI搜索API并返回搜索结果。
- Parameters:
query (str) – 搜索查询语句。
freshness (str) – 用于筛选搜索结果的时间范围。默认为"noLimit"。可选选项包括: - 'noLimit': 无限制(默认)。 - 'oneDay': 过去一天。 - 'oneWeek': 过去一周。 - 'oneMonth': 过去一个月。 - 'oneYear': 过去一年。
summary (bool) – 是否在结果中包含文本摘要。默认为False。
count (int) – 要返回的结果数量(1-50)。默认值为10。
page (int) – 结果的页码。默认为1。
- Returns:
- 包含搜索结果的字典,包括
网页、图片和视频(如果有的话)。该结构遵循Bocha AI搜索API响应格式。
- Return type:
字典[字符串, 任意类型]
- search_brave(q: str, country: str = 'US', search_lang: str = 'en', ui_lang: str = 'en-US', count: int = 20, offset: int = 0, safesearch: str = 'moderate', freshness: str | None = None, text_decorations: bool = True, spellcheck: bool = True, result_filter: str | None = None, goggles_id: str | None = None, units: str | None = None, extra_snippets: bool | None = None, summary: bool | None = None) Dict[str, Any][来源]#
该函数查询Brave搜索引擎API并返回一个字典,表示搜索结果。 详情请参阅https://api.search.brave.com/app/documentation/web-search/query
- Parameters:
q (str) – 用户的搜索查询词。查询不能为空。查询最多400个字符和50个单词。
country (str) – 搜索结果来源的查询国家。 国家字符串仅限于2个字符的国家代码, 支持的国家列表。有关支持的值列表,请参阅 国家代码。(默认: :obj:`US `)
search_lang (str) – 搜索语言偏好。用于提供搜索结果的2个或更多字符的语言代码。有关可能值的列表,请参阅语言代码。
ui_lang (str) – 响应中首选的用户界面语言。 通常格式为'<语言代码>-<国家代码>'。 更多信息请参阅RFC 9110。有关支持的值列表,请参见UI语言代码。
count (int) – 返回的搜索结果数量。 最大值为20。实际返回数量可能少于请求数量。 将此参数与offset结合使用可实现搜索结果分页。
offset (int) – 基于零的偏移量,表示在返回结果前要跳过的每页搜索结果数量(计数)。最大值为9。实际返回数量可能少于请求值,具体取决于查询条件。要实现分页效果,请将此参数与count参数配合使用。例如,如果您的用户界面每页显示20个搜索结果,设置count为20且offset为0可显示第一页结果。要获取后续页面,将offset每次递增1(如0,1,2)。不同页面之间的结果可能存在重叠。
safesearch (str) –
过滤搜索结果中的成人内容。 支持以下值: - 'off': 不进行任何过滤。 - 'moderate': 过滤露骨内容,如图片和视频,
但允许搜索结果中出现成人域名。
'strict': 从搜索结果中移除所有成人内容。
freshness (可选[str]) –
按发现时间筛选搜索结果: - 'pd':过去24小时内发现的。 - 'pw':过去7天内发现的。 - 'pm':过去31天内发现的。 - 'py':过去365天内发现的。 - 'YYYY-MM-DDtoYYYY-MM-DD':也支持通过
指定日期范围来设置时间段,例如'2022-04-01to2022-07-30'。
text_decorations (bool) - 是否在显示字符串(例如结果片段)中包含装饰标记(例如高亮字符)。
spellcheck (bool) – 是否对提供的查询进行拼写检查。如果启用了拼写检查器,修改后的查询将始终用于搜索。修改后的查询可以在查询响应模型的altered键中找到。
result_filter (可选[str]) - 一个用逗号分隔的字符串,用于指定要在搜索结果响应中包含的结果类型。如果不指定此参数,将返回所有可获得数据且订阅了相应选项计划的结果类型。响应始终包含query和type,分别用于标识任何查询修改和响应类型。可用的结果过滤值包括: - 'discussions' - 'faq' - 'infobox' - 'news' - 'query' - 'summarizer' - 'videos' - 'web' - 'locations'
goggles_id (可选[str]) – Goggles 作为在 Brave 搜索索引之上的自定义重新排序工具。更多详情,请参考 Goggles 代码库。
units (可选[str]) – 测量单位。如果未提供,单位将从搜索国家/地区派生。可能的值为: - 'metric':标准公制单位系统 - 'imperial':英制单位系统
extra_snippets (Optional[bool]) – 片段是从查询结果页面中获取的摘录,而extra_snippets允许您获取最多5个额外的备选摘录。仅适用于Free AI、Base AI、Pro AI、Base Data、Pro Data和Custom套餐。
summary (可选[bool]) – 此参数用于在网页搜索结果中生成摘要关键词。这是启用摘要功能所必需的。
- Returns:
表示搜索结果的字典。
- Return type:
字典[字符串, 任意类型]
- search_duckduckgo(query: str, source: str = 'text', max_results: int = 5) List[Dict[str, Any]][来源]#
使用DuckDuckGo搜索引擎搜索给定查询的信息。
该函数查询DuckDuckGo API获取与给定搜索词相关的主题。结果会被格式化为一个字典列表,每个字典代表一个搜索结果。
- Parameters:
query (str) – 要搜索的查询语句。
source (str) – 要查询的信息类型(例如:"text"、"images"、"videos")。默认为"text"。
max_results (int) – 最大结果数量,默认为5。
- Returns:
- 一个字典列表,其中每个字典
代表一个搜索结果。
- Return type:
List[Dict[str, Any]]
- search_exa(query: str, search_type: Literal['auto', 'neural', 'keyword'] = 'auto', category: Literal['company', 'research paper', 'news', 'pdf', 'github', 'tweet', 'personal site', 'linkedin profile', 'financial report'] | None = None, num_results: int = 10, include_text: List[str] | None = None, exclude_text: List[str] | None = None, use_autoprompt: bool = True, text: bool = False) Dict[str, Any][来源]#
使用Exa搜索API执行智能网络搜索,可选择内容提取。
- Parameters:
query (str) – 搜索查询字符串。
search_type (Literal["auto", "neural", "keyword"]) – 要执行的搜索类型。"auto"会自动在关键词搜索和神经搜索之间做出选择。(默认值:
"auto")category (可选[Literal]) – 用于聚焦搜索的类别,例如"研究论文"或"新闻"。(默认:
None)num_results (int) – 要返回的结果数量(最多100个)。 (默认值:
10)include_text (可选[列表[字符串]]) – 必须出现在网页文本中的字符串。限制为1个最多5个单词的字符串。 (默认值:
None)exclude_text (Optional[List[str]]) – 网页文本中必须不包含的字符串。限制为最多5个单词的1个字符串。 (default:
None)use_autoprompt (bool) – 是否使用Exa的autoprompt功能来增强查询。(默认:
True)text (bool) – 是否在结果中包含网页内容。 (默认:
False)
- Returns:
- 包含搜索结果和元数据的字典:
requestId (str): 请求的唯一标识符
autopromptString (str): 如果启用则生成的自动提示
autoDate (str): 自动提示生成的时间戳
resolvedSearchType (str): 实际使用的搜索类型
results (List[Dict]): 带有元数据的搜索结果列表
searchType (str): 被选中的搜索类型
costDollars (Dict): API费用的明细
- Return type:
字典[字符串, 任意类型]
- search_google(query: str, num_result_pages: int = 5) List[Dict[str, Any]][来源]#
使用Google搜索引擎搜索给定查询的信息。
- Parameters:
query (str) – 要搜索的查询语句。
num_result_pages (int) – 要检索的结果页数。
- Returns:
一个字典列表,其中每个字典代表一个网站。
每个字典包含以下键: - 'result_id': 顺序编号。 - 'title': 网站标题。 - 'description': 网站简要描述。 - 'long_description': 网站更多详细信息。 - 'url': 网站URL。
示例: {
'result_id': 1, 'title': 'OpenAI', 'description': '一个致力于确保人工通用智能造福全人类的组织。', 'long_description': 'OpenAI是一家非营利性人工智能研究公司。我们的目标是以最有可能造福全人类的方式推进数字智能', 'url': 'https://www.openai.com'
}
网站的标题、描述和URL。
- Return type:
List[Dict[str, Any]]
- search_linkup(query: str, depth: Literal['standard', 'deep'] = 'standard', output_type: Literal['searchResults', 'sourcedAnswer', 'structured'] = 'searchResults', structured_output_schema: str | None = None) Dict[str, Any][来源]#
在Linkup API中搜索查询并以多种格式返回结果。
- Parameters:
query (str) – 搜索查询语句。
depth (Literal["standard", "deep"]) – 搜索的深度。 "standard"表示简单搜索,"deep"表示更全面的搜索。
(Literal["searchResults" (output_type) – “structured”]): 输出类型: - "searchResults"表示原始搜索结果, - "sourcedAnswer"表示带有支持来源的答案, - "structured"表示基于提供的模式输出。
"sourcedAnswer" – "structured"]): 输出类型: - "searchResults" 表示原始搜索结果, - "sourcedAnswer" 表示带有支持来源的答案, - "structured" 表示基于提供的模式输出。
- :param“structured”]): The type of output:
"searchResults" 表示原始搜索结果,
"sourcedAnswer"表示带有支持来源的答案,
"structured"表示基于提供的模式输出。
- Parameters:
structured_output_schema (可选[str]) – 如果output_type是 "structured",则指定输出的模式。必须是一个 表示有效对象JSON模式的字符串。
- Returns:
- 表示搜索结果的字典。
结构取决于output_type。如果发生错误,将返回错误信息。
- Return type:
字典[字符串, 任意类型]
- search_wiki(entity: str) str[来源]#
- Search the entity in WikiPedia and return the summary of the
必填页面,包含有关给定实体的真实信息。
- Parameters:
entity (str) – 要搜索的实体。
- Returns:
- 搜索结果。如果该实体对应的页面
存在,则以字符串形式返回该实体的摘要。
- Return type:
字符串
- tavily_search(query: str, num_results: int = 5, **kwargs) List[Dict[str, Any]][来源]#
使用Tavily搜索API为给定查询搜索信息。
- Parameters:
query (str) – 要搜索的查询语句。
num_results (int) – 要检索的搜索结果数量(默认为5)。
**kwargs –
Tavily API支持的其他可选参数: - search_depth (str): "basic"或"advanced"搜索深度。 - topic (str): 搜索类别,例如"general"或"news"。 - days (int): 新闻相关搜索的时间范围(天数)。 - max_results (int): 返回的最大结果数量
(覆盖num_results)。
详情请参阅https://docs.tavily.com/docs/python-sdk/tavily-search/ api-reference。
- Returns:
- 表示搜索结果的字典列表
每个字典包含: - 'result_id' (int): 结果的索引编号 - 'title' (str): 结果的标题 - 'description' (str): 结果的简要描述 - 'long_description' (str): 详细信息(如果有) - 'url' (str): 结果的URL链接 - 'content' (str): 搜索结果中的相关内容 - 'images' (list): 相关图片列表(如果
include_images为True时显示)
'published_date' (str): 新闻主题的发布日期(如果有)
- Return type:
List[Dict[str, Any]]
- class camel.toolkits.SearxNGToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个使用SearxNG搜索引擎执行网络搜索的工具包。
该工具包提供了使用SearxNG(一个注重隐私的元搜索引擎)进行网络搜索的方法。它支持可定制的搜索参数和安全搜索级别。
- Parameters:
searxng_host (str) - 用于搜索的SearxNG实例的URL。必须是有效的HTTP/HTTPS URL。
language (str, optional) – 搜索结果的语种代码。 (默认:
"en")categories (List[str], optional) – 要使用的搜索类别列表。 (默认值:
None)time_range (str, optional) – 用于筛选搜索结果的时间范围。有效值为"day"、"week"、"month"、"year"。(默认值:
None)safe_search (int, optional) – 安全搜索级别 (0: 无, 1: 中等, 2: 严格)。(默认:
1)timeout (可选[float]) - API请求的超时时间,单位为秒。如果为None,则不应用超时。 (默认值:
None)
- Raises:
ValueError – 如果searxng_host不是有效的HTTP/HTTPS URL。
ValueError - 如果safe_search不在有效范围[0, 2]内。
ValueError - 如果提供了time_range但不在有效选项中。
- get_tools() List[FunctionTool][来源]#
获取工具包中可用的工具列表。
- Returns:
- 表示工具包中
可用功能的FunctionTool对象列表。
- Return type:
列表[FunctionTool]
- search(query: str, num_results: int = 10, category: str | None = None) List[Dict[str, str]][来源]#
使用配置的SearxNG实例执行网络搜索。
- Parameters:
query (str) – 要执行的搜索查询字符串。
num_results (int, optional) – 要返回的最大结果数量。 (默认值:
10)category (str, optional) – 指定要使用的搜索类别。如果未提供,则使用self.categories中的第一个类别。 (default:
None)
- Returns:
- 搜索结果列表,其中每个结果是
包含'title'、'link'和'snippet'键的字典。
- Return type:
List[Dict[str, str]]
- class camel.toolkits.SemanticScholarToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于与Semantic Scholar API交互以获取论文和作者数据的工具包。
- fetch_author_data(ids: List[str], fields: List[str] | None = None, save_to_file: bool = False) dict[来源]#
根据作者ID从Semantic Scholar API获取作者信息。
- Parameters:
ids (list) – 要获取数据的作者ID列表(字符串形式)。
fields (可选[列表[字符串]], 可选) – 响应中包含的字段(默认:
None)。如果未提供,则默认为["name", "url", "paperCount", "hIndex", "papers"]。save_to_file (bool, optional) – 是否将结果保存到文件中(默认:
False)。
- Returns:
- 来自API的响应数据或错误信息(如果
请求失败)。
- Return type:
字典
- fetch_bulk_paper_data(query: str, year: str = '2023-', fields: List[str] | None = None) dict[来源]#
根据相关主题从Semantic Scholar API批量获取多篇论文。
- Parameters:
query (str) – 用于匹配论文标题和摘要的文本查询。例如,您可以使用以下运算符和技术构建查询:示例1:((cloud computing) | virtualization) +security -privacy 这将匹配标题或摘要包含"cloud"和"computing",或包含单词"virtualization"的论文。这些论文还必须包含术语"security",但排除包含单词"privacy"的论文。
year (str, optional) – 论文的年份筛选条件(默认值:
"2023-")。fields (可选[列表[字符串]], 可选) – 响应中包含的字段(默认:
None)。如果未提供,则默认为["title", "url", "publicationTypes", "publicationDate", "openAccessPdf"]。
- Returns:
- 来自API的响应数据或请求失败时的错误信息
请求失败。
- Return type:
字典
- fetch_paper_data_id(paper_id: str, fields: List[str] | None = None) dict[来源]#
根据论文ID从Semantic Scholar API获取单篇论文。
- Parameters:
paper_id (str) – 要获取的论文ID。
fields (可选[列表[字符串]], 可选) – 响应中包含的字段(默认:
None)。如果未提供,则默认为["title", "abstract", "authors", "year", "citationCount", "publicationTypes", "publicationDate", "openAccessPdf"]。
- Returns:
- 来自API的响应数据或错误信息
如果请求失败。
- Return type:
字典
- fetch_paper_data_title(paper_title: str, fields: List[str] | None = None) dict[来源]#
根据论文标题从Semantic Scholar API获取单篇论文。
- Parameters:
paper_title (str) – 要获取的论文标题。
fields (可选[列表[字符串]], 可选) – 响应中包含的字段(默认:
None)。如果未提供,默认为["title", "abstract", "authors", "year", "citationCount", "publicationTypes", "publicationDate", "openAccessPdf"]。
- Returns:
- 来自API的响应数据或请求失败时的错误信息
请求失败。
- Return type:
字典
- fetch_recommended_papers(positive_paper_ids: List[str], negative_paper_ids: List[str], fields: List[str] | None = None, limit: int = 500, save_to_file: bool = False) dict[来源]#
根据正向和负向论文ID,从Semantic Scholar API获取推荐论文。
- Parameters:
positive_paper_ids (list) – 与推荐结果呈正相关的论文ID列表(字符串形式)
negative_paper_ids (list) - 与推荐结果负相关的论文ID列表(字符串形式)
fields (可选[列表[字符串]], 可选) – 响应中包含的字段(默认:
None)。如果未提供,默认为["title", "url", "citationCount", "authors", "publicationTypes", "publicationDate", "openAccessPdf"]。limit (int, optional) – 返回推荐论文的最大数量(默认:
500)。save_to_file (bool, optional) – 如果为True,则将响应数据保存到文件中(默认:
False)。
- Returns:
- 一个包含按
引用次数排序的推荐论文的字典。
- Return type:
字典
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.SlackToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Slack操作工具包的类。
该类提供了Slack操作的方法,例如创建新频道、加入现有频道、离开频道。
- create_slack_channel(name: str, is_private: bool | None = True) str[来源]#
创建一个新的Slack频道,可以是公开的或私密的。
- Parameters:
name (str) – 要创建的公共或私有频道的名称。
is_private (bool, optional) – 是否创建私有频道而非公共频道。默认为 True。
- Returns:
- 包含Slack相关信息的JSON字符串
频道已创建。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
- delete_slack_message(time_stamp: str, channel_id: str) str[来源]#
向Slack频道删除一条消息。
- Parameters:
time_stamp (str) - 要删除消息的时间戳。
channel_id (str) - 要删除消息的Slack频道ID。
- Returns:
- 指示消息是否被成功删除的确认信息
或错误消息。
- Return type:
字符串
- Raises:
SlackApiError – 发送消息时发生错误。
- get_slack_channel_information() str[来源]#
- Retrieve Slack channels and return relevant information in JSON
格式。
- Returns:
包含Slack频道信息的JSON字符串。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
- get_slack_channel_message(channel_id: str) str[来源]#
从Slack频道检索消息。
- Parameters:
channel_id (str) – 要从中检索消息的Slack频道ID。
- Returns:
包含过滤后消息数据的JSON字符串。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道消息时出现错误。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- join_slack_channel(channel_id: str) str[来源]#
加入现有的Slack频道。
- Parameters:
channel_id (str) – 要加入的Slack频道ID。
- Returns:
- 显示是否成功加入的确认消息
或错误信息。
- Return type:
字符串
- Raises:
SlackApiError – 如果在获取Slack频道信息过程中发生错误。
- class camel.toolkits.StripeToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Stripe操作工具包的类。
该工具包提供了与Stripe API交互的方法,允许用户操作stripe核心资源,包括Customer、Balance、BalanceTransaction、Payment、Refund
使用开发者仪表板 https://dashboard.stripe.com/test/apikeys 创建API密钥作为STRIPE_API_KEY。
- logger#
一个用于记录日志的记录器。
- Type:
日志记录器
- balance_transaction_list(limit: int = 100) str[来源]#
列出您的余额交易记录。
- Parameters:
limit (int, optional) – 要检索的余额交易数量。 (默认值:
100)- Returns:
- 如果成功则返回余额交易数据列表,如果失败则返回错误
消息字符串。
- Return type:
字符串
- customer_get(customer_id: str) str[来源]#
根据ID检索客户。
- Parameters:
customer_id (str) – 要检索的客户ID。
- Returns:
客户数据以字符串形式呈现。
- Return type:
字符串
- customer_list(limit: int = 100) str[来源]#
列出客户。
- Parameters:
limit (int, optional) – 要获取的客户数量。(默认值:
100)- Returns:
- 如果成功则返回输出字符串,如果
失败则返回错误信息字符串。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表,用于
工具包方法。
- Return type:
列表[FunctionTool]
- handle_exception(func_name: str, error: Exception) str[来源]#
通过记录日志并返回错误信息来处理异常。
- Parameters:
func_name (str) – 发生异常的函数的名称。
error (Exception) - 异常实例。
- Returns:
错误消息字符串。
- Return type:
字符串
- payment_get(payment_id: str) str[来源]#
通过ID获取付款信息。
- Parameters:
payment_id (str) – 要检索的付款ID。
- Returns:
- 支付数据,成功时为字符串,否则为错误信息
失败时为字符串。
- Return type:
字符串
- payment_list(limit: int = 100) str[来源]#
列出付款记录。
- Parameters:
limit (int, optional) – 要获取的支付数量。 (默认值:
100)- Returns:
- 如果成功则返回支付数据列表,否则返回错误信息
失败时返回字符串。
- Return type:
字符串
- class camel.toolkits.SymPyToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个使用SymPy进行符号计算的工具包。包含代数运算、微积分和线性代数的方法。
- check_continuity(expression: str, variable: str, point: float) str[来源]#
检查表达式在给定点是否连续。
- Parameters:
expression (str) – 要检查连续性的数学表达式,以字符串形式提供。
variable (str) – 用于检查连续性的变量。
point (float) – 检查表达式连续性的点。
- Returns:
- 包含连续性检查结果的JSON字符串
位于"result"字段中。如果表达式在给定点是连续的,结果将为"True",否则为"False"。如果发生错误,JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- compute_determinant(matrix: List[List[float]]) str[来源]#
计算矩阵的行列式。
- Parameters:
matrix (List[List[float]]) – 一个二维列表,表示要计算行列式的矩阵。
- Returns:
- 包含矩阵行列式的JSON字符串位于
"result"字段中。如果发生错误,该JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- compute_eigenvalues(matrix: List[List[float]]) str[来源]#
计算矩阵的特征值。
- Parameters:
matrix (List[List[float]]) – 一个二维列表,表示需要计算其特征值的矩阵。
- Returns:
- 包含矩阵特征值的JSON字符串
"result"字段中。特征值以字典形式表示, 其中键是特征值(作为字符串), 值是它们的重数(作为字符串)。如果发生错误, JSON字符串将包含一个"error"字段 以及相应的错误信息。
- Return type:
字符串
- compute_eigenvectors(matrix: List[List[float]]) str[来源]#
计算矩阵的特征向量。
- Parameters:
matrix (List[List[float]]) – 一个二维列表,表示需要计算特征向量的矩阵。
- Returns:
- 包含矩阵特征向量的JSON字符串,位于
"result"字段中。每个特征值表示为具有以下键的字典: - "eigenvalue": 特征值(以字符串形式) - "multiplicity": 特征值的重数(以整数形式) - "eigenvectors": 特征向量列表(每个特征向量以字符串形式表示)
如果发生错误,JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- compute_inner_product(vector1: List[float], vector2: List[float]) str[来源]#
计算两个向量的内积(点积)。
- Parameters:
vector1 (List[float]) - 第一个向量,作为浮点数列表。
vector2 (List[float]) - 第二个向量,作为浮点数列表。
- Returns:
- 包含内积的JSON字符串位于“result”字段中
如果发生错误,JSON字符串将包含一个“error”字段及相应的错误信息。
- Return type:
字符串
- Raises:
ValueError – 如果向量具有不同的维度。
- compute_inverse(matrix: List[List[float]]) str[来源]#
计算矩阵的逆矩阵。
- Parameters:
matrix (List[List[float]]) – 一个二维列表,表示需要计算逆矩阵的矩阵。
- Returns:
- 包含矩阵逆的JSON字符串,位于
"result"字段中。该逆矩阵以符号矩阵格式表示。如果发生错误,JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- compute_limit(expression: str, variable: str, point: float) str[来源]#
计算表达式在变量趋近某一点时的极限。
- Parameters:
expression (str) – 要计算极限的数学表达式,以字符串形式提供。
variable (str) – 计算极限时所用的变量。
point (float) – 变量趋近的点。
- Returns:
- 包含表达式计算限制的JSON字符串
位于“result”字段中。如果发生错误,JSON字符串 将包含一个“error”字段,其中包含相应的错误 信息。
- Return type:
字符串
- compute_nullspace(matrix: List[List[float]]) str[来源]#
计算矩阵的零空间。
- Parameters:
matrix (List[List[float]]) - 一个二维列表,表示要计算其零空间的矩阵。
- Returns:
- 包含矩阵零空间的JSON字符串
"result"字段中的内容。零空间表示为一组基向量的列表,其中每个向量都以符号格式的字符串给出。如果发生错误,JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- compute_rank(matrix: List[List[float]]) str[来源]#
计算矩阵的秩。
- Parameters:
matrix (List[List[float]]) – 一个二维列表,表示要计算秩的矩阵。
- Returns:
- 包含矩阵秩的JSON字符串
结果存储在"result"字段中。秩以整数形式表示。 如果发生错误,JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- definite_integral(expression: str, variable: str, lower: float, upper: float) str[来源]#
计算表达式在给定边界内的定积分。
- Parameters:
expression (str) – 要积分的数学表达式,以字符串形式提供。
variable (str) – 进行定积分运算所针对的变量。
lower (float) – 积分的下限。
upper (float) – 积分的上限。
- Returns:
- 包含定积分结果的JSON字符串
结果将显示在"result"字段中。如果发生错误,JSON字符串会包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- differentiate(expression: str, variable: str | None = None) str[来源]#
对表达式关于某个变量进行微分。
- Parameters:
expression (str) – 要微分的数学表达式,以字符串形式提供。
variable (str, optional) – 进行微分运算所针对的变量。如果未指定,则使用默认变量。
- Returns:
- 包含表达式导数的JSON字符串
"result"字段中。如果发生错误,该JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- expand_expression(expression: str) str[来源]#
展开一个代数表达式。
- Parameters:
expression (str) – 要展开的代数表达式,以字符串形式提供。
- Returns:
- 包含展开代数表达式的JSON字符串
位于"result"字段中。如果发生错误,该JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- factor_expression(expression: str) str[来源]#
分解代数表达式。
- Parameters:
expression (str) – 要因式分解的代数表达式,以字符串形式提供。
- Returns:
- 包含因式分解代数表达式的JSON字符串
位于"result"字段中。如果发生错误,该JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- find_critical_points(expression: str, variable: str) str[来源]#
通过将表达式的导数设为零来找到其临界点。
- Parameters:
expression (str) – 需要寻找临界点的数学表达式,以字符串形式提供。
variable (str) – 用于确定临界点的变量。
- Returns:
- 包含表达式关键点的JSON字符串
在"result"字段中。关键点以对应变量的值列表形式返回。如果发生错误,JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- find_roots(expression: str) str[来源]#
寻找多项式或代数方程的根。
- Parameters:
expression (str) – 需要求根的多项式或代数方程,以字符串形式提供。
- Returns:
- 包含表达式根的JSON字符串,位于
"result"字段中。根以解决方案列表的形式表示。如果发生错误,JSON字符串将包含一个设置为"error"的"status"字段,以及带有相应错误描述的"message"字段。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
将该工具的方法暴露给代理框架。
- Returns:
- 一个表示FunctionTool对象的列表
该工具包的方法,使代理可以访问它们。
- Return type:
列表[FunctionTool]
- handle_exception(func_name: str, error: Exception) str[来源]#
通过记录日志并返回错误详情来处理异常。
- Parameters:
func_name (str) – 函数名称,其中
发生错误。 (异常)
error (Exception) - 包含异常信息的异常对象
错误。 (关于该错误的详细信息)
- Returns:
- 包含错误详情的JSON字符串。
该JSON包含: - “status”: 始终设置为“error”。 - “message”: 异常信息的字符串表示。
- Return type:
字符串
- integrate(expression: str, variable: str | None = None) str[来源]#
对表达式关于某个变量进行积分。
- Parameters:
expression (str) – 要积分的数学表达式,以字符串形式提供。
variable (str, optional) – 关于哪个变量进行积分的变量。如果未指定,则使用默认变量。
- Returns:
- 包含表达式积分的JSON字符串
"result"字段中。如果发生错误,JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- polynomial_coefficients(expression: str, variable: str) str[来源]#
返回多项式的系数。
- Parameters:
expression (str) – 要从中提取系数的多项式表达式,以字符串形式提供。
variable (str) – 用于确定多项式系数的变量。
- Returns:
- 包含多项式系数列表的JSON字符串
位于"result"字段中。系数按从最高次项到常数项的顺序排列。 如果发生错误,JSON字符串将包含一个`"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- polynomial_degree(expression: str, variable: str) str[来源]#
返回多项式的次数。
- Parameters:
expression (str) – 需要确定次数的多项式表达式,以字符串形式提供。
variable (str) - 用于计算多项式次数的变量。
- Returns:
- 包含多项式次数的JSON字符串
"result"字段。如果发生错误,该JSON字符串将包含一个"error"字段,其中包含相应的错误信息。
- Return type:
字符串
- polynomial_representation(expression: str, variable: str) str[来源]#
将表达式表示为多项式。
- Parameters:
expression (str) – 要表示为多项式的数学表达式,以字符串形式提供。
variable (str) - 将用于创建多项式表示的变量。
- Returns:
- 包含多项式表示的JSON字符串
表达式位于“result”字段中。该多项式以符号格式返回。如果发生错误,JSON字符串将包含一个“error”字段,其中包含相应的错误信息。
- Return type:
字符串
- reduce_inequalities(inequalities: List[str]) str[来源]#
简化不等式系统。
- Parameters:
inequalities (List[str]) – 一个字符串列表,表示需要被简化的不等式。
- Returns:
- 包含简化不等式系统的JSON字符串
位于"result"字段中。解以符号格式表示(例如组合区间或表达式)。 如果发生错误,JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- series_expansion(expression: str, variable: str, point: float, order: int) str[来源]#
将一个表达式在给定点附近展开为泰勒级数,直到指定阶数。
- Parameters:
expression (str) - 要展开的数学表达式,以字符串形式提供。
variable (str) – 进行级数展开时所针对的变量。
point (float) – 泰勒级数展开所围绕的点。
order (int) – 级数展开的最高阶数
计算得出的。
- Returns:
- 包含泰勒级数展开的JSON字符串
表达式位于"result"字段中。如果发生错误, 该JSON字符串将包含一个"error"字段, 其中包含相应的错误信息。
- Return type:
字符串
- simplify_expression(expression: str) str[来源]#
简化数学表达式。
- Parameters:
expression (str) – 要简化的数学表达式,以字符串形式提供。
- Returns:
- 包含简化数学表达式的JSON字符串
位于"result"字段中。如果发生错误, "status"字段将被设置为"error",并附带相应的 "message"信息。
- Return type:
字符串
- solve_equation(sympy_equation: str, variable: str | None = None) str[来源]#
解特定变量的方程。
- Parameters:
sympy_equation (str) – 要解的方程,必须与SymPy兼容,以字符串形式提供。
variable (str, optional) – 要解决的变量。如果未指定,函数将使用默认变量。
- Returns:
- 包含方程解的JSON字符串
"result"字段中。每个解都表示为一个字符串。 如果发生错误,JSON字符串将包含一个带有相应错误信息的"error"字段。
- Return type:
字符串
- solve_linear_system(equations: List[str], variables: List[str]) str[来源]#
解线性方程组。
- Parameters:
equations (List[str]) - 表示待求解线性方程的字符串列表。
variables (List[str]) - 一个字符串列表,表示方程中涉及的变量。
- Returns:
- 包含方程组解的JSON字符串
在"result"字段中。每个解表示为一个对应变量的值元组。如果发生错误,JSON字符串将包含一个"error"字段及相应的错误信息。
- Return type:
字符串
- solve_nonlinear_system(sympy_equations: List[str], variables: List[str]) str[来源]#
求解非线性方程组系统。
- Parameters:
sympy_equations (List[str]) – 表示待求解非线性方程的字符串列表。要求解的方程必须与SymPy兼容,并以字符串形式提供。
variables (List[str]) – 一个字符串列表,表示方程式中涉及的变量。
- Returns:
- 包含方程组解的JSON字符串
解位于"result"字段中。每个解都表示为一个与变量对应的值元组。如果发生错误,JSON字符串将包含一个带有相应错误信息的"error"字段。
- Return type:
字符串
- class camel.toolkits.TerminalToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于跨多个操作系统进行终端操作的工具包。
该工具包提供了一组用于终端操作的函数,例如按名称或内容搜索文件、执行shell命令以及管理终端会话。
- Parameters:
timeout (Optional[float]) - 终端操作的超时时间。
shell_sessions (可选[字典[字符串, 任意类型]]) – 用于存储shell会话信息的字典。如果为None,将使用空字典。(默认值:
{})working_dir (str) – 操作的工作目录。 如果指定,所有执行和写入操作将被限制在此目录内。读取操作可以访问此目录之外的路径。(默认:
"./workspace")need_terminal (bool) – 是否需要创建终端界面。 (默认值:
True)use_shell_mode (bool) - 是否使用shell模式执行命令。 (默认:
True)clone_current_env (bool) – 是否克隆当前的Python环境。(默认:
False)safe_mode (bool) - 是否启用安全模式以限制操作。 (默认值:
True)
注意
大多数函数与基于Unix的系统(macOS, Linux)兼容。 如需Windows兼容性,则需要额外的实现细节。
- file_find_by_name(path: str, glob: str) str[来源]#
在指定目录中按文件名模式查找文件。
- Parameters:
path (str) - 要搜索的目录的绝对路径。
glob (str) - 使用glob语法通配符的文件名模式。
- Returns:
匹配该模式的文件列表。
- Return type:
字符串
- file_find_in_content(file: str, regex: str, sudo: bool = False) str[来源]#
在文件内容中搜索匹配的文本。
- Parameters:
file (str) – 要搜索的文件的绝对路径。
regex (str) – 要匹配的正则表达式模式。
sudo (bool, optional) - 是否使用sudo权限。默认为False。注意:使用sudo需要该进程具备相应的权限。
- Returns:
在文件中找到匹配的内容。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示工具包中函数的FunctionTool对象列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- shell_exec(id: str, command: str) str[来源]#
执行命令。这可用于执行各种命令,例如编写代码、执行代码和运行命令。
- Parameters:
id (str) – 目标shell会话的唯一标识符。
command (str) – 要执行的Shell命令。
- Returns:
命令执行的输出或错误信息。
- Return type:
字符串
- shell_kill_process(id: str) str[来源]#
终止指定shell会话中正在运行的进程。
- Parameters:
id (str) – 目标shell会话的唯一标识符。
- Returns:
状态消息,指示进程是否已终止。
- Return type:
字符串
- shell_view(id: str) str[来源]#
查看指定shell会话的内容。
- Parameters:
id (str) – 目标shell会话的唯一标识符。
- Returns:
当前shell会话的输出内容。
- Return type:
字符串
- class camel.toolkits.ThinkingToolkit(timeout: float | None = None)[来源]#
基类:
BaseToolkit一个用于在推理过程中记录想法的工具包。
- contemplate(contemplation: str) str[来源]#
使用该工具深入思考一个想法或概念。 这个工具用于更深入、更全面地探索想法, 考虑多个角度和影响。它比基础思考更全面, 但比反思更专注。
- Parameters:
沉思 (str) – 对思想或概念的深入探索。
- Returns:
记录下的沉思。
- Return type:
字符串
- critique(critique: str) str[来源]#
使用该工具批判性地评估当前的想法。 这个工具用于识别当前思考过程中潜在的缺陷、偏见或弱点。
- Parameters:
critique (str) – 对当前想法的批判性评价。
- Returns:
记录下来的批评意见。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
获取工具包中的所有工具。
- Returns:
工具列表。
- Return type:
列表[FunctionTool]
- hypothesize(hypothesis: str) str[来源]#
使用该工具来形成假设或做出预测。 这个工具用于在深入思考之前,基于计划做出有根据的猜测或预测。
- Parameters:
hypothesis (str) – 要测试的假设或预测。
- Returns:
记录下的假设。
- Return type:
字符串
- plan(plan: str) str[来源]#
使用该工具创建计划或策略。 这个工具用于在实际思考过程开始之前, 概述要采取的方法或步骤。
- Parameters:
plan (str) – 前瞻性的计划或策略。
- Returns:
记录的计划。
- Return type:
字符串
- reflect(reflection: str) str[来源]#
使用该工具对整个思考过程进行反思。 此工具用于对整个思维过程进行最终评估, 包括计划、假设、思考、沉思、批评 以及综合。
- Parameters:
reflection (str) – 对过程的全面反思。
- Returns:
记录下来的反思。
- Return type:
字符串
- class camel.toolkits.TwitterToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示Twitter操作工具包的类。
该类提供了创建推文、删除推文以及获取认证用户个人资料信息的方法。
参考文献
https://developer.x.com/en/portal/dashboard
注意事项
要使用此工具包,您需要设置以下环境变量: - TWITTER_CONSUMER_KEY: Twitter API的消费者密钥。 - TWITTER_CONSUMER_SECRET: Twitter API的消费者密钥密文。 - TWITTER_ACCESS_TOKEN: Twitter API的访问令牌。 - TWITTER_ACCESS_TOKEN_SECRET: Twitter API的访问令牌密文
API。
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.VideoAnalysisToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于通过视觉语言模型分析视频的类。
- Parameters:
download_directory (Optional[str], optional) – 视频将被下载到的目录。如果未提供,视频将存储在临时目录中,并在使用后清理。 (default:
None)model (可选[BaseModelBackend], 可选) – 用于可视化分析的模型。(默认:
None)use_audio_transcription (bool, optional) – 是否启用使用OpenAI音频模型进行音频转录功能。需要有效的OpenAI API密钥。禁用时,视频分析将仅基于视觉内容。(默认:
False)timeout (可选[float]) - API请求的超时时间,单位为秒。如果为None,则不应用超时。 (默认值:
None)
- ask_question_about_video(video_path: str, question: str, num_frames: int = 28) str[来源]#
询问关于视频的问题。
- Parameters:
video_path (str) – 视频文件的路径。 可以是本地文件或URL(如Youtube网站)。
question (str) – 关于视频要询问的问题。
num_frames (int) – 要从视频中提取的帧数。 需要根据视频长度进行调整。 (默认:
28)
- Returns:
问题的答案。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.VideoDownloaderToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个用于下载视频并可选择将其分割成块的类。
- Parameters:
download_directory (Optional[str], optional) – 视频将被下载到的目录。如果未提供,视频将存储在临时目录中,并在使用后清理。 (default:
None)cookies_path (Optional[str], optional) – 视频服务的cookies文件路径,需为Netscape格式。(默认值:
None)
- download_video(url: str) str[来源]#
下载视频并可选地将其分割成片段。
yt-dlp会自动检测视频是否已下载,因此无需检查视频是否存在。
- Returns:
下载的视频文件路径。
- Return type:
字符串
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- class camel.toolkits.WeatherToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与天气数据交互的工具包的类。
该类提供了使用OpenWeatherMap API获取指定城市天气数据的方法。
- get_openweathermap_api_key() str[来源]#
从环境变量中获取OpenWeatherMap API密钥。
- Returns:
OpenWeatherMap API密钥。
- Return type:
字符串
- Raises:
ValueError - 如果在环境中找不到API密钥
变量. –
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表
表示工具包中的函数。
- Return type:
列表[FunctionTool]
- get_weather_data(city: str, temp_units: Literal['kelvin', 'celsius', 'fahrenheit'] = 'kelvin', wind_units: Literal['meters_sec', 'miles_hour', 'knots', 'beaufort'] = 'meters_sec', visibility_units: Literal['meters', 'miles'] = 'meters', time_units: Literal['unix', 'iso', 'date'] = 'unix') str[来源]#
获取并返回指定城市的综合天气报告,以字符串形式呈现。该报告包含当前天气状况、温度、风力详情、能见度以及日出/日落时间,所有信息均格式化为易读的字符串。
该函数与OpenWeatherMap API交互以获取数据。
- Parameters:
city (str) – 需要获取天气信息的城市名称。格式为"城市, 国家代码"(例如"Paris, FR"表示法国巴黎)。如果未提供国家代码,API将在所有国家中搜索该城市,当存在多个同名城市时可能导致错误结果。
temp_units (Literal['kelvin', 'celsius', 'fahrenheit']) – 温度单位。(默认:
kelvin)wind_units – (Literal['meters_sec', 'miles_hour', 'knots', 'beaufort']): 风速的单位。(默认:
meters_sec)visibility_units (Literal['meters', 'miles']) – 能见度距离的单位。(默认:
meters)time_units (Literal['unix', 'iso', 'date']) – 日出和日落时间的格式。(默认:
unix)
- Returns:
- 一个包含获取到的天气数据的字符串,格式化为
可读的形式。如果发生错误,将返回指示错误的消息。
- Return type:
字符串
- Example of return string:
“法国巴黎天气:15°C,体感温度13°C。最高气温:17°C, 最低气温:12°C。 风速:5米/秒,风向270度。能见度:10公里。 日出时间:05:46:05(UTC),日落时间:18:42:20(UTC)。"
注意
- Please ensure that the API key is valid and has permissions
访问天气数据。
- class camel.toolkits.WhatsAppToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示WhatsApp操作工具包的类。
该工具包提供了与WhatsApp Business API交互的方法,允许用户发送消息、检索消息模板以及获取商业资料信息。
- retries#
API请求失败时的重试次数。
- Type:
int
- delay#
重试之间的延迟时间(以秒为单位)。
- Type:
int
- base_url#
WhatsApp Business API的基础URL。
- Type:
字符串
- version#
API版本。
- Type:
字符串
- get_business_profile() Dict[str, Any] | str[来源]#
获取WhatsApp商业账户的个人资料信息。
- Returns:
- 包含业务信息的字典
如果成功则包含个人资料信息,如果失败则返回错误信息字符串。
- Return type:
Union[Dict[str, Any], str]
- get_message_templates() List[Dict[str, Any]] | str[来源]#
获取WhatsApp商业账户的所有消息模板。
- Returns:
- 包含字典的列表
如果成功则包含模板信息,如果失败则包含错误信息字符串。
- Return type:
Union[List[Dict[str, Any]], str]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- FunctionTool对象列表,用于
工具包方法。
- Return type:
列表[FunctionTool]
- class camel.toolkits.ZapierToolkit(*args, **kwargs)[来源]#
基类:
BaseToolkit一个表示用于与Zapier的NLA API交互的工具包的类。
该类提供了通过自然语言命令执行Zapier操作的方法,允许与各种网络服务集成并通过Zapier平台实现工作流自动化。
- api_key#
用于与Zapier API进行身份验证的API密钥。
- Type:
字符串
- base_url#
Zapier API端点的基本URL。
- Type:
字符串
- timeout#
API请求的超时值(以秒为单位)。如果为None,则不应用超时。 (默认值:
None)- Type:
可选[浮点数]
- execute_action(action_id: str, instructions: str) Dict[str, Any][来源]#
使用自然语言指令执行特定的Zapier操作。
- Parameters:
action_id (str) - 要执行的Zapier操作的ID。
instructions (str) – 执行该操作的自然语言指令。例如:"发送一封电子邮件至john@example.com,主题为'Hello',正文为'How are you?'"
- Returns:
- 动作执行的结果,包括
状态和任何输出数据。
- Return type:
字典[字符串, 任意类型]
- get_execution_result(execution_id: str) Dict[str, Any][来源]#
获取Zapier操作的执行结果。
- Parameters:
execution_id (str) – 从execute_action返回的执行ID。
- Returns:
- 包含状态、日志的执行结果,
以及来自操作执行的任何输出数据。
- Return type:
字典[字符串, 任意类型]
- get_tools() List[FunctionTool][来源]#
返回一个表示工具包中函数的FunctionTool对象列表。
- Returns:
- 表示FunctionTool对象的列表
工具包中的函数。
- Return type:
列表[FunctionTool]
- list_actions() Dict[str, Any][来源]#
列出所有可用的Zapier操作。
- Returns:
- 包含可用操作列表的字典
操作。
- Return type:
字典[字符串, 任意类型]
- preview_action(action_id: str, instructions: str) Dict[str, Any][来源]#
使用自然语言指令预览特定的Zapier操作。
- Parameters:
action_id (str) - 要预览的Zapier操作的ID。
instructions (str) – 用于预览操作的自然语言指令。例如:"发送一封电子邮件至john@example.com,主题为'你好',正文内容为'最近怎么样?'"
- Returns:
- 预览结果显示如果执行该操作将会使用哪些参数
- Return type:
字典[字符串, 任意类型]
- camel.toolkits.generate_docstring(code: str, model: BaseModelBackend | None = None) str[来源]#
使用LLM为给定函数代码生成文档字符串。
该函数利用语言模型为提供的Python函数生成符合PEP 8/PEP 257规范的文档字符串。 如果未提供模型,则默认使用gpt-4o-mini。
- Parameters:
code (str) – 函数的源代码。
model (可选[BaseModelBackend]) – 一个可选的语言模型后端实例。如果未提供,则默认使用gpt-4o-mini。
- Returns:
生成的文档字符串。
- Return type:
字符串
- camel.toolkits.get_openai_function_schema(func: Callable) Dict[str, Any][来源]#
根据OpenAI函数的签名生成一个模式字典。
此函数已弃用,未来版本将由
get_openai_tool_schema()替代。它会解析 函数的参数和文档字符串来构建类似JSON模式的 字典。- Parameters:
func (可调用对象) – 用于生成模式( schema )的OpenAI函数。
- Returns:
- 表示该函数JSON模式的字典
包括其名称、描述和参数规范。
- Return type:
字典[字符串, 任意类型]
- camel.toolkits.get_openai_tool_schema(func: Callable) Dict[str, Any][来源]#
根据给定的Python函数生成OpenAI JSON模式。
该函数根据提供的Python函数创建一个与OpenAI API规范兼容的模式。它会处理函数的参数、类型和文档字符串,并相应地构建模式。
注意
- Parameters:
func (Callable) – 将被转换为OpenAI JSON模式的Python函数。
- Returns:
- 表示所提供函数的OpenAI JSON模式的字典
。
- Return type:
字典[字符串, 任意类型]
另请参阅
- `OpenAI API Reference
<https://platform.openai.com/docs/api-reference/assistants/object>`_