Skip to content

Commit 31d909b

Browse files
authored
feat(tools): New Qdrant Tool (#644)
* feat: Qdrant tool Signed-off-by: Anush008 <anushshetty90@gmail.com> * docs: Updates Signed-off-by: Anush008 <anushshetty90@gmail.com> * Apply suggestions from code review Signed-off-by: Anush008 <anushshetty90@gmail.com> * chore: Updated placeholder text Signed-off-by: Anush008 <anushshetty90@gmail.com> * chore: Post merge updates Signed-off-by: Anush008 <anushshetty90@gmail.com> * chore: visibility to 'user-only' Signed-off-by: Anush008 <anushshetty90@gmail.com> --------- Signed-off-by: Anush008 <anushshetty90@gmail.com>
1 parent f5a64f4 commit 31d909b

File tree

14 files changed

+876
-1
lines changed

14 files changed

+876
-1
lines changed

apps/docs/content/docs/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"outlook",
3535
"perplexity",
3636
"pinecone",
37+
"qdrant",
3738
"reddit",
3839
"s3",
3940
"schedule",
Lines changed: 176 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,176 @@
1+
---
2+
title: Qdrant
3+
description: Use Qdrant vector database
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="qdrant"
10+
color="#1A223F"
11+
icon={true}
12+
iconSvg={`<svg className="block-icon" fill='none' viewBox='0 0 49 56' xmlns='http://www.w3.org/2000/svg'>
13+
<g clip-path='url(#b)'>
14+
<path
15+
d='m38.489 51.477-1.1167-30.787-2.0223-8.1167 13.498 1.429v37.242l-8.2456 4.7589-2.1138-4.5259z'
16+
clip-rule='evenodd'
17+
fill='#24386C'
18+
fill-rule='evenodd'
19+
/>
20+
<path
21+
d='m48.847 14-8.2457 4.7622-17.016-3.7326-19.917 8.1094-3.3183-9.139 12.122-7 12.126-7 12.123 7 12.126 7z'
22+
clip-rule='evenodd'
23+
fill='#7589BE'
24+
fill-rule='evenodd'
25+
/>
26+
<path
27+
d='m0.34961 13.999 8.2457 4.7622 4.7798 14.215 16.139 12.913-4.9158 10.109-12.126-7.0004-12.123-7v-28z'
28+
clip-rule='evenodd'
29+
fill='#B2BFE8'
30+
fill-rule='evenodd'
31+
/>
32+
<path
33+
d='m30.066 38.421-5.4666 8.059v9.5207l7.757-4.4756 3.9968-5.9681'
34+
clip-rule='evenodd'
35+
fill='#24386C'
36+
fill-rule='evenodd'
37+
/>
38+
<path
39+
d='m24.602 36.962-7.7603-13.436 1.6715-4.4531 6.3544-3.0809 7.488 7.5343-7.7536 13.436z'
40+
clip-rule='evenodd'
41+
fill='#7589BE'
42+
fill-rule='evenodd'
43+
/>
44+
<path
45+
d='m16.843 23.525 7.7569 4.4756v8.9585l-7.1741 0.3087-4.3397-5.5412 3.7569-8.2016z'
46+
clip-rule='evenodd'
47+
fill='#B2BFE8'
48+
fill-rule='evenodd'
49+
/>
50+
<path
51+
d='m24.6 28 7.757-4.4752 5.2792 8.7903-6.3886 5.2784-6.6476-0.6346v-8.9589z'
52+
clip-rule='evenodd'
53+
fill='#24386C'
54+
fill-rule='evenodd'
55+
/>
56+
<path
57+
d='m32.355 51.524 8.2457 4.476v-37.238l-8.0032-4.6189-7.9995-4.6189-8.0031 4.6189-7.9995 4.6189v18.479l7.9995 4.6189 8.0031 4.6193 7.757-4.4797v9.5244zm0-19.045-7.757 4.4793-7.7569-4.4793v-8.9549l7.7569-4.4792 7.757 4.4792v8.9549z'
58+
clip-rule='evenodd'
59+
fill='#DC244C'
60+
fill-rule='evenodd'
61+
/>
62+
<path d='m24.603 46.483v-9.5222l-7.7166-4.4411v9.5064l7.7166 4.4569z' fill='url(#a)' />
63+
</g>
64+
<defs>
65+
<linearGradient
66+
id='a'
67+
x1='23.18'
68+
x2='15.491'
69+
y1='38.781'
70+
y2='38.781'
71+
gradientUnits='userSpaceOnUse'
72+
>
73+
<stop stop-color='#FF3364' offset='0' />
74+
<stop stop-color='#C91540' stop-opacity='0' offset='1' />
75+
</linearGradient>
76+
<clipPath id='b'>
77+
<rect transform='translate(.34961)' fill='#fff' />
78+
</clipPath>
79+
</defs>
80+
</svg>`}
81+
/>
82+
83+
## Usage Instructions
84+
85+
Store, search, and retrieve vector embeddings using Qdrant. Perform semantic similarity searches and manage your vector collections.
86+
87+
88+
89+
## Tools
90+
91+
### `qdrant_upsert_points`
92+
93+
Insert or update points in a Qdrant collection
94+
95+
#### Input
96+
97+
| Parameter | Type | Required | Description |
98+
| --------- | ---- | -------- | ----------- |
99+
| `url` | string | Yes | Qdrant base URL |
100+
| `apiKey` | string | No | Qdrant API key \(optional\) |
101+
| `collection` | string | Yes | Collection name |
102+
| `points` | array | Yes | Array of points to upsert |
103+
104+
#### Output
105+
106+
| Parameter | Type |
107+
| --------- | ---- |
108+
| `status` | string |
109+
| `data` | string |
110+
111+
### `qdrant_search_vector`
112+
113+
Search for similar vectors in a Qdrant collection
114+
115+
#### Input
116+
117+
| Parameter | Type | Required | Description |
118+
| --------- | ---- | -------- | ----------- |
119+
| `url` | string | Yes | Qdrant base URL |
120+
| `apiKey` | string | No | Qdrant API key \(optional\) |
121+
| `collection` | string | Yes | Collection name |
122+
| `vector` | array | Yes | Vector to search for |
123+
| `limit` | number | No | Number of results to return |
124+
| `filter` | object | No | Filter to apply to the search |
125+
| `with_payload` | boolean | No | Include payload in response |
126+
| `with_vector` | boolean | No | Include vector in response |
127+
128+
#### Output
129+
130+
| Parameter | Type |
131+
| --------- | ---- |
132+
| `data` | string |
133+
| `status` | string |
134+
135+
### `qdrant_fetch_points`
136+
137+
Fetch points by ID from a Qdrant collection
138+
139+
#### Input
140+
141+
| Parameter | Type | Required | Description |
142+
| --------- | ---- | -------- | ----------- |
143+
| `url` | string | Yes | Qdrant base URL |
144+
| `apiKey` | string | No | Qdrant API key \(optional\) |
145+
| `collection` | string | Yes | Collection name |
146+
| `ids` | array | Yes | Array of point IDs to fetch |
147+
| `with_payload` | boolean | No | Include payload in response |
148+
| `with_vector` | boolean | No | Include vector in response |
149+
150+
#### Output
151+
152+
| Parameter | Type |
153+
| --------- | ---- |
154+
| `data` | string |
155+
| `status` | string |
156+
157+
158+
159+
## Block Configuration
160+
161+
### Input
162+
163+
| Parameter | Type | Required | Description |
164+
| --------- | ---- | -------- | ----------- |
165+
| `operation` | string | Yes | Operation |
166+
167+
168+
169+
### Outputs
170+
171+
This block does not produce any outputs.
172+
173+
## Notes
174+
175+
- Category: `tools`
176+
- Type: `qdrant`

apps/sim/app/(landing)/components/sections/integrations.tsx

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ function Integrations() {
172172
<div className='flex aspect-square h-16 w-16 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
173173
<Icons.pinecone />
174174
</div>
175+
<div className='flex aspect-square h-16 w-16 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
176+
<Icons.qdrant />
177+
</div>
175178
<div className='flex aspect-square h-16 w-16 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
176179
<Icons.slack />
177180
</div>
@@ -290,6 +293,9 @@ function Integrations() {
290293
<div className='flex aspect-square h-12 w-12 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
291294
<Icons.pinecone />
292295
</div>
296+
<div className='flex aspect-square h-12 w-12 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
297+
<Icons.qdrant />
298+
</div>
293299
<div className='flex aspect-square h-12 w-12 items-center justify-center rounded-xl border border-[#353535] bg-[#242424] p-1 shadow-[0px_2px_6px_0px_rgba(126,_48,_252,_0.1)]'>
294300
<Icons.slack />
295301
</div>
@@ -512,6 +518,77 @@ const Icons = {
512518
/>
513519
</svg>
514520
),
521+
qdrant: () => (
522+
<svg width='48' height='48' fill='none' viewBox='0 0 49 56' xmlns='http://www.w3.org/2000/svg'>
523+
<g clipPath='url(#b)'>
524+
<path
525+
d='m38.489 51.477-1.1167-30.787-2.0223-8.1167 13.498 1.429v37.242l-8.2456 4.7589-2.1138-4.5259z'
526+
clip-rule='evenodd'
527+
fill='#24386C'
528+
fill-rule='evenodd'
529+
/>
530+
<path
531+
d='m48.847 14-8.2457 4.7622-17.016-3.7326-19.917 8.1094-3.3183-9.139 12.122-7 12.126-7 12.123 7 12.126 7z'
532+
clip-rule='evenodd'
533+
fill='#7589BE'
534+
fill-rule='evenodd'
535+
/>
536+
<path
537+
d='m0.34961 13.999 8.2457 4.7622 4.7798 14.215 16.139 12.913-4.9158 10.109-12.126-7.0004-12.123-7v-28z'
538+
clip-rule='evenodd'
539+
fill='#B2BFE8'
540+
fill-rule='evenodd'
541+
/>
542+
<path
543+
d='m30.066 38.421-5.4666 8.059v9.5207l7.757-4.4756 3.9968-5.9681'
544+
clip-rule='evenodd'
545+
fill='#24386C'
546+
fill-rule='evenodd'
547+
/>
548+
<path
549+
d='m24.602 36.962-7.7603-13.436 1.6715-4.4531 6.3544-3.0809 7.488 7.5343-7.7536 13.436z'
550+
clip-rule='evenodd'
551+
fill='#7589BE'
552+
fill-rule='evenodd'
553+
/>
554+
<path
555+
d='m16.843 23.525 7.7569 4.4756v8.9585l-7.1741 0.3087-4.3397-5.5412 3.7569-8.2016z'
556+
clip-rule='evenodd'
557+
fill='#B2BFE8'
558+
fill-rule='evenodd'
559+
/>
560+
<path
561+
d='m24.6 28 7.757-4.4752 5.2792 8.7903-6.3886 5.2784-6.6476-0.6346v-8.9589z'
562+
clip-rule='evenodd'
563+
fill='#24386C'
564+
fill-rule='evenodd'
565+
/>
566+
<path
567+
d='m32.355 51.524 8.2457 4.476v-37.238l-8.0032-4.6189-7.9995-4.6189-8.0031 4.6189-7.9995 4.6189v18.479l7.9995 4.6189 8.0031 4.6193 7.757-4.4797v9.5244zm0-19.045-7.757 4.4793-7.7569-4.4793v-8.9549l7.7569-4.4792 7.757 4.4792v8.9549z'
568+
clip-rule='evenodd'
569+
fill='#DC244C'
570+
fill-rule='evenodd'
571+
/>
572+
<path d='m24.603 46.483v-9.5222l-7.7166-4.4411v9.5064l7.7166 4.4569z' fill='url(#a)' />
573+
</g>
574+
<defs>
575+
<linearGradient
576+
id='a'
577+
x1='23.18'
578+
x2='15.491'
579+
y1='38.781'
580+
y2='38.781'
581+
gradientUnits='userSpaceOnUse'
582+
>
583+
<stop stop-color='#FF3364' offset='0' />
584+
<stop stop-color='#C91540' stop-opacity='0' offset='1' />
585+
</linearGradient>
586+
<clipPath id='b'>
587+
<rect transform='translate(.34961)' width='48.3' height='56' fill='#fff' />
588+
</clipPath>
589+
</defs>
590+
</svg>
591+
),
515592
slack: () => (
516593
<svg width='48' height='48' viewBox='0 0 48 48' fill='none' xmlns='http://www.w3.org/2000/svg'>
517594
<g clipPath='url(#clip0_82_6239)'>

apps/sim/blocks/blocks/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './qdrant'

0 commit comments

Comments
 (0)