- 大模型节点可以自定义模型名称、温度、API_KEY、base_url,目前暂时只支持openai类型的API接口调用。
- 可以直接在节点上输入系统提示词、用户提示词,也可以右键将这两个小组件转化成节点的输入,接受字符串类型的输入。
- 大模型节点还可以从tools接口接受工具节点的输出,可以从file_content接口接受字符串形式的输入,这些输入会被当作模型的知识库,以词向量相似度来搜索相关的内容输入到模型中。
- 大模型节点的is_memory可以决定大模型是否拥有记忆,可以将is_memory改为disable,再运行,这时模型会清楚之前的对话记录,再切换回enable,之后的运行中模型就会保留与你的对话记录。
- 可以通过assistant_response来查看本轮对话中模型的回复,也可以通过history来查看多轮对话的历史记录。
- 即使外部参数不变,大模型节点总是会运行,因为大模型对同一个问题也总是有着不同的回答。
- is_tools_in_sys_prompt决定了tools的信息是否会输入到系统提示词中。
- is_locked可以锁住上轮对话的结果,让大模型直接返回上轮对话中的回答。
- main_brain决定了大模型是不是与用户对接的模型,禁用后,LLM节点可以作为另一个LLM节点的一个工具。
- LLM适配GPT4的视觉功能,imgbb_api_key可以输入imgbb的api_key,填入之后你的图片会以url格式传入GPT,如果不填,就是以图片编码的形式传入。
- 目前支持GLM/Llama/Qwen,不过只有GLM的工具调用是完美适配的,其他两个需要大参数版本才能正常工具调用
- model_path和tokenizer_path填入模型的项目文件夹即可,适配所以可以被transformer兼容的型号。
- 其余参数与APILLM节点一致
- file_content节点可以输入一个字符串,该字符串会被作为词嵌入模型的输入,模型会在这个字符串上进行搜索,根据question来返回最相关的文本内容。
- chuck_size为文本分割时,每个文本块的大小,默认为200,chuck_overlap为文本分割时,每个文本块之间的重叠大小,默认为50。
- 输入embedding_path,会调用这个文件夹内的词嵌入模型
- 读取文件的路径在comfyui_LLM_party/file,可以将你要读取的文件放到这个路径下,然后把文件名填入该节点即可
- 可以选择绝对路径输入,这时候path可以接受一个绝对路径
- 输出是一个字符串,包含了文件中所有的文字信息
- 适配的文件格式为:".docx"、".txt"、".pdf"、".xlsx"、".csv"、".py", ".js", ".java", ".c", ".cpp", ".html", ".css", ".sql", ".r", ".swift"
- folder_path可以接受一个文件夹的绝对路径,这个节点会自动读取文件夹中的所有文件。
- 输出是一个字符串,包含了文件夹中所有的文字信息
- 适配的文件格式为:".docx"、".txt"、".pdf"、".xlsx"、".csv"、".py", ".js", ".java", ".c", ".cpp", ".html", ".css", ".sql", ".r", ".swift"
- 可以将一个url中的所有网页内容转化为一个md格式输出
- 输出是一个字符串,包含了网页中所有的文字信息
- 可以返回维基百科中与问题相关的所有内容
- 你可以将这个面具节点作为LLM节点的system_prompt_input,让大模型拥有人格面具的个性。
- LLM会根据你在分类器面具节点上描述的类别将user_prompt分类
- 可以和分类器函数进行配合,将不同类别的文字输出到不同的工作流中
- prompt是将要输入到LLM节点中的system_prompt_input,可以包含一些变量,例如:“你是一个关于{app}的智能客服,你需要生成{text}相关的内容”,其中{text}会自动填充为LLM接收的user_prompt。
- prompt_template包含了prompt中变量的对应规则,一般为json格式,可以以如下格式填入:{"app":"chatgpt"},此时,prompt中{app}将会被自动替换为chatgpt。
- 可以返回一个预设的人格面具,该面具可以作为大模型的system_prompt_input,让大模型拥有人格面具的个性。
- persona文件夹包含了图片提示词助手的人格面具和DAN的人格面具。你可以在这个文件夹中添加更多的面具,以供你使用。
- 可以将带有分类器面具的LLM处理过的的字符串分割为多个字符串,可以配合字符串逻辑控制执行对应的工作流
- option包含以下选项:"A contain B","A not contain B","A relate to B","A not relate to B","A equal B","A not equal B","A is null","A is not null"可供选择
- 当条件为真时,if将输出A字符串,else将输出空字符串,is_ture将输出真,is_false将输出假,否则else将输出A字符串,if将输出空字符串,is_ture将输出假,is_false将输出真
- 可以将输入的字符串直接展示到comfyui界面上
- 输入一个字符串,该字符串会被作为大模型的user_prompt,让大模型拥有人格面具的个性。
- 用于将多个字符串结合成一个字符串
- 这些组合节点可以套娃使用
- 用于将多个工具节点结合成一个工具节点,再输入到大模型中
- 这些组合节点可以套娃使用
- 用于查询时间和天气,时间工具节点可以更改查询的默认时区,天气工具节点未来也会增加改变默认地区的选项(这个免费的天气工具仅限于搜索中国的天气)
- accuweather工具节点需要填入accuweather的apikey,可以查询全球的天气
- 可以输入你的google_api_key和cse_id来使用该节点
- 该节点会返回谷歌搜索中的前10个网址和摘要部分,你可以要求模型翻页,来看更后面的搜索结果
- 可以输入你想要搜索的网址到该节点中作为模型搜索的默认网址。这个节点会将这个网页的所有内容转化成Markdown格式,并返回给模型
- 由于request不是万能的,有些网址会不允许爬取,本项目也不提供恶意的爬虫代码
- 可以输入embedding_path,会调用这个文件夹内的词嵌入模型,工具会将网页内容按照chuck_size、chuck_overlap分割文本,只会返回与用户提问相关的文本信息
- 如果没有embedding_path,会返回网页的所有内容
- 具体功能同词嵌入模型节点,但该节点是一个LLM的工具,可以在模型认为需要查询知识库时,调用这个工具中输入的file_content。
- 可以让大模型生成Python代码后自动运行,并获得代码的运行结果
- 暂时只支持Python代码
- 可以让大模型执行任何事情,大模型将会在一个虚拟环境里下载所需的第三方库,然后执行生成的代码。
- 请小心使用这个工具,因为大模型会获得控制你电脑做任何事的能力!
- url填入需要被访问的网址
- 第一个字符串输入框输入这个API工具的功能,例如:用来查天气的工具。
- 第二个字符串输入框输入这个API工具的参数,例如:用来查天气的工具的参数为:{"city":"beijing"}
- 可以让大模型查询维基百科上相关的内容
- 可以输入embedding_path,会调用这个文件夹内的词嵌入模型,工具会将维基百科内容按照chuck_size、chuck_overlap分割文本,只会返回与用户提问相关的文本信息
- 如果没有embedding_path,会返回维基百科上相关的前1000个字符
- 可以让大模型查询arxiv上相关的论文信息
- 默认搜索query中的研究方向
- 你可以用这个两个节点来定义工作流的起点和终点,将你的工作流放到本项目文件夹下的workflow子文件夹。
- 在本项目文件夹下点击setup_streamlit_app.bat,在streamlit的界面中,点击设置,替换为你的工作流。
- 这样,你就快速构建了一个以streamlit为前端的AI应用。
- 这两个节点都有dialog_id,将dialog_id连接起来,让它们成一个对话存档点。当你需要将两个大模型进行循环连接时,虽然在comfyui中是不能实现的,但是可以将后一个模型的输出保存到本地,再下一次运行时,传递给前一个模型,可以使用comfyui API在其他前端中调用comfyui,只要循环调用,就可以看到两个模型的无限自我对话了。
- 开始对话节点上有开始对话的接口,可以作为一个对话开始时用户给出的提示词,引导大模型在用户给出的主题中讨论。
- 可以让你的工作流调用其他的工作流!
- 将你要嵌入的工作流的开始和结尾都添加开始工作流和结束工作流节点,将这个工作流以api形式保存到comfyui_LLM_party项目的workflow_api文件夹中
- 另开一个工作流,在这个工作流中使用工作流中转器节点,选择你要嵌入的工作流,就完成了。
- 第一次使用工作流中转器节点时,会开启另一个8189端口,请不要关闭这个新的控制台。
- 这些节点都被我魔改了,可以在缺失输入时,不会报错,而是被绕开,我觉得这个功能非常重要,但是comfyui不知道为啥不写这个功能。这个功能可以通过控制工作流的输入有无来控制执行哪一个部分的工作流。