1.1.2 • Published 1 year ago

use-ai-hooks v1.1.2

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

use-ai

use-ai-hooks is a React hook library that provides custom hooks for integrating various AI functionalities into your React applications. It includes hooks for ChatGPT, Google Gemini, and more.

Documentation - https://use-ai.vercel.app/

Installation

To install use-ai-hooks, you can use npm or yarn:

npm install use-ai-hooks

Usage

Here's an example of how you can use the useChatGPT hook from use-ai:

import React, { useState } from 'react';
import {useChatGPT} from 'use-ai-hooks'; // Import the custom hook
 
const ChatGPTComponent = () => {
  const [messages, setMessages] = useState([{ role: 'user', content: '' }]);
  const [model, setModel] = useState('gpt-3.5-turbo');
  const apiKey = 'YOUR_API_KEY'; // Your OpenAI API key
 
  const { response, error, loading, fetchChatGPTResponse } = useChatGPT(apiKey);
 
  const handleSendMessage = async () => {
    if (messages[messages.length - 1].content !== '') {
      const newMessages = [...messages, { role: 'user', content: '' }];
      setMessages(newMessages);
      await fetchChatGPTResponse({ model, messages: newMessages });
    }
  };
 
  const handleInputChange = (index, value) => {
    const newMessages = [...messages];
    newMessages[index].content = value;
    setMessages(newMessages);
  };
 
  return (
    <div>
      <h1>Chat with GPT-3</h1>
      <div>
        {messages.map((message, index) => (
          <div key={index}>
            <input
              type="text"
              value={message.content}
              onChange={(e) => handleInputChange(index, e.target.value)}
              placeholder={`Message ${index + 1}`}
            />
          </div>
        ))}
      </div>
      <button onClick={handleSendMessage} disabled={loading}>
        Send
      </button>
 
      {loading && <p>Loading...</p>}
      {error && <p>Error: {error.message}</p>}
      {response && <div>
        <h2>Response</h2>
        <p>{response}</p>
      </div>}
    </div>
  );
};
 
export default ChatGPTComponent;