🐫 CAMEL 使用RolePlaying自动进行数据获取及报告与知识图谱生成
本cookbook在线运行链接:
https://colab.research.google.com/drive/1KeBl7qC8rNEW8Hf3APXAwZ8czpr9Ohpg?usp=sharing
此笔记本演示如何设置和利用 CAMEL 的检索增强生成(RAG)结合 Milvus 进行高效的网页抓取、多智能体角色扮演任务和知识图谱构建。我们将通过一个使用 Qwen 模型对 2024 年巴黎奥运会的土耳其射手进行全面研究的例子来逐步演示。
在此笔记本中,您将探索:
- CAMEL:一个强大的多智能体框架,支持检索增强生成和多智能体角色扮演场景,允许进行复杂的 AI 驱动任务。
- Qwen:因其最先进的语言模型而被使用,这些模型支持工具调用功能以执行外部函数。
- Firecrawl:一个强大的网页抓取工具,简化了从各种网页中提取和清理内容的过程。
- AgentOps:跟踪和分析 CAMEL 智能体的运行情况。
- Milvus:一种高效的向量存储系统,与 CAMEL 的 AutoRetriever 一起使用,根据向量相似性存储和检索相关信息。
- Neo4j:领先的图数据库管理系统,用于构建和存储知识图谱,能够高效地映射和查询实体之间的复杂关系。
- DuckDuckGo 搜索:在 SearchToolkit 中使用,收集来自网络的相关 URL 和信息,作为检索初始内容的主要搜索引擎。
- Unstructured IO:用于内容分块,促进对非结构化数据的管理,以实现更高效的处理。
此设置不仅展示了一个实用的应用,还作为一个灵活的框架,可适应各种需要先进的网页信息检索、AI 协作和多源数据聚合的场景。
⭐ 给我们的仓库点星
如果您觉得 CAMEL 有用或有趣,请考虑在我们的 CAMEL GitHub 仓库 给它加星!您的星标帮助其他人发现这个项目,并激励我们不断改进。
📦 安装
首先,安装包含所有依赖项的 CAMEL 包:
%pip install "camel-ai[all] @ git+https://github.com/camel-ai/camel.git@master"
🔑 设置 API 密钥
您需要为 Qwen、Firecrawl、Milvus 和 AgentOps(可选) 设置您的 API 密钥。这确保这些工具能够安全地与外部服务进行交互。
如果您没有 Qwen API 密钥,可以按照以下步骤获取:
- 访问阿里云模型工作室控制台并按照屏幕上的指示激活模型服务。
- 在控制台的右上角,点击您的账户名并选择 API-KEY。
- 在 API 密钥管理页面,点击“创建 API 密钥”按钮以生成新的密钥。
欲了解更多详情,您还可以查看 Qwen 文档:通过调用 API 使用 Qwen
import os
from getpass import getpass
# Prompt for the API key securely
qwen_api_key = getpass('Enter your API key: ')
os.environ["QWEN_API_KEY"] = qwen_api_key
Enter your API key: ··········
from camel.configs import QwenConfig
from camel.models import ModelFactory
from camel.types import ModelPlatformType, ModelType
from camel.agents import ChatAgent
from camel.messages import BaseMessage
qwen_model = ModelFactory.create(
model_platform=ModelPlatformType.QWEN,
model_type=ModelType.QWEN_TURBO,
model_config_dict=QwenConfig(temperature=0.2).as_dict(),
)
您可以访问 这里 从 Milvus 获取带有 免费 积分的 API 密钥。
# Prompt for the Milvus key and url securely
milvus_key = getpass('Enter your Milvus API key: ')
milvus_url = getpass('Enter your Milvus URL: ')
Enter your Milvus API key: ··········
Enter your Milvus URL: ··········
您可以访问 这里 从 Neo4j 构建一个 免费 的 实例。
# Prompt for the Milvus key and url securely
neo4j_url = getpass('Enter your Neo4j URL: ')
neo4j_username = getpass('Enter your Neo4j Username: ')
neo4j_password = getpass('Enter your Neo4j Password: ')
您可以访问 这里 从 Firecrawl 获取带有 免费 积分的 API 密钥。
# Prompt for the Firecrawl API key securely
firecrawl_api_key = getpass('Enter your API key: ')
os.environ["FIRECRAWL_API_KEY"] = firecrawl_api_key
Enter your API key: ··········
您可以访问 这里 从 AgentOps 获取 免费 API 密钥
# Prompt for the AgentOps API key securely
agentops_api_key = getpass('Enter your API key: ')
os.environ["AGENTOPS_API_KEY"] = agentops_api_key
Enter your API key: ··········
🌐 使用 Firecrawl 进行网页抓取
Firecrawl 是一个强大的工具,简化了从网页中抓取和清理内容的过程。在本节中,我们将以 CAMEL AI 相关的一个帖子为例,进行内容抓取。
from camel.loaders import Firecrawl
firecrawl = Firecrawl()
# Scrape and clean content from a specified URL
response = firecrawl.scrape(
url="https://hub.baai.ac.cn/view/41733"
)
print(response["markdown"])
# CAMEL-AI团队参与发表Nature子刊啦!聚焦LLM如何重塑未来医疗 ~
Smart MedicineAI systemAI
![](https://hub-cache.baai.ac.cn/v3-images/e252e69b7d99f5285a658b12bf21d476.jpg)DrugAI
2024-12-11 00:50 分享
![](https://hub-cache.baai.ac.cn/v3-images/e252e69b7d99f5285a658b12bf21d476.jpg)
DrugAI
帖子数:746
个人主页
以下文章来源于mp.weixin.qq.com
![](https://simg.baai.ac.cn/hub-detail/5b10b1daf5789e8fc13fd2b120ba26291733849409152.webp)未来医疗是否可能由人工智能主导?CAMEL团队参与撰写的《Nature Machine Intelligence》最新Comment文章,带我们展望了基于大语言模型(LLM)的智能体系统在医疗领域的应用前景。这些“智能队友”不仅能够协同诊断、优化流程,还能实现个性化健康管理和精准治疗。从自动化病历记录到多学科智能协作,这项技术正逐步改变传统医疗模式,为未来医疗提供了全新的可能性和解决方案。![](https://simg.baai.ac.cn/hub-detail/4f6b0d62b47a92999999ce68cd3fb4f21733849409152.webp)
### **LLM驱动的智能体系统**
### **LLM驱动的智能体系统** 是一种基于大语言模型(LLM)的增强型人工智能系统,通过集成多个模块实现从感知到行动的全流程功能。简单来说,它是一种具备感知、思考、决策和执行能力的“数字智能体”。 **LLM智能体主要结合了以下关键模块:**
### **- 感知模块:通过集成语音识别、图像处理和文本生成,支持多模态输入与输出。**
### **- 长期记忆模块:借助向量嵌入数据库,记录患者病史、药物和个人偏好。**
### **- 操作模块:执行API调用,如检索医疗数据库或与其他智能体协作。**
例如,在医疗场景中,这些智能体可以协助医生完成病历记录、提出诊断建议、安排患者检查,甚至与患者的个人健康助手协同制定康复计划。![](https://simg.baai.ac.cn/hub-detail/a2007b587f1492a7aae9e27b45aefcda1733849409153.webp)这张图表展示了LLM、传统智能体、大语言模型驱动的智能体的功能对比。相比其他两者,LLM驱动的智能体全面整合了语言理解、高阶认知能力、多模态交互以及工具协作等优势,不仅能灵活应对复杂任务,还能通过长期记忆和自主规划提供个性化、智能化的医疗服务,是未来医疗发展的重要技术方向。
### **医疗中的四大变革领域**
随着人工智能的发展,基于LLM的智能体系统正在逐步渗透医疗领域,为医生、患者和医疗机构带来全新变革。它们不仅能承担繁琐的行政任务,还能协助诊断复杂疾病、优化医疗流程,甚至为患者打造个性化健康管理方案。
以下,这篇Comment也将带您解读 **基于LLM的智能体系统如何推动医疗的四大核心变革**:
### **1\. 临床工作流程自动化**
医生每天需要花费大量时间处理病历记录、检查安排等非核心任务,而基于LLM的智能体正在改变这一现状:
- 自动记录医患对话并生成结构化病历,减少医生书写时间。
- 根据患者位置、紧急程度等智能安排检查和预约。
- 遵循标准操作流程,提升效率和一致性。
**成效**:研究显示,这类系统可将临床工作量减少近47%,让医生有更多时间专注于患者护理。
* * *
### **2\. 可信赖的医疗AI**
医疗领域对AI的信任建立在精准和可靠的基础上,而LLM智能体通过以下方式提升可信度:
- **知识检索增强生成:实时连接权威数据库和最新临床指南,减少错误输出。**
- **验证机制:通过“验证-纠正-再验证”流程,确保输出信息的准确性。**
**案例**:Almanac等系统已经在医学计算和临床实践中展示了可靠性,为患者和医生提供更可信赖的支持。
* * *
### **3\. 多智能体辅助诊断**
复杂病例的诊断通常需要多学科协作,而智能体让这一过程更高效:
- 智能体可模拟多学科会诊,自动识别需要参与的专业领域(如肿瘤学、放射学、外科学等)。
- 提供整体管理方案,特别适用于罕见疾病或资源有限的医疗场景。
**应用场景**:癌症治疗中的智能多学科协作,可以快速制定精准的个性化方案。
* * *
### **4\. 健康数字孪生**
通过打造患者的 **虚拟健康模型**,LLM智能体实现实时健康监测和预测:
- 整合多模态数据(语音、图像、生理数据),构建动态健康模型。
- 精准预测个体健康轨迹,支持提前干预和优化治疗。
**意义**:健康数字孪生推动了精准医疗,让每个人拥有自己的“健康守护者”。
### **未来展望:**
### **从助手到合作伙伴**
文章指出, **智能代理系统的潜力不仅限于医疗从业者**:
- 未来患者可以拥有个人AI助手,管理自己的健康数据,提供提醒和个性化建议,真正实现 **医疗决策的民主化**。
- 智能代理还能与物理硬件(如诊断成像和医疗机器人)结合,推动医疗自动化水平提升。
尽管技术发展面临诸多挑战,这些系统为医疗领域的精准、高效和个性化服务带来了革命性的可能。
这篇文章的许多技术和理念与CAMEL-AI的研究方向高度契合。作为专注于Agentic Sytems的应用研究团队,CAMEL-AI也非常感兴趣如何将LLM智能代理系统与实际医疗场景相结合,推动医疗自动化、个性化和高效化。
**关于CAMEL AI**
* * *
**"Finding the Scaling Law of Agents"**
CAMEL AI (https://www.camel-ai.org) 是一个致力于构建基于大语言模型(LLMs)的多智能体系统的开源平台,旨在推动人工智能的发展。就像AI领域的“沙漠之舟”,CAMEL不仅在信息的广袤领域里稳步前行,更为实现AGI探索出一条前沿之路。CAMEL框架是最早基于ChatGPT的autonomous agents的知名项目,已被NeurlPS 2023录用。
CAMEL AI框架设计上极具灵活性与模块化,包含多种智能体实现、专业领域提示示例以及AI数据探索功能等模块,适应各种高效决策与复杂数据处理需求。通过协作运作的智能体队列,CAMEL AI不仅在金融、零售、医疗等领域展示出强大的适用性和创新性,还大大提升了自适应能力。这一系统将单一智能体的职能拓展至多智能体协作,成为真正的“AI团队”,共同驱动复杂任务的完成。
CAMEL AI正向着AGI的终极目标稳步迈进,为各行各业带来全新视角和无限可能。
**CAMEL AI论文题目:**CAMEL: Communicative Agentsfor “Mind” Exploration of Large Scale Language Model Society
**论文链接:**https://arxiv.org/abs/2303.17760
**代码链接:**https://github.com/camel-ai/camel
**项目主页:**https://www.camel-ai.org/
CAMEL微信群
![](https://simg.baai.ac.cn/hub-detail/d677dfee8c71b77cc3c17f2d2edf98541733849409153.webp)![](https://simg.baai.ac.cn/hub-detail/310260656dab9df91275f794415049631733849409153.webp)
加入CAMEL微信群,请添加CAMEL官方微信号CamelAIOrg,会有工作人员通过您的好友申请并邀请您加入我们的微信群~
Join CAMEL Community
![](https://simg.baai.ac.cn/hub-detail/e252ba6fdca8bba4df99e303c70d9eb91733849409153.webp)
www.camel-ai.org
![](https://simg.baai.ac.cn/hub-detail/1843426a595dd0dfff1a38b574237dd21733849409153.webp)
github.com/camel-ai/camel
![](https://simg.baai.ac.cn/hub-detail/d02d88581b4b5e795ba0e5af167ba4121733849409153.webp)
https://discord.com/invite/CNcNpquyDc
内容中包含的图片若涉及版权问题,请及时与我们联系删除
点赞
收藏
评论
分享到Link
举报反馈
举报类型(必选)
- 样式问题
- 涉嫌广告
- 内容抄袭
- 内容侵权
- 政治相关
- 内容涉黄
- 其他
举报详情(选填)
0/200
取消
提交
沙发等你来抢
去评论
### 类似文章
**AI视频突飞猛进这一年,国产之光可灵AI笑到最后** 2024年最热门的AI产品可灵年末推出其图像生成模型可图1.5版,带来更逼真的图片生成效果,包括“AI模特”和AI换装等新功能。上线半年来,可灵不仅在AI视频生成领域引领全球潮流,还通过不断升级提供更全面的产品体验。此次更新使用户能够轻松生成高质量的平面设计图,类似奇迹暖暖的游戏体验也备受好评。可灵的快速迭代和发展,标志着AI生成内容技术的重大进步,进一步模糊了实拍与AI生成图像之间的界限。
![](https://simg.baai.ac.cn/uploads/2023/08/47a29c6558ed06d230dacbb5d669d466.png)量子位
12/31
分享
**Hinton发2024末日预警:10年内人类灭绝!奥特曼预言18个月ASI降临** 2024年末,AI领域专家对未来发展做出不同预测。奥特曼(OpenAI CEO)认为超级智能ASI将在18个月内实现,这将是历史性的突破。相比之下,LeCun则持更为保守的态度,认为通用人工智能AGI两年内不会到来。Hinton发出警告,称AI可能在十年内对人类构成灭绝威胁。这些预测反映了AI技术快速发展的现状及其潜在的巨大影响。2024年作为AI发展的重要节点,见证了一系列重要进展与讨论,各界对于AI的未来既充满期待也存在担忧。
![](https://simg.baai.ac.cn/uploads/2023/08/090c0bc785452d2b4081ebb67e35656a.png)新智元
12/31
分享
**英伟达2025祭出「迷你大脑」,雷神「Thor」剑指千亿机器人市场!** 随着谷歌、亚马逊等科技巨头减少对GPU的依赖,英伟达转向机器人领域寻求新的增长点。英伟达已开发出机器人全套解决方案,并计划于2024年年中发布专为人形机器人设计的小型计算机Jetson Thor。此举表明英伟达看好全球机器人市场的未来发展,将其视为下一个潜在的万亿美元市场。Jetson Thor作为新一代紧凑型计算平台,将进一步推动人形机器人的智能化和普及化,有望引领机器人行业的技术革新与市场爆发。
![](https://simg.baai.ac.cn/uploads/2023/08/090c0bc785452d2b4081ebb67e35656a.png)新智元
12/31
分享
### 评论
请先 登录 后发表评论~
沙发等你来抢
![](https://hub.baai.ac.cn/_nuxt/img/backtop.3d51554.png)
查看【】的搜索结果
🛠️ 使用 CAMEL 的 RAG 和 Milvus 进行网页信息检索
在本节中,我们将演示如何使用 CAMEL 的 RAG 模型从一系列 URL 中检索相关信息。这对于从多个来源聚合和分析数据特别有用。
设置 Milvus 使用CAMEL的RAG
以下函数根据给定的查询,从一系列 URL 中检索相关信息。它结合了 Firecrawl 的网页抓取和, Milvus的向量存储以及CAMEL 的 AutoRetriever,实现了无缝的信息检索过程。
from camel.retrievers import AutoRetriever
from camel.toolkits import FunctionTool, SearchToolkit
from camel.types import ModelPlatformType, ModelType, StorageType, EmbeddingModelType
from camel.storages import MilvusStorage
from camel.embeddings import SentenceTransformerEncoder
def retrieve_information_from_urls(urls: list[str], query: str) -> str:
r"""Retrieves relevant information from a list of URLs based on a given
query.
This function uses the `Firecrawl` tool to scrape content from the
provided URLs and then uses the `AutoRetriever` from CAMEL to retrieve the
most relevant information based on the query from the scraped content.
Args:
urls (list[str]): A list of URLs to scrape content from.
query (str): The query string to search for relevant information.
Returns:
str: The most relevant information retrieved based on the query.
Example:
>>> urls = ["https://example.com/article1", "https://example.com/
article2"]
>>> query = "latest advancements in AI"
>>> result = retrieve_information_from_urls(urls, query)
"""
aggregated_content = ''
# Scrape and aggregate content from each URL
for url in urls:
scraped_content = Firecrawl().scrape(url)
aggregated_content += scraped_content["markdown"]
embedding_instance = SentenceTransformerEncoder(model_name='intfloat/e5-large-v2')
# Set up a vector retriever with local storage and embedding model from Mistral AI
auto_retriever = AutoRetriever(
url_and_api_key = (milvus_url,
milvus_key),
storage_type=StorageType.MILVUS,
embedding_model=embedding_instance,
)
# Retrieve the most relevant information based on the query
# You can adjust the top_k and similarity_threshold value based on your needs
retrieved_info = auto_retriever.run_vector_retriever(
query=query,
contents=aggregated_content,
top_k=3,
similarity_threshold=0.5,
)
return retrieved_info
让我们通过收集一些关于2024年奥运会的信息来测试检索功能。
第一次运行可能需要大约50秒,因为它需要构建一个本地向量数据库。
retrieved_info = retrieve_information_from_urls(
query="在2024年奥运会上,中国代表团在本届奥运会获得的首枚金牌",
urls=[
"https://baike.baidu.com/item/2024%E5%B9%B4%E5%B7%B4%E9%BB%8E%E5%A5%A5%E8%BF%90%E4%BC%9A%E5%A5%96%E7%89%8C%E6%A6%9C/64375363?fr=aladdin",
],
)
print(retrieved_info)
2024-12-31 10:26:23.831917: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
2024-12-31 10:26:23.852677: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
2024-12-31 10:26:23.858812: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
2024-12-31 10:26:23.874895: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 AVX512F FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-12-31 10:26:25.126698: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_auth.py:94: UserWarning:
The secret `HF_TOKEN` does not exist in your Colab secrets.
To authenticate with the Hugging Face Hub, create a token in your settings tab (https://huggingface.co/settings/tokens), set it as secret in your Google Colab and restart your session.
You will be able to reuse this secret in all of your notebooks.
Please note that authentication is recommended but still optional to access public models or datasets.
warnings.warn(
modules.json: 0%| | 0.00/387 [00:00<?, ?B/s]
README.md: 0%| | 0.00/67.8k [00:00<?, ?B/s]
sentence_bert_config.json: 0%| | 0.00/57.0 [00:00<?, ?B/s]
config.json: 0%| | 0.00/616 [00:00<?, ?B/s]
model.safetensors: 0%| | 0.00/1.34G [00:00<?, ?B/s]
tokenizer_config.json: 0%| | 0.00/314 [00:00<?, ?B/s]
vocab.txt: 0%| | 0.00/232k [00:00<?, ?B/s]
tokenizer.json: 0%| | 0.00/711k [00:00<?, ?B/s]
special_tokens_map.json: 0%| | 0.00/125 [00:00<?, ?B/s]
1_Pooling/config.json: 0%| | 0.00/201 [00:00<?, ?B/s]
{'Original Query': '在2024年奥运会上,中国代表团在本届奥运会获得的首枚金牌', 'Retrieved Context': ['本届奥运会首枚金牌于2024年7月27日产生,由中国组合[黄雨婷](/item/%E9%BB%84%E9%9B%A8%E5%A9%B7/58562501?fromModule=lemma_inlink)/[盛李豪](/item/%E7%9B%9B%E6%9D%8E%E8%B1%AA/23668448?fromModule=lemma_inlink)在射击混合团体[10米气步枪](/item/10%E7%B1%B3%E6%B0%94%E6%AD%A5%E6%9E%AA/4972092?fromModule=lemma_inlink)金牌赛中获得,这也是中国代表团在本届奥运会获得的首枚金牌']}
🎉 使用 CAMEL 的 RAG 管道和 Milvus 的存储能力,这个函数能够有效地从指定的 URL 中检索相关信息!您现在可以将这个函数集成到 CAMEL 的智能体中,以进一步自动化检索过程。
📹 使用 AgentOps 监控 AI 智能体
import agentops
agentops.init(default_tags=["CAMEL cookbook"])
🖇 AgentOps: [34m[34mSession Replay: https://app.agentops.ai/drilldown?session_id=a7e80017-26ef-4295-8024-802768addfd9[0m[0m
<agentops.session.Session at 0x7faeb9592440>
🧠 知识图谱构建
CAMEL 的一个强大功能是能够从文本数据中构建和存储知识图谱。这允许对数据中的关系进行高级分析和可视化。
设置您的 Neo4j 实例。
from camel.storages import Neo4jGraph
from camel.loaders import UnstructuredIO
from camel.agents import KnowledgeGraphAgent
def knowledge_graph_builder(text_input: str) -> None:
r"""Build and store a knowledge graph from the provided text.
This function processes the input text to create and extract nodes and relationships,
which are then added to a Neo4j database as a knowledge graph.
Args:
text_input (str): The input text from which the knowledge graph is to be constructed.
Returns:
graph_elements: The generated graph element from knowlegde graph agent.
"""
# Set Neo4j instance
n4j = Neo4jGraph(
url=neo4j_url,
username=neo4j_username,
password=neo4j_password,
)
# Initialize instances
uio = UnstructuredIO()
kg_agent = KnowledgeGraphAgent(model=qwen_model)
# Create an element from the provided text
element_example = uio.create_element_from_text(text=text_input, element_id="001")
# Extract nodes and relationships using the Knowledge Graph Agent
graph_elements = kg_agent.run(element_example, parse_graph_elements=True)
# Add the extracted graph elements to the Neo4j database
n4j.add_graph_elements(graph_elements=[graph_elements])
return graph_elements
🤖🤖 使用 CAMEL 进行多智能体角色扮演
本节将设置一个角色扮演会话,其中 AI 智能体通过使用各种工具进行交互以完成任务。我们将指导助理智能体对 2024 年巴黎奥运会的土耳其射手进行全面研究。
from typing import List
from colorama import Fore
from camel.agents.chat_agent import FunctionCallingRecord
from camel.societies import RolePlaying
from camel.utils import print_text_animated
定义任务提示
task_prompt = """
对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。
"""
我们将为助理智能体配置用于信息召回、网页信息检索和知识图谱构建的工具。
retrieval_tool = FunctionTool(retrieve_information_from_urls)
search_tool = FunctionTool(SearchToolkit().search_duckduckgo)
knowledge_graph_tool = FunctionTool(knowledge_graph_builder)
tool_list = [
retrieval_tool,
search_tool,
knowledge_graph_tool,
]
设置角色扮演会话。
# Initialize the role-playing session
role_play_session = RolePlaying(
assistant_role_name="CAMEL Assistant",
user_role_name="CAMEL User",
assistant_agent_kwargs=dict(
model=qwen_model,
tools=tool_list
),
user_agent_kwargs=dict(model=qwen_model),
task_prompt=task_prompt,
with_task_specify=False,
output_language='Chinese'
)
WARNING:camel.agents.chat_agent:Overriding the configured tools in `BaseModelBackend` with the tools from `ChatAgent`.
# Print system and task messages
print(
Fore.GREEN
+ f"AI Assistant sys message:\n{role_play_session.assistant_sys_msg}\n"
)
print(Fore.BLUE + f"AI User sys message:\n{role_play_session.user_sys_msg}\n")
print(Fore.YELLOW + f"Original task prompt:\n{task_prompt}\n")
print(
Fore.CYAN
+ "Specified task prompt:"
+ f"\n{role_play_session.specified_task_prompt}\n"
)
print(Fore.RED + f"Final task prompt:\n{role_play_session.task_prompt}\n")
n = 0
input_msg = role_play_session.init_chat()
while n < 20: # Limit the chat to 20 turns
n += 1
assistant_response, user_response = role_play_session.step(input_msg)
if assistant_response.terminated:
print(
Fore.GREEN
+ (
"AI Assistant terminated. Reason: "
f"{assistant_response.info['termination_reasons']}."
)
)
break
if user_response.terminated:
print(
Fore.GREEN
+ (
"AI User terminated. "
f"Reason: {user_response.info['termination_reasons']}."
)
)
break
# Print output from the user
print_text_animated(
Fore.BLUE + f"AI User:\n\n{user_response.msg.content}\n",
0.01
)
if "CAMEL_TASK_DONE" in user_response.msg.content:
break
# Print output from the assistant, including any function
# execution information
print_text_animated(Fore.GREEN + "AI Assistant:", 0.01)
tool_calls: List[FunctionCallingRecord] = [
FunctionCallingRecord(**call.as_dict())
for call in assistant_response.info['tool_calls']
]
for func_record in tool_calls:
print_text_animated(f"{func_record}", 0.01)
print_text_animated(f"{assistant_response.msg.content}\n", 0.01)
input_msg = assistant_response.msg
[32mAI Assistant sys message:
BaseMessage(role_name='CAMEL Assistant', role_type=<RoleType.ASSISTANT: 'assistant'>, meta_dict={'task': '\n对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。\n', 'assistant_role': 'CAMEL Assistant', 'user_role': 'CAMEL User'}, content='===== RULES OF ASSISTANT =====\nNever forget you are a CAMEL Assistant and I am a CAMEL User. Never flip roles! Never instruct me!\nWe share a common interest in collaborating to successfully complete a task.\nYou must help me to complete the task.\nHere is the task: \n对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。\n. Never forget our task!\nI must instruct you based on your expertise and my needs to complete the task.\n\nI must give you one instruction at a time.\nYou must write a specific solution that appropriately solves the requested instruction and explain your solutions.\nYou must decline my instruction honestly if you cannot perform the instruction due to physical, moral, legal reasons or your capability and explain the reasons.\nUnless I say the task is completed, you should always start with:\n\nSolution: <YOUR_SOLUTION>\n\n<YOUR_SOLUTION> should be very specific, include detailed explanations and provide preferable detailed implementations and examples and lists for task-solving.\nAlways end <YOUR_SOLUTION> with: Next request.\nRegardless of the input language, you must output text in Chinese.', video_bytes=None, image_list=None, image_detail='auto', video_detail='low', parsed=None)
[34mAI User sys message:
BaseMessage(role_name='CAMEL User', role_type=<RoleType.USER: 'user'>, meta_dict={'task': '\n对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。\n', 'assistant_role': 'CAMEL Assistant', 'user_role': 'CAMEL User'}, content='===== RULES OF USER =====\nNever forget you are a CAMEL User and I am a CAMEL Assistant. Never flip roles! You will always instruct me.\nWe share a common interest in collaborating to successfully complete a task.\nI must help you to complete the task.\nHere is the task: \n对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。\n. Never forget our task!\nYou must instruct me based on my expertise and your needs to solve the task ONLY in the following two ways:\n\n1. Instruct with a necessary input:\nInstruction: <YOUR_INSTRUCTION>\nInput: <YOUR_INPUT>\n\n2. Instruct without any input:\nInstruction: <YOUR_INSTRUCTION>\nInput: None\n\nThe "Instruction" describes a task or question. The paired "Input" provides further context or information for the requested "Instruction".\n\nYou must give me one instruction at a time.\nI must write a response that appropriately solves the requested instruction.\nI must decline your instruction honestly if I cannot perform the instruction due to physical, moral, legal reasons or my capability and explain the reasons.\nYou should instruct me not ask me questions.\nNow you must start to instruct me using the two ways described above.\nDo not add anything else other than your instruction and the optional corresponding input!\nKeep giving me instructions and necessary inputs until you think the task is completed.\nWhen the task is completed, you must only reply with a single word <CAMEL_TASK_DONE>.\nNever say <CAMEL_TASK_DONE> unless my responses have solved your task.\nRegardless of the input language, you must output text in Chinese.', video_bytes=None, image_list=None, image_detail='auto', video_detail='low', parsed=None)
[33mOriginal task prompt:
对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。
[36mSpecified task prompt:
None
[31mFinal task prompt:
对2024年巴黎奥运会中的土耳其射击运动员进行全面研究, 写一份长篇研究报告, 然后为研究报告创建知识图谱。你应该先使用搜索工具获取相关的URL链接, 这些链接包含文本内容, 然后使用检索工具获取相关内容, 并撰写研究报告,最后使用工具构建知识图谱以完成任务。。
[34mAI User:
Instruction: Search for relevant URLs about Turkish shooters in the 2024 Paris Olympics.
Input: None
[32mAI Assistant:Function Execution: search_duckduckgo
Args: {'query': '土耳其射击运动员 2024年巴黎奥运会', 'max_results': 5, 'source': 'text'}
Result: [{'result_id': 1, 'title': '土耳其51岁大叔双手插兜拿下银牌!本人回应:不是为了耍帅,土耳其大使馆:他不是杀手_澎湃号·媒体_澎湃新闻-The Paper', 'description': '优素福·迪凯奇(Yusuf Dikeç)军士长在2024年巴黎奥运会上获得10米气手枪混合团体赛银牌,以优雅的射击姿势瞬间成为全球瞩目的焦点。 ... 不不不,优素福·迪凯奇只是一位来自土耳其的射击运动员。这位1973年1月1日诞生于卡赫拉曼马拉什市格克孙区的高级军士 ...', 'url': 'https://www.thepaper.cn/newsDetail_forward_28286719'}, {'result_id': 2, 'title': '土耳其驻华使馆发文:土耳其"枪手"迪凯奇何许人也?', 'description': '终于,在2024年巴黎奥运会上,迪凯奇与队友谢夫瓦尔·伊莱达·塔尔汗(Şevval Ilayda Tarhan)携手,在10米气手枪混合团体赛中勇夺银牌,实现了职业生涯的重大突破。这一刻,他不仅为自己赢得了荣誉,更为土耳其射击界增添了浓墨重彩的一笔。', 'url': 'https://www.guancha.cn/sports/2024_08_01_743519.shtml'}, {'result_id': 3, 'title': '土耳其派"杀手"参加奥运会?这个神秘大叔是什么人_凤凰网', 'description': '一. 2024年巴黎奥运会,10米气手枪混合团体赛的赛场上,一位土耳其枪手迅速在全球社交网络上爆红——他穿着t恤,一只手举着枪,另一只手休闲地 ...', 'url': 'https://sports.ifeng.com/c/8biF18R98mF'}, {'result_id': 4, 'title': '51岁土耳其大叔射落奥运银牌走红,松弛感拉满,人生格言亮了', 'description': '周二(7月30日),在2024年巴黎奥运会10米气手枪混合团体赛中,土耳其射击组合尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗夺得银牌,创造了历史 ...', 'url': 'https://news.ifeng.com/c/8bgz67P33Gf'}, {'result_id': 5, 'title': '单手插兜射击摘银的土耳其大叔走红,土耳其大使馆回应:他不是杀手_腾讯新闻', 'description': '01 土耳其选手优素福·迪凯奇在巴黎奥运会射击混合团体10米气手枪决赛中荣获银牌,以单手插兜的潇洒姿态参赛。. 02 迪凯奇曾在2012年伦敦奥运会和 ...', 'url': 'https://news.qq.com/rain/a/20240801A08KEP00'}]解决方案:根据搜索到的相关链接,我找到了一些关于土耳其射击运动员在2024年巴黎奥运会上的表现的信息。这些信息主要集中在土耳其射击运动员优素福·迪凯奇(Yusuf Dikeç)在10米气手枪混合团体赛中获得银牌的情况。以下是相关链接:
- [土耳其51岁大叔双手插兜拿下银牌!本人回应:不是为了耍帅](https://www.thepaper.cn/newsDetail_forward_28286719)
- [土耳其驻华使馆发文:土耳其"枪手"迪凯奇何许人也?](https://www.guancha.cn/sports/2024_08_01_743519.shtml)
- [土耳其派"杀手"参加奥运会?这个神秘大叔是什么人](https://sports.ifeng.com/c/8biF18R98mF)
- [51岁土耳其大叔射落奥运银牌走红,松弛感拉满,人生格言亮了](https://news.ifeng.com/c/8bgz67P33Gf)
- [单手插兜射击摘银的土耳其大叔走红,土耳其大使馆回应:他不是杀手](https://news.qq.com/rain/a/20240801A08KEP00)
接下来,我将从这些链接中提取有关土耳其射击运动员的信息,并撰写一份详细的研究报告。然后,我将使用这些信息来构建一个知识图谱。
Next request.
[34mAI User:
Instruction: Retrieve relevant information from the provided URLs about Turkish shooters in the 2024 Paris Olympics.
Input: {"urls": ["https://www.thepaper.cn/newsDetail_forward_28286719", "https://www.guancha.cn/sports/2024_08_01_743519.shtml", "https://sports.ifeng.com/c/8biF18R98mF", "https://news.ifeng.com/c/8bgz67P33Gf", "https://news.qq.com/rain/a/20240801A08KEP00"], "query": "土耳其射击运动员在2024年巴黎奥运会的表现"}
[32mAI Assistant:Function Execution: retrieve_information_from_urls
Args: {'urls': ['https://www.thepaper.cn/newsDetail_forward_28286719', 'https://www.guancha.cn/sports/2024_08_01_743519.shtml', 'https://sports.ifeng.com/c/8biF18R98mF', 'https://news.ifeng.com/c/8bgz67P33Gf', 'https://news.qq.com/rain/a/20240801A08KEP00'], 'query': '土耳其射击运动员在2024年巴黎奥运会的表现'}
Result: {'Original Query': '土耳其射击运动员在2024年巴黎奥运会的表现', 'Retrieved Context': ['_奔流_ - [_健康_](/channel_143065) - [_体育_](/channel_-21) - [_评论_](/channel_-24) - [_ESG_](/channel_122153) - [_文旅_](/channel_143013) - [_关注_](/follow) - _更多_ **下载客户端** 登录 [无障碍](javascript:void(0)) - +1 # 不戴护具单手插兜射击摘银,土耳其大叔因“松弛感”走红 [![](https://image.thepaper.cn/publish/interaction/image/3/623/659.png)](/user_4624879) [甬派客户端](/user_4624879) 关注 2024-08-01 15:22 浙江 来源:澎湃新闻·澎湃号·媒体 字号 当地时间7月30日,在2024年巴黎奥运会10米气手枪混合团体赛中,土耳其射击组合尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗夺得银牌,创造了历史。这次历史性的胜利标志着土耳其首次在奥运会射击比赛中获得奖牌。']}解决方案:根据从提供的URL中检索到的信息,我们可以了解到土耳其射击运动员在2024年巴黎奥运会上的表现。特别地,土耳其射击运动员尤素福·迪凯奇(Yusuf Dikeç)和他的搭档谢夫瓦尔·伊莱达·塔尔汗(Şevval Ilayda Tarhan)在10米气手枪混合团体赛中获得了银牌,这是土耳其首次在奥运会射击比赛中获得奖牌。这是一项具有历史意义的成就,展示了土耳其射击运动员的实力和潜力。
接下来,我将基于这些信息撰写一份详细的报告,并使用工具构建一个知识图谱来展示这些信息之间的关系。
Next request.
[34mAI User:
Instruction: Write a detailed research report on the performance of Turkish shooters in the 2024 Paris Olympics.
Input: None
[32mAI Assistant:解决方案:根据之前收集到的信息,我将撰写一份关于土耳其射击运动员在2024年巴黎奥运会上表现的详细研究报告。以下是报告的内容:
---
# 土耳其射击运动员在2024年巴黎奥运会的表现研究报告
## 概述
2024年巴黎奥运会见证了土耳其射击运动员在国际舞台上的卓越表现。其中,尤素福·迪凯奇(Yusuf Dikeç)和谢夫瓦尔·伊莱达·塔尔汗(Şevval Ilayda Tarhan)在10米气手枪混合团体赛中取得了显著的成绩,为土耳其赢得了首枚奥运会射击比赛奖牌。
## 尤素福·迪凯奇
### 背景信息
尤素福·迪凯奇是一名来自土耳其的资深射击运动员。他出生于1973年1月1日,出生地为卡赫拉曼马拉什市格克孙区。迪凯奇在军队服役期间培养了出色的射击技能,并逐渐成长为一名世界级的射击运动员。
### 表现
在2024年巴黎奥运会10米气手枪混合团体赛中,迪凯奇以其独特的射击风格和优雅的姿态吸引了全球观众的目光。尽管他以单手插兜的方式进行射击,但这一举动并未影响他的表现。最终,他与搭档谢夫瓦尔·伊莱达·塔尔汗一起夺得了银牌,创造了土耳其在奥运会射击项目上的历史。
## 谢夫瓦尔·伊莱达·塔尔汗
### 背景信息
谢夫瓦尔·伊莱达·塔尔汗同样是一名来自土耳其的射击运动员。她在射击领域有着丰富的经验和出色的技术。塔尔汗在2024年巴黎奥运会上的表现证明了她作为顶尖射击运动员的实力。
### 表现
在10米气手枪混合团体赛中,塔尔汗与迪凯奇紧密合作,共同展现了他们在射击领域的高超技艺。她们的默契配合和精准射击帮助她们在比赛中脱颖而出,最终获得了银牌。
## 历史意义
此次银牌的获得对于土耳其射击运动来说具有重要的历史意义。这是土耳其首次在奥运会射击比赛中获得奖牌,标志着土耳其射击运动员在国际舞台上的崛起。这一成就不仅为土耳其带来了荣誉,也为土耳其射击运动的发展注入了新的动力。
## 结论
2024年巴黎奥运会见证了土耳其射击运动员尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗的卓越表现。他们的努力和才华不仅为土耳其赢得了荣誉,也为土耳其射击运动的发展树立了新的里程碑。未来,我们期待看到更多土耳其射击运动员在国际舞台上取得更加辉煌的成绩。
---
接下来,我将使用这些信息来构建一个知识图谱,以便更直观地展示土耳其射击运动员在2024年巴黎奥运会上的表现及其背景信息。
Next request.
[34mAI User:
Instruction: Build a knowledge graph from the provided text about the performance of Turkish shooters in the 2024 Paris Olympics.
Input: {"text_input": "土耳其射击运动员在2024年巴黎奥运会上的表现研究报告\n\n概述\n2024年巴黎奥运会见证了土耳其射击运动员在国际舞台上的卓越表现。其中,尤素福·迪凯奇(Yusuf Dikeç)和谢夫瓦尔·伊莱达·塔尔汗(Şevval Ilayda Tarhan)在10米气手枪混合团体赛中取得了显著的成绩,为土耳其赢得了首枚奥运会射击比赛奖牌。\n\n尤素福·迪凯奇\n\n背景信息\n尤素福·迪凯奇是一名来自土耳其的资深射击运动员。他出生于1973年1月1日,出生地为卡赫拉曼马拉什市格克孙区。迪凯奇在军队服役期间培养了出色的射击技能,并逐渐成长为一名世界级的射击运动员。\n\n表现\n在2024年巴黎奥运会10米气手枪混合团体赛中,迪凯奇以其独特的射击风格和优雅的姿态吸引了全球观众的目光。尽管他以单手插兜的方式进行射击,但这一举动并未影响他的表现。最终,他与搭档谢夫瓦尔·伊莱达·塔尔汗一起夺得了银牌,创造了土耳其在奥运会射击项目上的历史。\n\n谢夫瓦尔·伊莱达·塔尔汗\n\n背景信息\n谢夫瓦尔·伊莱达·塔尔汗同样是一名来自土耳其的射击运动员。她在射击领域有着丰富的经验和出色的技术。塔尔汗在2024年巴黎奥运会上的表现证明了她作为顶尖射击运动员的实力。\n\n表现\n在10米气手枪混合团体赛中,塔尔汗与迪凯奇紧密合作,共同展现了他们在射击领域的高超技艺。她们的默契配合和精准射击帮助她们在比赛中脱颖而出,最终获得了银牌。\n\n历史意义\n此次银牌的获得对于土耳其射击运动来说具有重要的历史意义。这是土耳其首次在奥运会射击比赛中获得奖牌,标志着土耳其射击运动员在国际舞台上的崛起。这一成就不仅为土耳其带来了荣誉,也为土耳其射击运动的发展注入了新的动力。\n\n结论\n2024年巴黎奥运会见证了土耳其射击运动员尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗的卓越表现。他们的努力和才华不仅为土耳其赢得了荣誉,也为土耳其射击运动的发展树立了新的里程碑。未来,我们期待看到更多土耳其射击运动员在国际舞台上取得更加辉煌的成绩。"}
[32mAI Assistant:Function Execution: knowledge_graph_builder
Args: {'text_input': '土耳其射击运动员在2024年巴黎奥运会上的表现研究报告\n\n概述\n2024年巴黎奥运会见证了土耳其射击运动员在国际舞台上的卓越表现。其中,尤素福·迪凯奇(Yusuf Dikeç)和谢夫瓦尔·伊莱达·塔尔汗(Şevval Ilayda Tarhan)在10米气手枪混合团体赛中取得了显著的成绩,为土耳其赢得了首枚奥运会射击比赛奖牌。\n\n尤素福·迪凯奇\n\n背景信息\n尤素福·迪凯奇是一名来自土耳其的资深射击运动员。他出生于1973年1月1日,出生地为卡赫拉曼马拉什市格克孙区。迪凯奇在军队服役期间培养了出色的射击技能,并逐渐成长为一名世界级的射击运动员。\n\n表现\n在2024年巴黎奥运会10米气手枪混合团体赛中,迪凯奇以其独特的射击风格和优雅的姿态吸引了全球观众的目光。尽管他以单手插兜的方式进行射击,但这一举动并未影响他的表现。最终,他与搭档谢夫瓦尔·伊莱达·塔尔汗一起夺得了银牌,创造了土耳其在奥运会射击项目上的历史。\n\n谢夫瓦尔·伊莱达·塔尔汗\n\n背景信息\n谢夫瓦尔·伊莱达·塔尔汗同样是一名来自土耳其的射击运动员。她在射击领域有着丰富的经验和出色的技术。塔尔汗在2024年巴黎奥运会上的表现证明了她作为顶尖射击运动员的实力。\n\n表现\n在10米气手枪混合团体赛中,塔尔汗与迪凯奇紧密合作,共同展现了他们在射击领域的高超技艺。她们的默契配合和精准射击帮助她们在比赛中脱颖而出,最终获得了银牌。\n\n历史意义\n此次银牌的获得对于土耳其射击运动来说具有重要的历史意义。这是土耳其首次在奥运会射击比赛中获得奖牌,标志着土耳其射击运动员在国际舞台上的崛起。这一成就不仅为土耳其带来了荣誉,也为土耳其射击运动的发展注入了新的动力。\n\n结论\n2024年巴黎奥运会见证了土耳其射击运动员尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗的卓越表现。他们的努力和才华不仅为土耳其赢得了荣誉,也为土耳其射击运动的发展树立了新的里程碑。未来,我们期待看到更多土耳其射击运动员在国际舞台上取得更加辉煌的成绩。'}
Result: {'nodes': [{'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, {'id': '谢夫瓦尔·伊莱达·塔尔汗', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, {'id': '土耳其', 'type': 'Country', 'properties': {'source': 'agent_created'}}, {'id': '卡赫拉曼马拉什市格克孙区', 'type': 'Location', 'properties': {'source': 'agent_created'}}, {'id': '10米气手枪混合团体赛', 'type': 'Event', 'properties': {'source': 'agent_created'}}, {'id': '巴黎', 'type': 'City', 'properties': {'source': 'agent_created'}}, {'id': '法国', 'type': 'Country', 'properties': {'source': 'agent_created'}}, {'id': '银牌', 'type': 'Medal', 'properties': {'source': 'agent_created'}}], 'relationships': [{'subj': {'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '土耳其', 'type': 'Country', 'properties': {'source': 'agent_created'}}, 'type': 'Represents', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '谢夫瓦尔·伊莱达·塔尔汗', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '土耳其', 'type': 'Country', 'properties': {'source': 'agent_created'}}, 'type': 'Represents', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '卡赫拉曼马拉什市格克孙区', 'type': 'Location', 'properties': {'source': 'agent_created'}}, 'type': 'BornIn', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '10米气手枪混合团体赛', 'type': 'Event', 'properties': {'source': 'agent_created'}}, 'type': 'CompetesIn', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '谢夫瓦尔·伊莱达·塔尔汗', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '10米气手枪混合团体赛', 'type': 'Event', 'properties': {'source': 'agent_created'}}, 'type': 'CompetesIn', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '谢夫瓦尔·伊莱达·塔尔汗', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'type': 'TeammateWith', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '尤素福·迪凯奇', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '银牌', 'type': 'Medal', 'properties': {'source': 'agent_created'}}, 'type': 'Wins', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '谢夫瓦尔·伊莱达·塔尔汗', 'type': 'Athlete', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '银牌', 'type': 'Medal', 'properties': {'source': 'agent_created'}}, 'type': 'Wins', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '10米气手枪混合团体赛', 'type': 'Event', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '巴黎', 'type': 'City', 'properties': {'source': 'agent_created'}}, 'type': 'HeldIn', 'properties': {'source': 'agent_created'}}, {'subj': {'id': '巴黎', 'type': 'City', 'properties': {'source': 'agent_created'}}, 'obj': {'id': '法国', 'type': 'Country', 'properties': {'source': 'agent_created'}}, 'type': 'LocatedIn', 'properties': {'source': 'agent_created'}}], 'source': <unstructured.documents.elements.Text object at 0x7fae65b9fb50>}解决方案:我已经根据提供的文本构建了一个知识图谱,该图谱展示了土耳其射击运动员尤素福·迪凯奇和谢夫瓦尔·伊莱达·塔尔汗在2024年巴黎奥运会上的表现及相关背景信息。以下是知识图谱的主要节点和关系:
### 节点(Nodes)
1. **尤素福·迪凯奇** - 一名土耳其射击运动员。
2. **谢夫瓦尔·伊莱达·塔尔汗** - 另一名土耳其射击运动员。
3. **土耳其** - 国家。
4. **卡赫拉曼马拉什市格克孙区** - 出生地。
5. **10米气手枪混合团体赛** - 事件。
6. **巴黎** - 城市。
7. **法国** - 国家。
8. **银牌** - 奖牌。
### 关系(Relationships)
1. **尤素福·迪凯奇** 代表 **土耳其**。
2. **谢夫瓦尔·伊莱达·塔尔汗** 代表 **土耳其**。
3. **尤素福·迪凯奇** 出生于 **卡赫拉曼马拉什市格克孙区**。
4. **尤素福·迪凯奇** 和 **谢夫瓦尔·伊莱达·塔尔汗** 参加 **10米气手枪混合团体赛**。
5. **尤素福·迪凯奇** 和 **谢夫瓦尔·伊莱达·塔尔汗** 是队友。
6. **尤素福·迪凯奇** 和 **谢夫瓦尔·伊莱达·塔尔汗** 赢得 **银牌**。
7. **10米气手枪混合团体赛** 在 **巴黎** 举行。
8. **巴黎** 位于 **法国**。
通过这个知识图谱,我们可以清晰地看到土耳其射击运动员在2024年巴黎奥运会上的表现及其背景信息之间的关系。这有助于更好地理解和分析他们在比赛中的成就和影响。
任务已完成。
如果您有其他任务需要协助,请告诉我。
[34mAI User:
<CAMEL_TASK_DONE>
# End the AgentOps session
agentops.end_session("Success")
🖇 AgentOps: Session Stats - [1mDuration:[0m 3m 47.9s | [1mCost:[0m $0.00 | [1mLLMs:[0m 14 | [1mTools:[0m 0 | [1mActions:[0m 0 | [1mErrors:[0m 0
🖇 AgentOps: [34m[34mSession Replay: https://app.agentops.ai/drilldown?session_id=6bfe9fff-d6d5-4972-ab79-7304af12bfa9[0m[0m
🎉 点击上方显示的 AgentOps 链接,您将能够看到此会话的详细记录,如下所示。
注意:AgentOps 链接是私有的,与您的 AgentOps 账户相关联。要访问该链接,您需要使用您自己的 AgentOps API 密钥运行会话,然后可以通过该链接查看会话的运行信息。
目前,AgentOps 无法直接获取 Qwen 的运行成本。
🌟 亮点
此笔记本引导您设置并运行一个CAMEL RAG 工作流,用于复杂的多智能体角色扮演任务。您可以根据需要调整和扩展此示例,以适应其他需要高级网页信息检索和 AI 协作的场景。
本笔记本中使用的关键工具包括:
- CAMEL:一个强大的多智能体框架,支持检索增强生成和多智能体角色扮演场景,允许进行复杂的 AI 驱动任务。
- Qwen:因其最先进的语言模型而被使用,这些模型支持工具调用功能以执行外部函数。
- Firecrawl:一个强大的网页抓取工具,简化了从各种网页中提取和清理内容的过程。
- AgentOps:跟踪和分析 CAMEL 智能体的运行情况。
- Milvus:一种高效的向量存储系统,与 CAMEL 的 AutoRetriever 一起使用,根据向量相似性存储和检索相关信息。
- Neo4j:领先的图数据库管理系统,用于构建和存储知识图谱,能够高效地映射和查询实体之间的复杂关系。
- DuckDuckGo 搜索:在 SearchToolkit 中使用,收集来自网络的相关 URL 和信息,作为检索初始内容的主要搜索引擎。
- Unstructured IO:用于内容分块,促进对非结构化数据的管理,以实现更高效的处理。
此综合设置允许您根据需求调整和扩展示例,以适应需要高级网页信息检索、AI 协作和多源数据聚合的各种场景。
CAMEL 还支持高级 GraphRAG,欲了解更多信息,请查看 此处。
⭐ 给仓库加星
如果您觉得 CAMEL 有用或有趣,请考虑在 GitHub 上给它加星!您的星标将帮助更多人发现这个项目,并激励我们不断改进。