AI相关开发

AI相关工具和技术盘点

基本术语

向量数据库: CloseVector

LLM:大语言模型

介绍几种联系上下文的方式

下面均以langchain为例

image-20240109225128511

  1. Buffer Memory

    存储每段对话作为LLM的新输入

  2. Conversation Sumary Momory

    将对话信息传给LLM进行摘要,将此摘要作为开头部分传入LLM

  3. Conversation Buffer Window Memory

    将最近的k组对话存储起来,作为下一轮的LLM的输入

  4. Conversation Summary Buffer Memory

    第2种和第3种方式的结合,将最近的k组对话存储起来以及[上一轮的摘要+老k组对话]的摘要+新k组对话,作为下一轮的LLM的输入(使用token长度来决定什么时候刷新输入)

    优点,不仅有短期记忆,也有长期记忆

  5. entity memory

    通过LLM提取对话中有关实体的知识并积累

  6. vector store back memory或思维导图记忆方式

    向量数据库匹配或思维导图记忆方式

对长文本做总结的方式

下面均以langchain为例

  1. stuff模式

    直接将document传给LLM做总结

  2. map_reduce模式

    分割多个片段,通过LLM对每个片段进行总结,再将总结拼接再交给LLM总结

  3. refine模式

    分割多个片段,先对第一个片段进行总结,再将前一个片段的总结加上下一个片段进行总结,以此总结递推直到只有一个总结

    优点:增加了总结内容的连贯性

  4. map_rerank模式

    一种搜索答案的匹配方式

    根据一个问题,给每个document片段计算一个能回答这个问题的概率分数,然后找到分数最高的document片段,将其转换为问题的一部分,加问题发送给LLM

    image-20240109230115463

  • 想获得更综合性的知识:使用refine或map_reduce模式
  • 获取更精确的细节知识:使用map_rerank模式

爬虫相关

无头浏览器

无头浏览器是一种不带图形用户界面 (GUI) 的网络浏览器。这意味着它不会显示任何窗口或菜单,而是将其所有输出发送到文本终端或其他输出设备。

无头浏览器通常用于自动化测试和网络抓取,因为它们可以通过编程控制,并且不需要任何用户交互。 有许多不同的无头浏览器可用,包括 PhantomJS、SlimerJS 和 Puppeteer。

这些浏览器都有自己的优点和缺点,因此选择最适合您需求的浏览器非常重要。 无头浏览器可以成为自动化网络任务的有用工具,但必须负责任地使用它们。无头浏览器可以用于爬取网站并提取数据,但也可以用于发起拒绝服务攻击。

现成的ai爬虫项目

gpt-crawler项目

本质是利用无头浏览器实现

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
type Config = {
/** URL to start the crawl, if sitemap is provided then it will be used instead and download all pages in the sitemap */
//从这个url开始爬取
url: string;
/** Pattern to match against for links on a page to subsequently crawl */
//只爬取此正则匹配的url
match: string;
/** Selector to grab the inner text from */
//只从这个选择器中提取文本
selector: string;
/** Don't crawl more than this many pages */
//爬取的页面不超过多少页
maxPagesToCrawl: number;
/** File name for the finished data */
//输出的文件名
outputFileName: string;
/** Optional resources to exclude
*
* @example
* ['png','jpg','jpeg','gif','svg','css','js','ico','woff','woff2','ttf','eot','otf','mp4','mp3','webm','ogg','wav','flac','aac','zip','tar','gz','rar','7z','exe','dmg','apk','csv','xls','xlsx','doc','docx','pdf','epub','iso','dmg','bin','ppt','pptx','odt','avi','mkv','xml','json','yml','yaml','rss','atom','swf','txt','dart','webp','bmp','tif','psd','ai','indd','eps','ps','zipx','srt','wasm','m4v','m4a','webp','weba','m4b','opus','ogv','ogm','oga','spx','ogx','flv','3gp','3g2','jxr','wdp','jng','hief','avif','apng','avifs','heif','heic','cur','ico','ani','jp2','jpm','jpx','mj2','wmv','wma','aac','tif','tiff','mpg','mpeg','mov','avi','wmv','flv','swf','mkv','m4v','m4p','m4b','m4r','m4a','mp3','wav','wma','ogg','oga','webm','3gp','3g2','flac','spx','amr','mid','midi','mka','dts','ac3','eac3','weba','m3u','m3u8','ts','wpl','pls','vob','ifo','bup','svcd','drc','dsm','dsv','dsa','dss','vivo','ivf','dvd','fli','flc','flic','flic','mng','asf','m2v','asx','ram','ra','rm','rpm','roq','smi','smil','wmf','wmz','wmd','wvx','wmx','movie','wri','ins','isp','acsm','djvu','fb2','xps','oxps','ps','eps','ai','prn','svg','dwg','dxf','ttf','fnt','fon','otf','cab']
*/
resourceExclusions?: string[];
/** Optional maximum file size in megabytes to include in the output file */
maxFileSize?: number;
/** Optional maximum number tokens to include in the output file */
maxTokens?: number;
};

