An open API service indexing awesome lists of open source software.

https://github.com/twlite/gorkhali

Gorkhali is an AI assistant built with ai sdk, shadcn and ai elements enabling generative ui, web search, weather search, and lyrics search.
https://github.com/twlite/gorkhali

ai ai-elements ai-sdk assistant generative-ui javascript llm nextjs self-host shadcn vercel

Last synced: about 2 months ago
JSON representation

Gorkhali is an AI assistant built with ai sdk, shadcn and ai elements enabling generative ui, web search, weather search, and lyrics search.

Awesome Lists containing this project

README

          

# Gorkhali

Gorkhali is an AI assistant that uses the [ai sdk](https://sdk.vercel.ai) library to generate responses. It is built with [Next.js](https://nextjs.org) and [shadcn/ui](https://ui.shadcn.com) + [AI Elements](https://ai-sdk.dev/elements). It also supports generative user interface for weather and lyrics.

## Setup

Run your model locally with [lmstudio](https://lmstudio.ai). Make sure you have the following models installed:

- [x] openai/gpt-oss-20b

```bash
lms get openai/gpt-oss-20b
```

- [x] google/gemma-3-12b

```bash
lms get google/gemma-3-12b
```

Or you can install your own models and update the `src/stores/model.ts` and `src/app/api/chat/route.ts` files.

## Environment Variables

Create a `.env` file by copying the `example.env` file.

```bash
cp example.env .env
```

and update the `TAVILY_API_KEY` with your own API key.

```ini
TAVILY_API_KEY=tvly-your_tavily_api_key
```

## Run

```bash
pnpm run dev
```

## Tools

- [x] Web search via [tavily](https://tavily.com)
- [x] Weather via [weather-js](https://www.npmjs.com/package/weather-js)
- [x] Lyrics via [lrclib](https://lrclib.net)
- [x] SoundCloud via [soundcloud.ts](https://www.npmjs.com/package/soundcloud.ts)

# Preview

## Web search

The agent is able to search the web and provide the information to the user using the `webSearchTool`, which is a tool that allows the agent to search the web and provide the information to the user using `tavily` API.

![Web search](./assets/01.png)

## Weather

The agent is able to provide the weather information to the user using the `weatherTool`, which is a tool that allows the agent to provide the weather information to the user using `weather-js` library.

![Weather](./assets/02.png)

## Lyrics

The agent is able to provide the lyrics to the user using the `lyricsTool`, which is a tool that allows the agent to provide the lyrics to the user using `lrclib` library.

![Lyrics](./assets/03.png)

## SoundCloud

The agent is able to search for tracks on SoundCloud and provide the information to the user using the `soundcloudTool`, which is a tool that allows the agent to search for tracks on SoundCloud and provide the information to the user using `soundcloud.ts` library.

![SoundCloud](./assets/04.png)