生成式AI
生成式AI可用于根据跟踪对象的缩略图自动生成描述性文本。这有助于Frigate中的语义搜索,为跟踪对象提供更多上下文信息。描述可通过Frigate界面中的浏览页面访问,点击跟踪对象的缩略图即可查看。
描述请求会在跟踪对象生命周期结束时自动发送给您的AI提供商,也可以选择在帧发生显著变化后提前发送,例如用于更实时的通知场景。描述也可以通过Frigate界面手动重新生成。请注意,如果您在跟踪对象结束前手动输入描述,该描述将被生成的响应覆盖。
配置
生成式AI可以为所有摄像头启用,或仅为特定摄像头启用。目前有3种原生提供商可与Frigate集成。支持OpenAI标准API的其他提供商也可使用。请参阅下面的OpenAI部分。
要使用生成式AI,您必须在Frigate配置的全局层级定义一个提供商。如果您选择的提供商需要API密钥,可以直接将其粘贴在配置中,或存储在环境变量中(以FRIGATE_
为前缀)。
genai:
enabled: True
provider: gemini
api_key: "{FRIGATE_GEMINI_API_KEY}"
model: gemini-1.5-flash
cameras:
front_camera: ...
indoor_camera:
genai: # <- 为室内摄像头禁用GenAI
enabled: False
Ollama
不建议在CPU上使用Ollama,高推理时间会使生成式AI变得不实用。
Ollama允许您自托管大型语言模型并保持所有内容在本地运行。它在llama.cpp上提供了一个很好的API。强烈建议在配备Nvidia显卡的机器或Apple silicon Mac上托管此服务器以获得最佳性能。
大多数7b参数的4位视觉模型都能在8GB显存中运行。也有可用的Docker容器。
并行请求也有一些注意事项。您需要设置OLLAMA_NUM_PARALLEL=1
并选择适合您硬件和偏好的OLLAMA_MAX_QUEUE
和OLLAMA_MAX_LOADED_MODELS
值。请参阅Ollama文档。
支持的模型
您必须使用支持视觉的图生文模型。当前模型变体可在其模型库中找到。在撰写本文时,这包括llava
、llava-llama3
、llava-phi3
和moondream
。请注意,Frigate不会自动下载您在配置中指定的模型,您必须先将模型下载到您的Ollama本地实例,例如在Ollama服务器/Docker容器上运行ollama pull llava:7b
。请注意,Frigate配置中指定的模型必须与下载的模型标签匹配。
您应至少有8GB可用RAM(或在GPU上运行时为显存)来运行7B模型,16GB运行13B模型,32GB运行33B模型。
配置
genai:
enabled: True
provider: ollama
base_url: http://localhost:11434
model: llava:7b
Google Gemini
Google Gemini有一个免费层级,允许每分钟15次查询到API,这对于标准Frigate使用来说已经足够。
支持的模型
您必须使用支持视觉的图生文模型。当前模型变体可在其文档中找到。在撰写本文时,这包括gemini-1.5-pro
和gemini-1.5-flash
。
获取API密钥
要开始使用Gemini,您必须首先从Google AI Studio获取API密钥。
- 接受服务条款
- 从右侧导航栏点击"获取API密钥"
- 点击"在新项目中创建API密钥"
- 复制API密钥用于您的配置
配置
genai:
enabled: True
provider: gemini
api_key: "{FRIGATE_GEMINI_API_KEY}"
model: gemini-1.5-flash
OpenAI
OpenAI没有为其API提供免费层级。随着gpt-4o的发布,价格已经降低,如果您选择此路线,每次生成应该只需几分钱。
请注意,如果您的摄像头位于公共领域(例如过道)等会检测过多对象的地方,过多的对象可能会很快耗尽您的资源包。请务必不要开启后付费模式!
支持的模型
您必须使用支持视觉的图生文模型。当前模型变体可在其文档中找到。在撰写本文时 gpt-4o
和 gpt-4-turbo
都支持图生文功能。
如果您选择国内兼容OpenAI API的大模型提供商,请注意选择支持图生文的模型。例如腾讯云的hunyuan-vision
模型。DeepSeek官方目前未提供其图生文DeepSeek-VL2
模型的API,但可以在第三方服务商处获取由他们部署的版本。
获取API密钥
要开始使用OpenAI,您必须首先创建API密钥并配置计费。
配置
genai:
enabled: True
provider: openai
api_key: "{FRIGATE_OPENAI_API_KEY}"
model: gpt-4o
要使用兼容OpenAI API的其他服务商(例如阿里云和腾讯云等国内云厂商),需要设置环境变量 OPENAI_BASE_URL
为您的服务商的API endpoint。
Azure OpenAI
微软通过Azure OpenAI提供了几种视觉模型。需要订阅。
支持的模型
您必须使用支 持视觉的图生文模型。当前模型变体可在其文档中找到。在撰写本文时,这包括gpt-4o
和gpt-4-turbo
。
创建资源并获取API密钥
要开始使用Azure OpenAI,您必须首先创建资源。您需要您的API密钥和资源URL,其中必须包含api-version
参数(参见下面的示例)。配置中不需要模型字段,因为模型是您部署资源时选择的部署名称的一部分。
配置
genai:
enabled: True
provider: azure_openai
base_url: https://example-endpoint.openai.azure.com/openai/deployments/gpt-4o/chat/completions?api-version=2023-03-15-preview
api_key: "{FRIGATE_OPENAI_API_KEY}"
使用方法和最佳实践
Frigate的缩略图搜索擅长识别跟踪对象的特定细节 - 例如,使用"图像标题"方法查找"穿黄色背心的人"、"在草坪上奔跑的白狗"或"住宅街道上的红色汽车"。为了进一步增强这一点,Frigate的默认提示设计为询问您的AI提供商有关对象行为背后的意图,而不仅仅是描述其外观。
虽然生成检测对象的简单描述很有用,但理解意图提供了更深层次的洞察。Frigate的默认提示不仅识别场景中的"什么",还旨在推断"为什么"它可能在那里或"什么"它可能会做下一步。描述告诉您发生了什么,但意图提供了上下文。例如,一个人走向门可能看起来像访客,但如果他们在下班后快速移动,您可以推断潜在的闯入企图。检测到一个人在夜间在门附近徘徊可以比简单地注意到"一个人站在门旁"更快触发警报,帮助您根据情况上下文做出响应。