实例:

1
2
3
4
5
6
7
8
9
10
import { Config } from "./src/config";

export const defaultConfig: Config = {
url: "https://www.bilibili.com/video/BV1jG411q72C",
match: "https://www.bilibili.com/video/BV1jG411q72C",
maxPagesToCrawl: 1,
outputFileName: "output.json",
//maxTokens: 2000000,
};

.desc-info-text :b站简介

.video-title :b站标题

.reply-content :b站评论

PlaywrightCrawler

1
PlaywrightCrawler 

是一个用于爬取网站数据的工具,它是基于Playwright库构建的,可以模拟浏览器行为来爬取网页内容。这个错误可能是由于超时设置或选择器的问题导致的。

SeleniumCrawler

gemini正确的回复如下:

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
{
"candidates": [
{
"content": {
"parts": [
{
"text": "您好!很高兴为您服务。请问您有什么想了解或需要帮助的吗?"
}
],
"role": "model"
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
}

//发送了一个.的情况
{
"candidates": [
{
"finishReason": "RECITATION",
"index": 0
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"probability": "NEGLIGIBLE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "LOW"
},
{
"category": "HARM_CATEGORY_HARASSMENT",
"probability": "LOW"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"probability": "NEGLIGIBLE"
}
]
}
}

{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unexpected token.\n\": \n }\n ]\n \n ^",
"status": "INVALID_ARGUMENT"
}
}

gemini有效的提示

获取格式化后的时间

1
2
3
4
5
6
7
8
9
10
11
12
13
现在时间是202411014:33,请将接下来这句话提取出具体的时间和具体提醒项,按照"xxxx年xx月xx日xx:xx|做什么事"回复给我:

//如:
明天和后天晚上6点提醒我吃饭

//返回:
202411118:00|吃饭
202411218:00|吃饭

现在时间是202411014:33,请将接下来这句话提取出具体的时间和具体提醒项,按照"ISO日期时间字符串|做什么事"回复给我:明天和后天晚上6点提醒我吃饭

2024-01-10 23:07转换成schedule.scheduleJob的第一个参数
"07 23 10 1 2024"

ts的定时库:node-cron

总结精炼

1
用中文总结精炼这段网页信息的重点内容:
1
docker run -ti --rm --volume="$(pwd)":/share/homes/zeroko14/bot wechaty/wechaty /share/homes/zeroko14/bot/bot.ts

本地大模型

Ollama

下载地址

模型库

mac开放ollama对外连接

相关命令

  • 展示本地大模型列表:ollama list

  • 删除单个本地大模型:ollama rm 本地模型名称

  • 启动本地模型:ollama run 本地模型名

  • 查看本地运行中模型列表:ollama ps

  • 复制本地大模型:ollama cp 本地存在的模型名 新复制模型名

  • 下载或者更新本地大模型:ollama pull 本地/远程仓库模型名称

    模型名称格式为:模型名称:参数规格;如ollama pull qwen2:0.5b

终端对话中命令

  1. 若需要输入多行文本,需要用三引号包裹,如:"""这里是多行文本"""
  2. /clear清除对话上下文信息
  3. /bye则退出对话窗口
  4. /set parameter num_ctx 4096可设置窗口大小为 4096 个 Token,也可以通过请求设置,如:curl <http://localhost:11434/api/generate> -d '{ "model": "qwen2:7b", "prompt": "Why is the sky blue?", "options": { "num_ctx": 4096 }}'
  5. /show info可以查看当前模型详情:
  6. 启动服务:ollama serve

API接口

Ollama 默认提供了generatechat这 2 个原始的 API 接口,使用方式如下:

  1. generate接口的使用样例:

    1
    2
    3
    4
    curl http://localhost:11434/api/generate -d "{
    'model': 'qwen:0.5b',
    'prompt': '为什么天空是蓝色的?'
    }"
  2. chat接口的使用样例:

    1
    2
    3
    4
    5
    6
    	curl http://localhost:11434/api/chat -d '{
    "model": "qwen:7b",
    "messages": [
    { "role": "user", "content": "为什么天空是蓝色的?" }
    ]
    }'

盘点某些本地大模型

qwen2.5-coder模型

llama3.1

qwen2.5-coder

修改本地模型上下文

创建一个修改了上下文长度的本地大模型,因为默认的上下文都非常短

创建文件Qwen2.5Coder

1
2
FROM qwen2.5-coder:7b
PARAMETER num_ctx 32768

ollama create -f Qwen2.5Coder qwen2.5-coder-ottodev:7b

Qwen2.5Coder就是指的上面的文件

Aider

安装方式: python -m pip install aider-chat

  • /add 文件名:指定编写的代码写入哪个文件
  • /drop:解除与文件的联系
  • /quit 退出程序
  • {多行文本问答}

官方文档用法参考

Aider中个模型的基准测试

更新方式: pip install --upgrade aider-chat

vscode aide拓展

配套Aider使用

官方参考文档

One-api

可以把多种ai模型接口统一为openai格式

注意类openai通信协议中所有的base格式不用写后面的v1及其后续内容

one-api开放地址

执行命令docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /Users/zeroko/Documents/one-api:/data justsong/one-api

免费API平台盘点

Groke 注意,支持Whisper Large V3 Turbo等模型,音频转文字,音频文件需小于25MB,以及视觉识别模型

SambaNova 带速率限制的免费版本,亮点:提供llama-3.1-405b模型调用

Vertex 绑定信用卡300美金,不绑定150美金额度 参考此处

Cerebras 使用频率限制比Groke宽松,每分钟30个,每小时900个 特色:在线对话支持语音对话 需要申请 用法记录

Mistral 每秒一次请求,其中最强的模型性能与gemini flask持平

grok 每月25美金 官方地址

GLHF 测试阶段完全免费使用,没有任何限制,支持所有开源模型,Hugging Face所有开源模型,理论上包含DeepSeek V2模型,但是实际上跑不起来,自定义运行功能效果不好 地址

白嫖Groq API教程 2024末前两个月每月25美金

github models上的模型可以通过litellm来免费使用 参考视频

Open Router提供了Gemini2.0 Flash免费API 以及 DeepSeekV3的免费api

Hyperbolic 注册即送10美金

any router 可申请calude api 新人送50美金额度

SuperMaven

免费实现自动补全,响应非常快

cline

apiBase的配置是到v1前一层(即看不到v1),比如说deepseek的apiBase: https://api.deepseek.com

Continue

vscode ai对话拓展

配置格式参考

image-20241020143516494

注意apiBase的设置到v1那一层

litellm

可以将非openai兼容的api转换成openai兼容的api

pip install litellm

如果缺乏依赖: pip install 'litellm[proxy]'

使用类似Aider,因为Aider后端也使用的是Aider

litellm --model mistral/mistral-large-latest

启动后的Base URL为http://localhost:4000

API KEY随意填写,模型名称填mistral-large-latest

github models转换为类openai接口

参考链接,但以失败告终

1
2
3
export GITHUB_API_KEY=xxxxxxx
#使用此命令来启动litellm的服务器
litellm --model github/gpt-4o

将显示作为代理的Base URL,模型设置为gpt-4o

image-20241109002541457

AI请求反代服务器

