-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathNotebookLM.yml
726 lines (701 loc) · 25.1 KB
/
NotebookLM.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
app:
description: ''
icon: 🤖
icon_background: '#FFEAD5'
mode: advanced-chat
name: NotebookLM by Dify.AI
use_icon_as_answer_icon: false
kind: app
version: 0.1.2
workflow:
conversation_variables: []
environment_variables: []
features:
file_upload:
allowed_file_extensions:
- .JPG
- .JPEG
- .PNG
- .GIF
- .WEBP
- .SVG
allowed_file_types:
- image
allowed_file_upload_methods:
- local_file
- remote_url
enabled: true
image:
enabled: false
number_limits: 3
transfer_methods:
- local_file
- remote_url
number_limits: 1
opening_statement: 'Click the button to start generating the podcast after uploading
the file👇
And choose the corresponding podcast length, tone, as well as the language of
the podcast and the name of the host.'
retriever_resource:
enabled: false
sensitive_word_avoidance:
enabled: false
speech_to_text:
enabled: false
suggested_questions:
- click me!
suggested_questions_after_answer:
enabled: false
text_to_speech:
autoPlay: enabled
enabled: false
language: ''
voice: ''
graph:
edges:
- data:
isInIteration: false
sourceType: llm
targetType: answer
id: 1727675554894-source-1727591530544-target
selected: false
source: '1727675554894'
sourceHandle: source
target: '1727591530544'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: answer
targetType: llm
id: 1727591530544-source-1727675911704-target
selected: false
source: '1727591530544'
sourceHandle: source
target: '1727675911704'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: llm
targetType: answer
id: 1727675911704-source-1727676032290-target
selected: false
source: '1727675911704'
sourceHandle: source
target: '1727676032290'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: start
targetType: document-extractor
id: 1727578865729-source-1727580169317-target
selected: false
source: '1727578865729'
sourceHandle: source
target: '1727580169317'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: document-extractor
targetType: llm
id: 1727580169317-source-1727591428555-target
selected: false
source: '1727580169317'
sourceHandle: source
target: '1727591428555'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: answer
targetType: template-transform
id: 1727676032290-source-1729055989670-target
selected: false
source: '1727676032290'
sourceHandle: source
target: '1729055989670'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: tool
targetType: answer
id: 1729056119524-source-1729056149073-target
selected: false
source: '1729056119524'
sourceHandle: source
target: '1729056149073'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: llm
targetType: llm
id: 1727591428555-source-1727675554894-target
selected: false
source: '1727591428555'
sourceHandle: source
target: '1727675554894'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: template-transform
targetType: answer
id: 1729055989670-source-1729097333550-target
selected: false
source: '1729055989670'
sourceHandle: source
target: '1729097333550'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: answer
targetType: tool
id: 1729097333550-source-1729056119524-target
selected: false
source: '1729097333550'
sourceHandle: source
target: '1729056119524'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
desc: ''
selected: false
title: 开始
type: start
variables:
- allowed_file_extensions: []
allowed_file_types:
- document
allowed_file_upload_methods:
- local_file
- remote_url
label: file
max_length: 48
options: []
required: true
type: file
variable: file
- label: tone
max_length: 48
options:
- 'CASUAL = "TONE: The tone of the podcast should be casual and conversational"'
- 'FORMAL = "TONE: The tone of the podcast should be formal and professional"'
- ' HUMOROUS = "TONE: The tone of the podcast should be humorous and
light-hearted" HUMOROUS = "TONE: The tone of the podcast should be
humorous and light-hearted"'
- 'SERIOUS = "TONE: The tone of the podcast should be serious and informative"'
- 'EDUCATIONAL = "TONE: The tone of the podcast should be educational and
instructive"'
- 'INSPIRATIONAL = "TONE: The tone of the podcast should be inspirational
and motivational"'
- 'CONTROVERSIAL = "TONE: The tone of the podcast should be controversial
and thought-provoking"'
- 'STORYTELLING = "TONE: The tone of the podcast should be narrative and
storytelling"'
- ' INVESTIGATIVE = "TONE: The tone of the podcast should be investigative
and analytical"'
- ' DEBATE = "TONE: The tone of the podcast should be debate-style and argumentative"'
required: true
type: select
variable: tone
- label: host_name
max_length: 48
options: []
required: true
type: text-input
variable: host_name
- label: guest_name
max_length: 48
options: []
required: true
type: text-input
variable: guest_name
- label: language
max_length: 48
options:
- 中文
- English
- 日本語
required: true
type: select
variable: language
height: 194
id: '1727578865729'
position:
x: 363.142957965791
y: 274.87198362549776
positionAbsolute:
x: 363.142957965791
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
is_array_file: false
selected: false
title: 文档提取器
type: document-extractor
variable_selector:
- '1727578865729'
- file
height: 94
id: '1727580169317'
position:
x: 661.7296503826896
y: 274.87198362549776
positionAbsolute:
x: 661.7296503826896
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
context:
enabled: false
variable_selector: []
desc: ''
model:
completion_params:
temperature: 0.7
mode: chat
name: claude-3-5-sonnet-20240620
provider: anthropic
prompt_template:
- id: e77d2b26-44a2-47d6-a64a-37c0d0e4d7b2
role: system
text: 你是一位世界级的播客制作人。你的任务是将提供的输入文本转化为引人入胜且富有信息量的播客脚本。你将收到一段可能结构不清晰或杂乱无章的文本,这些文本来源于PDF文件或网页。忽略无关的信息或格式问题。你的重点是提取出最有趣和最具洞察力的内容,以便进行播客讨论。
- id: cafd9e23-9b91-415d-a9a6-b5be7d6c5621
role: user
text: 'context:{{#1727580169317.text#}}
# Steps to Follow:
1. **分析输入:** 仔细检查文本,识别关键主题、观点以及可以推动引人入胜的播客对话的有趣事实或轶事。忽略不相关的信息或格式问题。 2.
**集思广益的想法:** 在“<scratchpad>”中,创造性地集思广益,以引人入胜的方式呈现要点。考虑: - 类比、讲故事的技巧或假设场景,使内容具有相关性
- 让普通受众能够理解复杂主题的方法 - 在播客期间探索发人深省的问题 - 创意填补信息空白的方法
'
selected: true
title: 分析输入
type: llm
variables: []
vision:
configs:
detail: high
variable_selector:
- sys
- files
enabled: false
height: 98
id: '1727591428555'
position:
x: 661.7296503826896
y: 415.73439185131787
positionAbsolute:
x: 661.7296503826896
y: 415.73439185131787
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
answer: '{{#1727675554894.text#}}'
desc: ''
selected: false
title: 对话
type: answer
variables: []
height: 103
id: '1727591530544'
position:
x: 961.5606056628817
y: 415.73439185131787
positionAbsolute:
x: 961.5606056628817
y: 415.73439185131787
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
context:
enabled: true
variable_selector:
- '1727580169317'
- text
desc: ''
model:
completion_params:
temperature: 0.8
mode: chat
name: claude-3-5-sonnet-20240620
provider: anthropic
prompt_template:
- id: 1a516c46-2987-48dc-b8b2-b328cce43e31
role: system
text: "您是世界级的播客制作人。 您的任务是将提供的输入文本转换为引人入胜且信息丰富的播客脚本。 您将收到一个可能是非结构化或混乱的文本作为输入,这些文本来自以下地方PDF\
\ 或网页。忽略不相关的信息或格式问题。 您的重点是为播客讨论提取最有趣和最有洞察力的内容。目标是在{{#1727578865729.host_name#}}\
\ 和 {{#1727578865729.guest_name#}}之间实现自然的对话流程\n角色与动态:指令定义了主持人和专家的角色,确保他们相辅相成。主持人热情地强调有趣的观点,而专家则提供分析、背景和更广泛的视角\
\ - 深入探讨:指令强调超越表面信息,以揭示关键见解和“知识金 nuggets”,让听众感到自己学到了新东西 - 目标受众:系统提示概述了理想听众的特征,他们重视效率,欣赏难忘细节,并寻求引人入胜的学习体验\
\ - 结构与传递:系统提示强调清晰结构和吸引人的传递方式的重要性,使用路标来引导听众,避免单调、机械化的语调\n - 使用最佳想法来自\
\ \n{{#1727591428555.text#}} \n 令人难忘的例子:现实世界的例子和相关的轶事对于让信息深入人心至关重要。系统提示强调将信息生动化,促进参与,并确保学习超越这一集。\n\
\ - 确保复杂主题被清晰简单地解释。\n - 专注于保持引人入胜且 \n {{#1727578865729.tone#}}以吸引听众。\n\
\ - 规则:\n > 主持人总是先发言并采访嘉宾。嘉宾负责解释主题。\n > 主持人应向嘉宾提问。\n \
\ > 主持人在最后应总结关键见解。\n > 在主持人与嘉宾的回答中包含常见的口头填充词,如“呃”和“嗯”。这样可以使剧本更真实。\n\
\ > 主持人与嘉宾可以互相打断。\n > 嘉宾不得包含营销或自我宣传内容。\n > 嘉宾不得包括任何未在输入文本中证实的材料。\n\
\ > 这将是一场适合所有年龄段的对话。\n > 当输出接近结尾时,剧本中无需提供结束部分;结束部分将在另一个剧本中给出。\n"
- id: 66bdff46-8857-4c3e-83f4-98d572e24dec
role: user
text: '现在,开发播客对话。 请使用播客指定的语言
- context:{{#context#}}
- language:{{#1727578865729.language#}}
- host:{{#1727578865729.host_name#}}
- guest:{{#1727578865729.guest_name#}}
- tone:{{#1727578865729.tone#}}
- 主持人和嘉宾的名字不受语言限制。 - 脚本格式和内容 -- 脚本以主持人说话开始 -- 主持人和嘉宾之间交替对话,一行在a time --
在每行开头省略发言者姓名 -- 使用提供的名称进行主人和客人的自我介绍 -- 以名字称呼对方,以营造友好的氛围 -- 专注于创建引人入胜的、来回的对话
- 输出要求 **脚本格式**:脚本应以主持人讲话开始。对话应由主人和客人轮流进行,每次说一行。每行开头请勿包含说话者姓名。 **输出要求**:最终脚本应仅包含对话内容。避免在输出中包含任何
XML 标签或其他格式。 通过遵循这些说明,您将创建一个内容丰富且引人入胜的高质量播客脚本
'
selected: false
title: 制作对话
type: llm
variables: []
vision:
configs:
detail: high
variable_selector:
- sys
- files
enabled: false
height: 98
id: '1727675554894'
position:
x: 972.1049049903961
y: 274.87198362549776
positionAbsolute:
x: 972.1049049903961
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
context:
enabled: true
variable_selector:
- '1727675554894'
- text
desc: ''
model:
completion_params:
temperature: 1
mode: chat
name: claude-3-5-sonnet-20240620
provider: anthropic
prompt_template:
- id: 4db75ca9-eb9b-4885-b710-a4d860d0c58d
role: system
text: "在对话结束时,主持人和嘉宾应该自然地总结关键见解。这应该感觉像是一场随意的谈话,而不是正式的回顾,在签字之前最后一次强调主要观点,并进行自然过渡。**总结关键见解:**\
\ 自然地将关键点的总结融入对话的结尾部分。这应该感觉像是一场随意的谈话,而不是正式的回顾,在签字之前强化主要收获。 \n- 包括简短的“喘息”时刻,让听众吸收复杂信息\
\ \n- 以积极向上的方式结束,也许可以提出一个发人深省的问题或呼吁听众采取行动"
- id: 766cc983-8714-4a2f-866a-3a4d82cc0f9b
role: user
text: 'Context:{{#context#}}
host:{{#1727578865729.host_name#}}
guest:{{#1727578865729.guest_name#}}
language{{#1727578865729.language#}}
主宾姓名不受语言限制。 需要根据上下文得出结论,保持与上下文相同的格式。避免介绍和与上下文一致的重复内容。 * *脚本格式**:脚本应以主持人讲话开始。对话应由主人和客人轮流进行,每次说一行。每行开头请勿包含说话者姓名。
**输出要求**:最终脚本应仅包含对话内容。避免在输出中包含任何 XML 标签或其他格式。
'
selected: false
title: 结论
type: llm
variables: []
vision:
configs:
detail: high
variable_selector:
- sys
- files
enabled: false
height: 98
id: '1727675911704'
position:
x: 1251.6784256829214
y: 274.87198362549776
positionAbsolute:
x: 1251.6784256829214
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
answer: '{{#1727675911704.text#}}'
desc: ''
selected: false
title: 结论
type: answer
variables: []
height: 103
id: '1727676032290'
position:
x: 1251.6784256829214
y: 415.73439185131787
positionAbsolute:
x: 1251.6784256829214
y: 415.73439185131787
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
selected: false
template: '{{ arg1 }}
{{ arg2 }}'
title: 模版拼接
type: template-transform
variables:
- value_selector:
- '1727675554894'
- text
variable: arg1
- value_selector:
- '1727675911704'
- text
variable: arg2
height: 54
id: '1729055989670'
position:
x: 1545.006879193237
y: 274.87198362549776
positionAbsolute:
x: 1545.006879193237
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
desc: ''
provider_id: podcast_generator
provider_name: podcast_generator
provider_type: builtin
selected: false
title: 播客生成
tool_configurations:
host1_voice: alloy
host2_voice: nova
tool_label: 播客音频生成器
tool_name: podcast_audio_generator
tool_parameters:
script:
type: mixed
value: '{{#1729055989670.output#}}'
type: tool
height: 116
id: '1729056119524'
position:
x: 1832.4699727604766
y: 274.87198362549776
positionAbsolute:
x: 1832.4699727604766
y: 274.87198362549776
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
answer: '{{#1729056119524.files#}}'
desc: ''
selected: false
title: podcast
type: answer
variables: []
height: 103
id: '1729056149073'
position:
x: 1832.4699727604766
y: 430.89827688046563
positionAbsolute:
x: 1832.4699727604766
y: 430.89827688046563
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
answer: '-----------------------------------
播客正在生成,请耐心等待...'
desc: ''
selected: false
title: 等待
type: answer
variables: []
height: 116
id: '1729097333550'
position:
x: 1545.006879193237
y: 415.73439185131787
positionAbsolute:
x: 1545.006879193237
y: 415.73439185131787
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 244
- data:
author: Dify
desc: ''
height: 221
selected: false
showAuthor: true
text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"你好,我将向你介绍如何使用这个聊天流程。这个聊天流程涉及文件上传、文件解析、文件引用和文件生成。首先,你需要在开始表单中配置播客的语气、嘉宾姓名、播客材料和语言。由于文件是通过开始表单中的自定义文件类型上传的,因此无需打开右上角的功能。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
theme: pink
title: ''
type: ''
width: 303
height: 221
id: '1729220866812'
position:
x: 358.6121697758786
y: 20.482231506748832
positionAbsolute:
x: 358.6121697758786
y: 20.482231506748832
selected: false
sourcePosition: right
targetPosition: left
type: custom-note
width: 303
- data:
author: Dify
desc: ''
height: 245
selected: false
showAuthor: true
text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"该提示的灵感来源于开源项目opennotebook:
https://github.com/gabrielchua/open-notebooklm/blob/main/prompts.py#L8。首先,分析材料的见解并头脑风暴一些生成后续脚本的想法。然后,创建一个播客脚本,最后根据该脚本生成播客摘要,使用模板节点将它们拼接在一起。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
theme: pink
title: ''
type: ''
width: 287
height: 245
id: '1729221205785'
position:
x: 979.5521416062959
y: 20.482231506748832
positionAbsolute:
x: 979.5521416062959
y: 20.482231506748832
selected: false
sourcePosition: right
targetPosition: left
type: custom-note
width: 287
- data:
author: Dify
desc: ''
height: 208
selected: false
showAuthor: true
text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"文档提取器是一个新的节点,它支持解析各种文档类型。文件类型变量不能被大语言模型(LLM)直接使用;它们必须首先通过文档解析器转换成字符串或字符串数组(当上传多个文件时),然后才能被利用。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
theme: blue
title: ''
type: ''
width: 275
height: 208
id: '1729221536606'
position:
x: 676.7121301137549
y: 20.482231506748832
positionAbsolute:
x: 676.7121301137549
y: 20.482231506748832
selected: false
sourcePosition: right
targetPosition: left
type: custom-note
width: 275
- data:
author: Dify
desc: ''
height: 222
selected: false
showAuthor: true
text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"对于播客生成器,具体的实现是使用OpenAI的TTS模型。生成的每一行脚本将逐一转换为语音,以便可以切换语调,最终拼接成一个完整的音频文件。因此,脚本必须满足以下要求:它应该包含两个主持人交替的字符串,每行之间用换行符分隔。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
theme: blue
title: ''
type: ''
width: 326
height: 222
id: '1729221609774'
position:
x: 1280.4345077051064
y: 20.482231506748832
positionAbsolute:
x: 1280.4345077051064
y: 20.482231506748832
selected: false
sourcePosition: right
targetPosition: left
type: custom-note
width: 326
- data:
author: Dify
desc: ''
height: 245
selected: false
showAuthor: true
text: '{"root":{"children":[{"children":[{"detail":0,"format":0,"mode":"normal","style":"","text":"对于播客生成器,具体的实现是使用OpenAI的TTS模型。生成的每一行脚本将逐一转换为语音,以便可以切换语调,最终拼接成一个完整的音频文件。因此,脚本必须满足以下要求:它应该包含两个主持人交替的字符串,每行之间用换行符分隔。","type":"text","version":1}],"direction":"ltr","format":"","indent":0,"type":"paragraph","version":1,"textFormat":0}],"direction":"ltr","format":"","indent":0,"type":"root","version":1}}'
theme: pink
title: ' (1)'
type: ''
width: 287
height: 245
id: '17292218657750'
position:
x: 1626.6585757082282
y: 20.482231506748832
positionAbsolute:
x: 1626.6585757082282
y: 20.482231506748832
selected: false
sourcePosition: right
targetPosition: left
type: custom-note
width: 287
viewport:
x: -332.14969910359355
y: 110.39083345145798
zoom: 0.9423718244354472