Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ozgrozer/chatgpt-artifacts

Bring Claude's Artifacts feature to ChatGPT
https://github.com/ozgrozer/chatgpt-artifacts

artifacts chatgpt claude

Last synced: 7 days ago
JSON representation

Bring Claude's Artifacts feature to ChatGPT

Awesome Lists containing this project

README

        

# chatgpt-artifacts

Bring Claude's Artifacts feature to ChatGPT

## Preview

https://github.com/ozgrozer/chatgpt-artifacts/assets/651938/abc68e48-2a85-4cb8-a17a-ae795de1ed26

## Usage

Clone this repository

```
git clone https://github.com/ozgrozer/chatgpt-artifacts.git
```

Install dependencies

```
npm install
```

Duplicate `.env.example` as `.env` and add your OPEN AI API key

```
cp .env.example .env
vim .env
```

Build the app

```
npm run build
```

Start the app

```
npm start
```

## Ollama Support

To make it work with your local LLMs like Llama3 or Gemma2 you just need to make a simple update in the code.

Open `/pages/api/chat.js` file

```js
// change this
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
})
// to this
const openai = new OpenAI({
apiKey: 'ollama',
baseURL: 'http://127.0.0.1:11434/v1'
})

// change this
const stream = await openai.chat.completions.create({
stream: true,
model: 'gpt-4o',
messages: conversations[conversationId]
})
// to this
const stream = await openai.chat.completions.create({
stream: true,
model: 'llama3',
messages: conversations[conversationId]
})
```

## Groq Support

To make it work with Groq you just need to get an API key [here](https://console.groq.com/keys) and make a simple update in the code.

Open `/pages/api/chat.js` file

```js
// change this
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
})
// to this
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.groq.com/openai/v1'
})

// change this
const stream = await openai.chat.completions.create({
stream: true,
model: 'gpt-4o',
messages: conversations[conversationId]
})
// to this
const stream = await openai.chat.completions.create({
stream: true,
model: 'llama3-70b-8192',
messages: conversations[conversationId]
})
```

## Azure OpenAI Support

To make it work with Azure OpenAI, you need to create a resource in the [Azure Portal](https://portal.azure.com/) and then create a deployment in the [Azure OpenAI Studio](https://oai.azure.com/) and get your API key, API version, API endpoint and make a simple update in the code.

Open `/pages/api/chat.js` file

```js
// change this
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY
})
// to this (change the API version if yours is different)
const openai = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
defaultQuery: { 'api-version': '2023-03-15-preview' },
defaultHeaders: { 'api-key': process.env.OPENAI_API_KEY },
baseURL: 'https://.openai.azure.com/openai/deployments/'
})

// change your model here
const stream = await openai.chat.completions.create({
stream: true,
model: 'gpt-4o',
messages: conversations[conversationId]
})
```

## License

[GPL-3.0](https://github.com/ozgrozer/chatgpt-artifacts/blob/main/license)