上述项目支持Groq,Google,OpenAI,sambanova,Cerebras

但实测似乎只支持python调用,而不支持api调用?

下面反向代理项目支持一切

反向代理开源vercel部署项目

访问https://你的域名/https/github.com/souying/serverMmon/ 实际上会替换为https://github.com/souying/serverMmon/

无限邮箱方式

可使用无限邮

除此之外,谷歌邮箱可以当无限邮箱使用

vscode相关拓展

vscode 拓展,仿cline

cline开源

AI Toolkit for Visual Studio Code

Tabby 开源自托管补全

Codeium 对话补全免费

codegeex 可以一键生成代码地图 幽灵助手

Buddy - Cursor平替 Buddy是一个中文的类似Continue的插件,APIBase同样是到v1那一层

Roo Code 是cline的分支

谷歌推出的ai编程助手插件Gemini Code Assist

Marscode 字节跳动的ai编程插件 现已可以免费使用deepseek r1

编程提示词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Role    
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。
# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。
在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。
## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。
### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。
### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。
## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中

比方说添加在cursor的设置中的Rules for AI

但把Rules for AI完全写死不是个好主意,可以使用.cursorrules,可以认为这是个更高级的项目定制系统提示词的模式。

如果你的项目需要更细致的规则,那么可以在项目根目录下创建一个 .cursorrules 文件。这样,Cursor 会自动加载其中的定制化指令,为这个项目量身打造生成效果

腾讯云算力云端主机

cloud studio 网址

每月免费50000分钟

带显卡,32G内存

Cloud Studio 安装ollama及Qwen2.5 Coder 32B示范

参考链接

大模型函数调用开发

函数调用使语言模型能够使用外部工具,从而将模型与数字和物理世界紧密联系起来。

这是一个强大的功能,可以用于实现广泛的用例。

  • 调用公共 API 执行各种操作,从查询足球比赛结果到获取实时卫星定位数据
  • 分析内部数据库
  • 浏览网页
  • 执行代码
  • 与物理世界互动(例如预订机票、打开特斯拉车门、控制机械臂)

grok官网参考的函数调用流程

流程图参考
mermaid

步骤如下:

设计函数接口

能真正实现函数接口功能的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def open_website(url):
pass

def click(html, button):
pass

def assistant():
input = Input("Hello! I am here helping you to navigate a website! What do you want to do?")
html = open_website(url)
button1 = ... # parse out a button from input magically
html = click(html, button1)
button2 = ... # parse out another button from input magically
html = click(html, button2)
input2 = Input("Voilà we are done! Do you want to join xAI? :)")
button3 = ... # parse out a button from input2 magically
html = click(html, button3)
...
input3 = Input("We will get back to you soon!")

描述函数

用于传递给AI来定义格式的

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
functions = [
{
"name": "open_website",
"description": "Open a website and return the HTML as a string",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "A URL",
"example_value": "https://x.ai/",
},
},
"required": ["url"],
"optional": [],
},
},
{
"name": "click",
"description": "Click any button on a website and returns the new HTML",
"parameters": {
"type": "object",
"properties": {
"html": {
"type": "string",
"description": "A HTML",
},
"button": {
"type": "string",
"description": "A text description of a button on the html page",
},
},
"required": ["html", "button"],
"optional": [],
},
},
]

将助手与功能连接起来

首先,让我们从助手那里获取工具执行请求。为此,我们需要开始将函数定义、系统提示和任何先前的对话传递给助手。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from openai import OpenAI
import json

MODEL_NAME = "grok-beta"
XAI_API_KEY = os.getenv("XAI_API_KEY")

client = OpenAI(
api_key=XAI_API_KEY,
base_url="https://api.x.ai/v1",
)

tools = [{"type": "function", "function": f} for f in functions]

messages = [
{"role": "system", "content": "You are a helpful webpage navigation assistant. Use the supplied tools to assist the user."},
{"role": "user", "content": "Hi, can you go to the career page of xAI website?"}
]

response = client.chat.completions.create(
model=MODEL_NAME,
messages=messages,
tools=tools,
)

如果助手决定不需要调用工具。在这种情况下,响应将以聊天完成的正常方式直接回复用户。这通常发生在助手希望用户澄清或用户询问一些不需要函数调用的问题时。

或者,如果助手决定需要调用工具,则响应将包含函数调用请求。您可以在下面看到一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Choice(
finish_reason='tool_calls',
index=0,
logprobs=None,
message=chat.completionsMessage(
content="I am opening the xAI website to navigate to the career page.",
role='assistant',
function_call=None,
tool_calls=[
chat.completionsMessageToolCall(
id='call_1234',
function=Function(
arguments='{"url":"https://x.ai/"}',
name='open_website'),
type='function')
])
)

接下来,我们需要处理来自模型的工具执行请求。让我们实现模型将调用的函数。

1
2
3
4
5
6
7
8
9
tool_call = response.choices[0].message.tool_calls[0]
arguments = json.loads(tool_call['function']['arguments'])

url = arguments.get('url')

# Call the open_website function with the extracted url

html = open_website(url)

最后,我们需要将工具执行结果提供给模型。考虑一下模型可能决定需要更多函数调用的可能性。然后,模型将生成另一个函数调用请求,或者根据函数调用结果生成对用户的响应。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Create a message containing the result of the function call

function_call_result_message = {
"role": "tool",
"content": "<html>...<html>",
"tool_call_id": response['choices'][0]['message']['tool_calls'][0]['id']
}

# Prepare the chat completion call payload

messages = [
{"role": "system", "content": "You are a helpful webpage navigation assistant. Use the supplied tools to assist the user."},
{"role": "user", "content": "Hi, can you go to the career page of xAI website?"}
response['choices'][0]['message'],
function_call_result_message
]

response = client.chat.completions.create(
model=MODEL_NAME,
messages=messages,
tools=tools,
)

AI IDE盘点

Aide IDE

独特优势:

  • 前瞻性方式主动建议修复
  • 可以使用原生回滚,不依赖于git
  • 需要自己提供LLM,对接众多LLM

Exponent

全栈应用生成AI

目前还在早期访问阶段,预约没被通过

盘点一些开源AI项目

浏览器使用/拓展

browser-use

参考使用链接

浏览器自动化拓展Midscene

bolt.new-any-llm

开源地址

闲鱼开源监控

基于 Playwright 和 Al 过滤的闲鱼多任务实时/定时监控与智能分析工具,配备了功能完善的后台管理界面,帮助用户节省闲鱼商品过滤,能及时找到心仪商品

ai-goofish-monitor

人声生成,带情绪

Chatterbox 是全球首个支持强烈情绪控制的开源TTS 模型

解除cursor机器限制使用

全平台开源解决方案下载链接地址,会给予一个vscode拓展

命令栏输入install from vsix,选中下载的文件,就会安装上扩展

于是命令栏就可以输入Fake Cursor:Fake Machine,就会显示:修改成功!路径: C:\Users\ADMIN\AppData\Roaming\Cursor\User\globalStorage\storage.json新的 machineId: be5b885c-fa9b-49d7-b152-3a4522a0625a

最后命令栏输入Developer:Reload Window就可以正常使用了

模型支持浏览器搜索

可以配合浏览器插件page-assist使用

搜索内容解析模型: nomic-embed-text ,ollama可以安装

AI模型运行要求

b52529e9ea29e15d98eb9a87b218f88c

前端绘制网站盘点

bolt.new

v0.dev

  • Lovable:用于快速Web应用原型的流行工具。
  • Vercel v0:在创建可视化原型方面获得了开发者的良好反馈。
  • Replit:支持快速构建和部署项目,有开发者用一个周末就上线了网站。
  • Bolt.new:可生成基于React Native和Expo的移动应用。

deepseek r1函数调用功能赋予

FunctionCallBridge 是一款让不支持function call的模型通过提示词方式支持兼容function call格式的桥接插件

把原有ollama 接口http://localhost:11434/v1/chat/completions 替换为调用

FunctionCallBridge 的http://localhost:5000/v1/chat/completions

实际效果未经测试

AI建模

200月度积分ai文本生成模型,图像生成模型,材质生成

