这是为Open Source AI Challenge with pgai 和 Ollama的提交。
我建了啥作为一个非专业设计师,我希望能为我的博客和项目制作吸引人的帖子和封面图片。我想象了一个工具,可以让我选择一张基础图片,高亮特定区域,并用自然语言告诉AI我想要的编辑,以克服当前文本生成图像时的不可预测问题。
让我们来看看Design0——我创建的一个由AI驱动的设计工具,用于通过自然语言命令简化图像编辑。使用Design0,你可以搜索图片资料库(我已经包含了5,000张免费的Unsplash图片作为演示)。找到你的图片后,只需拖放以遮挡编辑区域,然后写下你想要的修改描述。点击“编辑”并见证神奇发生!
示例网站
源码
https://github.com/ppaanngggg/design0
截图
搜索你想要的基础图片
- 选择你想要编辑的区域后,然后输入你的编辑提示
点击“编辑...”,然后等待新图片出现。
pgvector
:我使用pgvector
来存储图像的嵌入向量作为向量数据类型。我还给这些嵌入添加了HNSW索引以加快搜索速度。
如果不存在则创建表 images
(
id varchar PRIMARY KEY,
url varchar,
category varchar,
description varchar,
embedding vector(768) -- 这是一个特定的数据类型或结构
);
如果不存在则创建索引 images_embedding_idx ON images
USING hnsw (embedding vector_cosine_ops); -- hnsw 是一种特定的索引类型,vector_cosine_ops 表示向量余弦相似度操作
pgai
: 我用pgai
调用 Ollama 的嵌入 API,并根据嵌入的距离搜索图片。
```sql = f"SELECT id,url,category,description,embedding<=>ai.ollama_embed('nomic-embed-text', %s, host=>'{conf.ollama_host}') as 距离 FROM images"-- 此SQL命令用于从images表中选择id, url, category, description, embedding,并计算embedding与给定值之间的距离,将结果命名为距离。
3. `Ollama`:我用Ollama托管最先进的紧凑型文本嵌入模型`nomic-embed-text`。该模型可以嵌入图像描述和用户查询,帮助我们找到符合用户需求的图像。
## 感想
这个演示展示了我的2D图像设计软件。我旨在将其发展成为一个功能齐全的SaaS平台,让非专业人士也能自己创作出惊艳的作品。
我用Ollama来托管这个嵌入模型,这让我有资格获得'Ollama开源模型'奖。