Dify
Dify是一个开源的Agent开发平台,使用Dify有两种方式,一种是使用Dify的在线平台。https://cloud.dify.ai。
一种是进行私有化部署。下载地址:https://github.com/langgenius/dify
docker私有化部署
下载完成后
cd docker
cp .env.example .env
docker compose up -d
执行
sudo apt-get update
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod 777 /etc/apt/keyrings/docker.asc
echo \
> "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
> $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
> sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
docker compose -f docker-compose.yaml up -d
执行完成后查看一下
docker ps
在浏览器中输入http://localhost/install
创建工作流
这里我们以官网为例来说明,创建一个文本写作的内容。
首先点击工作室,创建一个空白应用
选择工作流,填入应用的名称
先点击开始,选择我们的输入
输入字段,点+号
然后选择上传文档,变量名必须为英文
然后选择文档提取器节点
输入变量为document,输出变量为text
然后选择大模型节点
在LLM中选择模型,我这里选择的是gpt-4o-mini,上下文选择文档提取器/text。SYSTEM填写
你是一个文档大纲提取专家
提示词,我这里是
将以下提纲解析为JSON格式:文档提取器text}返回格式示例:
[
{{
"chapter": "第一章:背景家世",
"subchapter": ["1您的名字有什么特殊的含义或故事吗?我的名字\“列夫·托尔斯泰\”意味着\“神的和平\”,这反映了我家族对宗教和道德价值的重视。",
"您的家族有什么样的传统或家训?我的家族一直秉承着诚实、勤劳和对教育的重视,这些传统对我影响深远。",
"您的父母是如何相遇的,他们的故事对您有什么影响?我的父母是在一次贵族聚会上相遇的,他们的故事教会了我关于爱情和责任的重要性。"]
}}
]
只需要返回JSON格式,不要做无关的事情
此时我们可以点一下运行看一下效果
上传我们的文档,点运行
运行完成后,点追踪,我们可以看到每一个节点所花费的时间
然后,我们来看一下大模型的输入、提示词、输出
{
"#context#": "采访大纲记录和回答\n第一章:背景家世\n• 您的名字有什么特殊的含义或故事吗?\n• 我的名字“列夫·托尔斯泰”意味着“神的和平”,这反映了我家族对宗教和道德价值的重视。\n• 您的家族有什么样的传统或家训?\n• 我的家族一直秉承着诚实、勤劳和对教育的重视,这些传统对我影响深远。\n• 您的父母是如何相遇的,他们的故事对您有什么影响?\n• 我的父母是在一次贵族聚会上相遇的,他们的故事教会了我关于爱情和责任的重要性。\n• 您能分享一下您家族中的重要历史事件或转折点吗?\n• 家族…}
提示词
{
"model_mode": "chat",
"prompts": [
{
"role": "system",
"text": "将以下提纲解析为JSON格式:\n采访大纲记录和回答\n第一章:背景家世\n• 您的名字有什么特殊的含义或故事吗?\n• 我的名字“列夫·托尔斯泰”意味着“神的和平”,这反映了我家族对宗教和道德价值的重视。\n• 您的家族有什… "model_name": "gpt-4o-mini"
}
输出
{
"text": "```json\n[\n {\n \"chapter\": \"第一章:背景家世\",\n \"subchapter\": [\n \"您的名字有什么特殊的含义或故事吗?我的名字“列夫·托尔斯泰”意味着“神的和平”,这反映了我家族对宗教和道德价值的重视。\",\n \"您的家族有什么样的传统或家训?我的家族一直秉承着诚实、勤劳和对教育的重视,这些传统对我影响深远。\",\n \"您的父母是如何相遇的,他们的故事对您有什么影响?我的父母是在一次贵族聚会上相遇的,他们的故事教会了我关于爱情和责任的重要性。\",\n \"您能分享一下您家族中的重要历史事件或转折点吗?家族中最重要的转折点是曾祖父在拿破仑战争中的英勇表现,这为我们家族赢得了荣誉和尊重。\"\n ]\n },\n {\n \"chapter\": \"第二章:童年时光\",\n \"subchapter\": [\n \"您童年时期最难忘的记忆是什么?我童年最难忘的是在家族庄园的广阔田野上自由奔跑,那里充满了我的欢笑和探索。\",\n \"您童年时的家乡有哪些特色或变化?我的家乡有着丰富的自然资源和深厚的文化底蕴,随着时间的推移,它逐渐成为了俄罗斯文学的摇篮。\",\n \"您童年的家庭生活是怎样的?我的童年家庭生活充满了爱和关怀,尽管父母早逝,但家族的长辈给了我足够的温暖和教育。\",\n \"您还记得您儿时的玩伴吗?他们对您有什么影响?我儿时的玩伴主要是家族的兄弟姐妹和庄园里的孩子们,他们让我学会了分享和团队合作。\"\n ]\n },\n {\n \"chapter\": \"第三章:求学岁月\",\n \"subchapter\": [\n \"您在求学过程中遇到的最大挑战是什么?求学过程中最大的挑战是适应正规教育体系,我更倾向于自学和探索。\",\n \"您有哪些特别尊敬的老师或导师?我特别尊敬的老师是那些能够激发我思考和鼓励我独立创作的导师。\",\n \"您在学校中最骄傲的成就是什么?我在学校中最骄傲的成就是我开始创作诗歌和故事,这些作品受到了同学们的喜爱。\",\n \"您和同学之间有哪些难忘的故事?我和同学们一起组织文学社团,共同探讨文学和哲学问题,这些经历对我影响深远。\"\n ]\n },\n {\n \"chapter\": \"第四章:职业生涯\",\n \"subchapter\": [\n \"您的第一份工作是什么?您是如何得到这份工作的?我的第一份工作是家族庄园的管理者,这份工作让我有机会实践我对社会改革的想法。\",\n \"您在职业生涯中取得的最大成就是什么?我职业生涯中最大的成就是创作了《战争与和平》和《安娜·卡列尼娜》,这些作品对世界文学产生了深远影响。\",\n \"您在工作过程中遇到的最大挑战是什么,您是如何克服的?我遇到的最大挑战是如何平衡文学创作和社会活动,我通过严格的时间管理和自我约束来克服。\",\n \"您的职业经历中的转折点是什么?我的职业转折点是决定放弃贵族生活,专注于文学创作和精神探索。\"\n ]\n },\n {\n \"chapter\": \"第五章:婚姻家庭\",\n \"subchapter\": [\n \"您和您的伴侣是如何相遇的?我和伴侣索尼娅是在家族的一次聚会上相遇的,我们彼此一见钟情。\",\n \"您的婚姻生活中有哪些难忘的时刻?婚姻生活中最难忘的是与索尼娅共同抚养孩子,以及一起度过的艰难岁月。\",\n \"您在为人父母的过程中学到了什么?作为父母,我学到了耐心、牺牲和无条件的爱的重要性。\",\n \"您如何平衡工作和家庭生活?我通过设定工作和家庭的界限,以及与索尼娅共同分担家庭责任来平衡两者。\"\n ]\n },\n {\n \"chapter\": \"第六章:人缘际遇\",\n \"subchapter\": [\n \"您和您的兄弟姐妹关系如何?我和兄弟姐妹关系非常亲密,我们互相支持,共同成长。\",\n \"您有哪些长期保持联系的老朋友?我有一些从年轻时就认识的朋友,如屠格涅夫和陀思妥耶夫斯基,我们一直保持着深厚的友谊。\",\n \"您生命中有哪些重要的贵人,他们是如何帮助您的?我生命中的贵人包括我的导师和一些文学界的前辈,他们对我的写作生涯有着重要的影响。\"\n ]\n },\n {\n \"chapter\": \"第七章:岁月变迁\",\n \"subchapter\": [\n \"您的家乡在您成长过程中发生了哪些变化?我的家乡经历了俄罗斯社会的动荡和变革,这些变化深刻影响了我的思想和创作。\",\n \"您亲历了哪些重要的历史事件?我亲历了1861年的农奴制改革,这一事件对我的世界观和文学创作产生了深远影响。\",\n \"您认为时代的变化对您的生活有哪些影响?时代的变化让我更加关注社会公正和人类的精神追求,这些主题在我的作品中得到了体现。\"\n ]\n },\n {\n \"chapter\": \"第八章:晚年生活\",\n \"subchapter\": [\n \"您退休后的生活是怎样的?我晚年的生活主要是在庄园中度过,我专注于写作和精神探索。\",\n \"您对未来有什么期望或计划?我对未来的期望是能够继续创作,留下更多的文学作品供后人阅读和思考。\",\n \"您对年轻一代有什么建议或寄语?我对年轻一代的建议是珍惜时间,不断学习和成长,同时也要关注社会和他人。\"\n ]\n },\n {\n \"chapter\": \"第九章:人生感悟\",\n \"subchapter\": [\n \"您认为什么是幸福?我认为幸福是内心的平静和满足,是对生活有深刻的理解和感悟。\",\n \"您在人生中最自豪的成就是是什么?我人生中最自豪的成就是能够通过我的文学作品影响和启发人们。\",\n \"您在人生中遇到过哪些重大的转折点?我人生中的重大转折点是决定放弃贵族生活,专注于文学创作和精神探索。\",\n \"您有哪些遗憾,您是如何释怀的?我有一些遗憾,比如没有更多时间陪伴家人,但我通过珍惜现在来释怀。\",\n \"您对青春的寄语是什么?我对青春的寄语是勇敢追梦,不畏挑战,同时也要珍惜身边的人。\",\n \"您希望如何影响或启发后人?我希望我能够通过我的经历和故事,启发后人去追求他们的梦想,同时也要关注社会和他人。\"\n ]\n }\n]\n```",
"usage": {
"prompt_tokens": 1764,
"prompt_unit_price": "0.15",
"prompt_price_unit": "0.000001",
"prompt_price": "0.0002646",
"completion_tokens": 1688,
"completion_unit_price": "0.60",
"completion_price_unit": "0.000001",
"completion_price": "0.0010128",
"total_tokens": 3452,
"total_price": "0.0012774",
"currency": "USD",
"latency": 23.888047418091446
},
"finish_reason": "stop"
}
继续添加代码执行节点,输入变量arg1为LLM text,输出变量result为Arrar[Object]
代码为
import json
def main(arg1: str) -> dict:
if arg1.startswith('```'):
arg1 = arg1[8:-4]
data = json.loads(arg1)
return {
"result": data
}
运行结果
{
"result": [
{
"chapter": "第一章:背景家世",
"subchapter": [
"您的名字有什么特殊的含义或故事吗?我的名字“列夫·托尔斯泰”意味着“神的和平”,这反映了我家族对宗教和道德价值的重视。",
"您的家族有什么样的传统或家训?我的家族一直秉承着诚实、勤劳和对教育的重视,这些传统对我影响深远。",
"您的父母是如何相遇的,他们的故事对您有什么影响?我的父母是在一次贵族聚会上相遇的,他们的故事教会了我关于爱情和责任的重要性。",
"您能分享一下您家族中的重要历史事件或转折点吗?家族中最重要的转折点是曾祖父在拿破仑战争中的英勇表现,这为我们家族赢得了荣誉和尊重。"
]
},
{
"chapter": "第二章:童年时光",
"subchapter": [
"您童年时期最难忘的记忆是什么?我童年最难忘的是在家族庄园的广阔田野上自由奔跑,那里充满了我的欢笑和探索。",
"您童年时的家乡有哪些特色或变化?我的家乡有着丰富的自然资源和深厚的文化底蕴,随着时间的推移,它逐渐成为了俄罗斯文学的摇篮。",
"您童年的家庭生活是怎样的?我的童年家庭生活充满了爱和关怀,尽管父母早逝,但家族的长辈给了我足够的温暖和教育。",
"您还记得您儿时的玩伴吗?他们对您有什么影响?我儿时的玩伴主要是家族的兄弟姐妹和庄园里的孩子们,他们让我学会了分享和团队合作。"
]
},
{
"chapter": "第三章:求学岁月",
"subchapter": [
"您在求学过程中遇到的最大挑战是什么?求学过程中最大的挑战是适应正规教育体系,我更倾向于自学和探索。",
"您有哪些特别尊敬的老师或导师?我特别尊敬的老师是那些能够激发我思考和鼓励我独立创作的导师。",
"您在学校中最骄傲的成就是什么?我在学校中最骄傲的成就是我开始创作诗歌和故事,这些作品受到了同学们的喜爱。",
"您和同学之间有哪些难忘的故事?我和同学们一起组织文学社团,共同探讨文学和哲学问题,这些经历对我影响深远。"
]
},
{
"chapter": "第四章:职业生涯",
"subchapter": [
"您的第一份工作是什么?您是如何得到这份工作的?我的第一份工作是家族庄园的管理者,这份工作让我有机会实践我对社会改革的想法。",
"您在职业生涯中取得的最大成就是什么?我职业生涯中最大的成就是创作了《战争与和平》和《安娜·卡列尼娜》,这些作品对世界文学产生了深远影响。",
"您在工作过程中遇到的最大挑战是什么,您是如何克服的?我遇到的最大挑战是如何平衡文学创作和社会活动,我通过严格的时间管理和自我约束来克服。",
"您的职业经历中的转折点是什么?我的职业转折点是决定放弃贵族生活,专注于文学创作和精神探索。"
]
},
{
"chapter": "第五章:婚姻家庭",
"subchapter": [
"您和您的伴侣是如何相遇的?我和伴侣索尼娅是在家族的一次聚会上相遇的,我们彼此一见钟情。",
"您的婚姻生活中有哪些难忘的时刻?婚姻生活中最难忘的是与索尼娅共同抚养孩子,以及一起度过的艰难岁月。",
"您在为人父母的过程中学到了什么?作为父母,我学到了耐心、牺牲和无条件的爱的重要性。",
"您如何平衡工作和家庭生活?我通过设定工作和家庭的界限,以及与索尼娅共同分担家庭责任来平衡两者。"
]
},
{
"chapter": "第六章:人缘际遇",
"subchapter": [
"您和您的兄弟姐妹关系如何?我和兄弟姐妹关系非常亲密,我们互相支持,共同成长。",
"您有哪些长期保持联系的老朋友?我有一些从年轻时就认识的朋友,如屠格涅夫和陀思妥耶夫斯基,我们一直保持着深厚的友谊。",
"您生命中有哪些重要的贵人,他们是如何帮助您的?我生命中的贵人包括我的导师和一些文学界的前辈,他们对我的写作生涯有着重要的影响。"
]
},
{
"chapter": "第七章:岁月变迁",
"subchapter": [
"您的家乡在您成长过程中发生了哪些变化?我的家乡经历了俄罗斯社会的动荡和变革,这些变化深刻影响了我的思想和创作。",
"您亲历了哪些重要的历史事件?我亲历了1861年的农奴制改革,这一事件对我的世界观和文学创作产生了深远影响。",
"您认为时代的变化对您的生活有哪些影响?时代的变化让我更加关注社会公正和人类的精神追求,这些主题在我的作品中得到了体现。"
]
},
{
"chapter": "第八章:晚年生活",
"subchapter": [
"您退休后的生活是怎样的?我晚年的生活主要是在庄园中度过,我专注于写作和精神探索。",
"您对未来有什么期望或计划?我对未来的期望是能够继续创作,留下更多的文学作品供后人阅读和思考。",
"您对年轻一代有什么建议或寄语?我对年轻一代的建议是珍惜时间,不断学习和成长,同时也要关注社会和他人。"
]
},
{
"chapter": "第九章:人生感悟",
"subchapter": [
"您认为什么是幸福?我认为幸福是内心的平静和满足,是对生活有深刻的理解和感悟。",
"您在人生中最自豪的成就是是什么?我人生中最自豪的成就是能够通过我的文学作品影响和启发人们。",
"您在人生中遇到过哪些重大的转折点?我人生中的重大转折点是决定放弃贵族生活,专注于文学创作和精神探索。",
"您有哪些遗憾,您是如何释怀的?我有一些遗憾,比如没有更多时间陪伴家人,但我通过珍惜现在来释怀。",
"您对青春的寄语是什么?我对青春的寄语是勇敢追梦,不畏挑战,同时也要珍惜身边的人。",
"您希望如何影响或启发后人?我希望我能够通过我的经历和故事,启发后人去追求他们的梦想,同时也要关注社会和他人。"
]
}
]
}
继续添加迭代节点,并且在迭代中添加大模型节点
大模型的设置如下
Browser-Use
环境安装
下载地址:https://github.com/browser-use/browser-use
conda create -n browser python=3.11
conda activate browser
pip install browser-use
playwright install
设置API_KEY
下载完成后进入主文件夹
cp .env.example .env
内容如下
OPENAI_API_KEY=****** ANTHROPIC_API_KEY= # Set to false to disable anonymized telemetry ANONYMIZED_TELEMETRY=true # LogLevel: Set to debug to enable verbose logging, set to result to get results only. Available: result | debug | info BROWSER_USE_LOGGING_LEVEL=info