便宜域名盘点

xyz域名,全网最便宜的平台,0.67美刀一年,续费同价

AI小工具盘点

唇形同步

AI图片去水印

AI语音输入法

AI与github项目对话 deepwiki

免费ai代码工程师agent,支持所有IDE中插件

ai牛马agent,开源可接本地模型

ai桌面开源助手,记住每一个操作

comfyUI

光影工作流

img

img

抠图

BiRefNet抠图 2025.6.10开源模型中效果最好的技术之一

换背景

Brushnet2.0 支持SD1.5和SDXL的模型

  • SD1.5 是基于512*512来训练的
  • SDXL 是基于1024*1024来训练的

打光

LBM: 打光后会降低画质 LBM有一个致命缺陷,打光后会改变图像细节

提高画质

Flux优化画质 Flux虽然对图像尺寸没有明确限制,但是最好还是控制在2k以内,否则会脱离模型出图的舒适区

高低频细节恢复

打光多多少少会改变图像细节,因此这块才是该工作流中最核心的部分

ai动效制作流程

即梦ai里制作3D图标

提示词:

1
一个汉堡3d卡通图标,不要有拟人的表情,ios统表情符号风格,白色背景

使用这款工具可以免费使用gemini的图像处理模型先把主体抠出来

在即梦首尾帧生成视频

1
2
#视频提示词参考
碗里的食物从碗 底中慢慢生长出来,首先是米饭满满从碗底生长出来,然后上边冒出其他食材,最终达到参考图里的状态,保持画面中元素不变,效果必须自然

视频导出照片序列,再使用iSparta生成apng(苹果),webp(安卓)或gif(demo演示)三种格式

AI相关开发理论盘点

12个原则用于构建真正可以交付给生产客户使用的LLM驱动软件

深入理解LLM核心原理

ai手办制作流程

一些小程序号称可以免费做:如AI图文创作工坊

造物相机(付费直接出手办)

出图可以使用谷歌的图片模型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
中文关键词1:

使用nano-banana模型,绘制图中的角色,1/7比例的商业化手办,写实风格,真实环境,手办放在电脑桌上,电脑屏幕里的内容为该手办的建模过程。

中文关键词2:
使用nano-banana模型,绘制图中的角色,1/7比例的商业化手办,写实风格,真实环境,手办放在电脑桌上,手办使用圆形透明亚克力底座,底座上无文字,电脑屏幕里的内容为该手办的Zbrush建模过程,电脑屏幕旁放着印有原画的BANDAI风格的玩具包装盒。

中文关键词3(底座水印可以改为自己的创意)
使用 nano-banana 模型,生成一款商业化的1/7手办,角色为图片中的人物,写实风格,真实环境,手办被放置在干净的桌面上,旁边有一个macbook,屏幕里是在浏览一个杂志网站,网站显示一张大图就是原图,环境是暖光源设计工作室内,手办配有圆形透明亚克力底座,底座上有浅浅的水印“MFF”

英文关键词1:
Use the nano-banana model to create a 1/7 scale commercialized figure of the character in the illustration, in are alistic styie and environment.Place the figure on a computer desk, using a circular transparent acrylic base.

英文关键词2:
Using the nano-banana model, create a 1/7 scale commercial figure of the character in the image, in a realistic style and authentic environment. The figure is placed on a computer desk, with the computer screen displaying the C4D modeling process of the figure. Beside the screen, there is a BANDAI-style plastic toy packaging box printed with the original artwork. On the computer desk, there are also tools for making the figure, such as brushes, paint, a knife, etc.

使用转3D模型

提示词工程指导

参考这篇文章

Nano Banana用法盘点

界面操作Nano Banana开源项目

开源最全提示词盘点

