Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhanced the Remix Icons search function with new keywords by using GPT-4 (updated for v4.2.0) #757

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

yigitkonur
Copy link

I've created icon-specific documents with embeddings using OpenAI's large model to build a semantic search engine, which helps match icons with page types like URLs and documents. Jimmy, I'm happy to share my work to integrate semantic search into Remix. Your effort has been impressive!

…PT-4 (updated for v4.2.0)

I've created icon-specific documents with embeddings using OpenAI's large model to build a semantic search engine, which helps match icons with page types like URLs and documents. Jimmy, I'm happy to share my work to integrate semantic search into Remix. Your effort has been impressive!
@xiaochunjimmy
Copy link
Member

Hi @yigitkonur,

Sorry for the late reply, your work results have greatly impressed me.
This improvement can help us significantly improve the accuracy of search results.

I am very curious how this was achieved?

I am also thinking about how to incorporate this improvement into our release process.
The previous tags were all manually maintained by meyself, which is also a key factor blocking our fully automated release.

@yigitkonur
Copy link
Author

Hey Xiao, I appreciate to hear that you found this useful! Actually, I have used this system prompt:

The goal is to expand the utility and discoverability of icons from the Remix Icon library by generating a comprehensive list of new tag names. These tags should be directly relevant to the icon's visual representation and its broader conceptual associations. The aim is to facilitate easier search and application of icons by providing a rich set of descriptive tags that capture both the essence and the potential uses of the icon.

**Process:**

1. **Icon Analysis:** Begin by examining the name of the icon. Use this as a starting point to infer the likely appearance and the primary concept or object the icon represents.

2. **Conceptual Expansion:** Broaden the scope by considering various contexts, applications, and meanings associated with the icon. Think about different domains (e.g., technology, health, entertainment) where the icon's representation might be relevant.

3. **Tag Generation:** Create a list of new tag names that are:
   - **Descriptive:** Tags should accurately describe the icon's appearance and essence.
   - **Associative:** Include tags that relate to broader concepts, uses, or associations of the icon.
   - **Diverse:** Aim for a variety of tags that cover different potential uses and interpretations to enhance discoverability.

4. **Relevance Check:** Ensure that the tags are relevant and directly related to the icon's look and potential applications. Avoid overly generic tags that do not add specific value.

**Example Task:**

- **Icon Name:** `cloud`
- **Current Tags:** `weather, internet`

**Example Output:**

- **New Tags:** `sky, storage, online, data, fluffy, overcast, rain, forecast, network, server, upload, download, sync, airy, climate, meteorology, cumulus, technology, atmosphere, mist, puff`

**Guidelines:**

- **Clarity and Precision:** Make sure the tags are clear and precise, avoiding ambiguity.
- **Breadth and Depth:** Strive for a balance between covering a broad range of associations and diving deep into specific, meaningful tags.
- **User-Centric:** Consider the utility of each tag from the perspective of users searching for icons to fulfill specific needs or convey particular concepts.

By following this enhanced prompt, you can systematically generate a rich and useful set of new tag names for icons, significantly improving the utility and user experience of the Remix Icon library.

And then, I've created few shot prompt, to represent this, you can use following document:

**User**: Icon Name: article
Current Tags: newspaper,document

**Assistant**: New Tags: text, content, news, report, writing, reading, paper, editorial, publication, journalism, essay, column, print, media, information, press, story, feature, page, words, headline, paragraph, review, commentary, analysis, opinion, author, writer, editor, publish, document, article

**User**: Icon Name: survey
Current Tags: research,questionnaire,clipboard,checkboxes,form,census

**Assistant**: New Tags: feedback, poll, study, analysis, questionnaire, evaluation, assessment, opinion, rating, review, data, collection, investigation, inquiry, form, report, statistics, demographics, market research, customer, satisfaction, interview, responses, choices, options, selection, tick, agree, disagree, scale, input, participation, survey

**User**: Icon Name: netflix
Current Tags: 

**Assistant**: New Tags: streaming, movies, series, entertainment, video, film, television, binge, watch, platform, subscription, media, content, drama, comedy, documentary, online, app, service, digital, network, shows, episodes, cinema, Hollywood, screen, play, queue, HD, 4K, original, production, viewer, audience, chill, broadcast, on-demand

**User**: Icon Name: linkedin-box
Current Tags: 