参考链接

  • 制作手办

    • 创建一个1/7比例的商业化手办,角色来自插图,风格和环境要逼真。将手办放置在电脑桌上,使用无文字的圆形透明亚克力底座。在电脑屏幕上显示手办的ZBrush建模过程。电脑屏幕旁边放置一个印有原始艺术作品的BANDAI风格玩具包装盒。
    • create a 1/7 scale commercialized figure of thecharacter in the illustration, in a realistic styie and environment.Place the figure on a computer desk, using a circular transparent acrylic base without any text.On the computer screen, display the ZBrush modeling process of the figure.Next to the computer screen, place a BANDAl-style toy packaging box printedwith the original artwork.
  • 玩cosplay

    • 只需要给NB一张你的照片,和你想cos的角色的照片,提示词非常简单:让图一的人物cosplay图二的角色,服饰、妆容、道具和图二一致
  • 换动作

    • 让图二的人物做出图一的动作。
  • 产品内部结构图

    • 超详细的产品爆炸视图,金属部件和电子元件悬浮在空中,完美对齐,揭示内部结构,未来科技美学,8K分辨率,柔和的电影灯光,高度逼真。
    • 提示词在此:Ultra-detailed exploded view of a product, metallic parts and electronic components floating in mid-air, perfectly aligned, revealing inner structure, futuristic technology aesthetic, 8K resolution, soft cinematic lighting, highly realistic.
  • 转线稿 & 上色

    • 按图一的色卡的配色给图二的线稿上色。
  • 制作游戏UI

    • 示例1:一张幻想RPG游戏截图,特色是图中的单一主角站在中心,手持一本书和一根火炬,详细的废墟寺庙环境,古老的石柱、藤蔓、彩色玻璃窗、发光的魔法氛围,电影灯光。包含RPG风格的UI元素:角落的角色肖像、顶部的生命值和法力值条、右下角的小地图、底部的对话文本“这一定是地方…”。高度详细,动漫风格的游戏艺术,沉浸式氛围,超高质量。

    • 示例2:一张galgame视觉小说截图,设置在奢华的洛可可风格城堡内部,装饰华丽,吊灯、金色细节、优雅家具和柔和的色彩。图中的单一角色站在前景中央,动漫风格插图,表情丰富。包含galgame UI元素:底部的对话文本框用英文显示角色名,选择菜单按钮,干净的界面设计。柔和的灯光,浪漫的氛围,高质量视觉小说风格艺术作品。

  • 漫画分镜

    • 根据图片内容生成九格漫画,用画面和镜头讲故事。
  • 生成漫画:

    第一步,给一张真实的自动驾驶汽车照片,提示词「turn this into black-and-white manga」,AI 将照片转换为黑白漫画风格,不仅保留了车辆和背景的细节,还添加了动态效果。

    第二步,加一句提示 「make the next panel a funny cat-related twist」,模型就生成了下一帧:车里出现了一只猫,还配了幽默的对话框「Mission Complete!」

    总之,nano banana 不仅能改风格,还能顺着提示自动编故事,生成连贯的漫画。

  • 修复老照片,上色

    对于修复老照片、给黑白照片上色等常规操作,Nano Banana 更是手拿把掐。

    提示词:Restore this photograph.

    提示词:Add color to this photo.

  • 打光

    • 示例1:给这个男人生成一张艺术肖像照片,通过半明半暗的打光效果,赋予男人亦正亦邪的特征。
    • 示例2:让这张照片中的天空变成晚霞的颜色,空中有很多鸟在飞,和原图融为一体。
  • 做商品图

    • 示例1:给被子上面印上lv老花。
    • 示例2:做一张口红的商品宣传海报,图中的女人手握口红,看向镜头。
  • 生图 + 推理能力

    • 物件标记: 你是一个基于位置的AR体验生成器。突出显示图像中的[兴趣点]并注释相关信息。

      1
      前谷歌产品经理 Bilawal Sidhu 直接上传了现实中的建筑截图,让 nano banana 标注相关信息,提示词:you are a location-based AR experience generator. highlight [point of interest] in this image and annotate relevant information about it.
    • 可以直接给几何题图片让他标记并讲解

  • 今日穿搭,关键词:OOTD: outfit of the day: 今日穿搭

    现在只要上传一张穿搭照片,nano banana 就能秒出穿搭清单。

    提示词:give me this character ootd.

  • 换发型换眼镜

  • 模型和工业设计中的常见六视图

    1
    2
    3
    它还能做出类似产品建模或工业设计里常见的六视图,主体在各个角度都保持一致,同时还保留等距视角效果。

    提示词:Front, Rear, Left, Right, Top, Bottom views on white. Evenly spaced. Consistent subject. Isometric Perspective Equivalence. (在白色背景上展示正面、背面、左侧、右侧、顶部和底部视图,间距均匀,主体一致,保持等距视角。)
  • 地图变成实景

    上传东京塔、金门大桥的谷歌地图截图,在上面标个红色箭头,输入提示词 「what does the red arrow see」,模型就像人站在某个地点朝某个方向看一样,生成箭头标记位置和方向的景色

    甚至是一张虚构的旧金山 - 纽约混合城市地图的红箭头视角,它都能生成接近真实景观的图像。

    提示词:draw the ground level view of the red arrow in SanFranciscoNewYork.

  • 生成电影分镜

    更绝的是,nano banana 还能识别手绘内容,并根据手绘姿势生成复杂的战斗场景。

    只需提供两个角色图像,再加上一张手绘简笔画指定战斗姿势,输入提示词「Have these two characters fight using the pose from Figure 3. Add appropriate visual」,AI 就能将这些元素整合,还能添加丰富的背景和特效。

  • 顶级肖像

    将上图转换为一张摄影棚拍摄的顶级肖像照,要求半身照,动作协调自然,特写镜头,聚焦在面部。 人物的服装和动作改为都市休闲风格,整体氛围偏向深邃但不刻意。整体效果安静、深邃且温柔。背景呈现柔和渐变效果,营造出层次感与寂静氛围。细腻的胶片颗粒质感为画面增添了一种可触摸的、模拟摄影般的柔和质地,让人联想到经典的黑白摄影。 一束温柔的定向光,柔和地漫射开来,轻抚他的面颊曲线,或在眼中闪现光点——这是画面的情感核心。其余部分以大量负空间占据,刻意保持简洁,使画面自由呼吸。画面中没有文字、没有标志——只有光影与情绪交织。顶级摄影师的人物肖像照风格,非中心构图

  • 简历肖像

    1
    2
    3
    4
    #Nano Banana 提示词-高级简历照提示词(英文推荐版)
    Transform the uploaded casual photo into a high-end professional business portrait for a resume. Keep the original face and identity fully consistent. The composition should be a formal head-and-shoulders shot, 1:1 aspect ratio, with clean framing and balanced proportions. The man should wear a premium solid-colored dress shirt (navy blue, charcoal gray, or light blue), with a visible collar, neat and elegant, no logos or patterns. Use a subtle gradient or textured studio background in warm neutral tones (light gray or soft beige), softly blurred to create depth. Apply soft studio lighting that highlights the facial features naturally, with realistic skin tones and high clarity. The overall atmosphere must feel confident, approachable, and modern, with a relaxed but professional expression. The photo should look like a refined corporate headshot suitable for resumes or LinkedIn. --no text, logos, clutter, watermarks, artistic effects, or distracting elements
    #Nano Banana 提示词-高级简历照提示词(中文版)
    将上传的生活照片转换为一张高端的男士商务简历照。  保持人物的原始面部特征和身份完全一致。  构图为正式的头肩半身照,1:1 长宽比,画面干净,比例均衡。  人物穿着高质感的纯色衬衣(海军蓝、深灰或浅蓝),必须有领,整洁优雅,无图案或标志。  背景为柔和的渐变或微纹理摄影棚背景,颜色选择中性色(浅灰或米色),并略微虚化以增加景深。  采用柔和的棚拍光线,自然突出面部特征,肤色真实,清晰度高。  整体氛围应当自信、亲和、现代,表情自然放松且专业。  最终照片应呈现出精致的企业高管风格,适合用于简历或 LinkedIn。  --不要文字、标志、水印、杂乱或艺术滤镜效果

claude code

一键配置工具

完全指南

claude code路由,用于连接所有大模型的calude code route配置方式参考

换行操作如下:

  • Linux/macOS:用反斜杠 \ 结尾再按Enter 换行
  • Windows:用 ^结尾再按 Enter换行

MCP盘点

一人AI公司

一人AI公司工具推荐