**Assistant**: New Tags: professional, network, career, job, employment, business, connection, resume, profile, company, industry, networking, recruitment, hiring, social media, corporate, work, opportunity, branding, contacts, endorsements, recommendations, updates, news, platform, online, digital, identity, B2B, marketplace, talent, skills, experience, achievements, LinkedIn

**User**: Icon Name: soundcloud
Current Tags: 

**Assistant**: New Tags: music, streaming, audio, platform, songs, artists, tracks, sound, cloud, online, listen, playlist, upload, share, social, indie, DJ, mixes, podcast, radio, beats, electronic, hip-hop, rock, pop, culture, community, discovery, digital, media, app, web, service, network, listener, creator, performance, album, record

**User**: Icon Name: increase-decrease
Current Tags: 

**Assistant**: New Tags: growth, decline, chart, graph, analytics, statistics, data, trends, performance, measurement, comparison, finance, business, sales, revenue, profit, loss, market, economy, stock, investment, up, down, fluctuation, progress, regression, improvement, downturn, analysis, forecast, scale, rate, change, development, evaluation, metrics, indicators, increase, decrease

**User**: Icon Name: XXXX
Current Tags: YYYY

If you understand the logic, here is the json to include just after system prompt:

{
	"messages": [{
		"role": "user",
		"content": "Icon Name: article\nCurrent Tags: newspaper,document"
	}, {
		"role": "assistant",
		"content": "New Tags: text, content, news, report, writing, reading, paper, editorial, publication, journalism, essay, column, print, media, information, press, story, feature, page, words, headline, paragraph, review, commentary, analysis, opinion, author, writer, editor, publish, document, article"
	}, {
		"role": "user",
		"content": "Icon Name: survey\nCurrent Tags: research,questionnaire,clipboard,checkboxes,form,census"
	}, {
		"role": "assistant",
		"content": "New Tags: feedback, poll, study, analysis, questionnaire, evaluation, assessment, opinion, rating, review, data, collection, investigation, inquiry, form, report, statistics, demographics, market research, customer, satisfaction, interview, responses, choices, options, selection, tick, agree, disagree, scale, input, participation, survey"
	}, {
		"role": "user",
		"content": "Icon Name: netflix\nCurrent Tags: "
	}, {
		"role": "assistant",
		"content": "New Tags: streaming, movies, series, entertainment, video, film, television, binge, watch, platform, subscription, media, content, drama, comedy, documentary, online, app, service, digital, network, shows, episodes, cinema, Hollywood, screen, play, queue, HD, 4K, original, production, viewer, audience, chill, broadcast, on-demand"
	}, {
		"role": "user",
		"content": "Icon Name: linkedin-box\nCurrent Tags: "
	}, {
		"role": "assistant",
		"content": "New Tags: professional, network, career, job, employment, business, connection, resume, profile, company, industry, networking, recruitment, hiring, social media, corporate, work, opportunity, branding, contacts, endorsements, recommendations, updates, news, platform, online, digital, identity, B2B, marketplace, talent, skills, experience, achievements, LinkedIn"
	}, {
		"role": "user",
		"content": "Icon Name: soundcloud\nCurrent Tags: "
	}, {
		"role": "assistant",
		"content": "New Tags: music, streaming, audio, platform, songs, artists, tracks, sound, cloud, online, listen, playlist, upload, share, social, indie, DJ, mixes, podcast, radio, beats, electronic, hip-hop, rock, pop, culture, community, discovery, digital, media, app, web, service, network, listener, creator, performance, album, record"
	}, {
		"role": "user",
		"content": "Icon Name: increase-decrease\nCurrent Tags: "
	}, {
		"role": "assistant",
		"content": "New Tags: growth, decline, chart, graph, analytics, statistics, data, trends, performance, measurement, comparison, finance, business, sales, revenue, profit, loss, market, economy, stock, investment, up, down, fluctuation, progress, regression, improvement, downturn, analysis, forecast, scale, rate, change, development, evaluation, metrics, indicators, increase, decrease"
	}, {
		"role": "user",
		"content": "Icon Name: XXXX\nCurrent Tags: YYYY"
	}]
}

Just change XXX and YYYY - then we are ready!

@xiaochunjimmy
Copy link
Member

Too awesome, but it seems to be beyond my knowledge scope.

I plan to incorporate your file in the next update.

When my partner is free, we will study your ideas together and see how to integrate them into our daily updates. Thanks again.

@yigitkonur
Copy link
Author

Any news 👀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants