DEV Community

Apollo
Apollo

Posted on

How to integrate DeepSeek R1 into your React app

Integrating DeepSeek R1 into Your React App: A Comprehensive Guide

DeepSeek R1 is a powerful AI-driven search and recommendation engine that can significantly enhance the user experience of your React applications. This tutorial will walk you through the process of integrating DeepSeek R1 into a React app, providing detailed code snippets and explanations.

Prerequisites

Before we begin, ensure you have the following installed:

  • Node.js (v14 or later)
  • npm or yarn
  • A React project setup

Step 1: Setting Up DeepSeek R1

First, you'll need to create an account on DeepSeek's developer portal and obtain your API key. This key will be used to authenticate your requests to the DeepSeek R1 API.

Step 2: Installing Required Packages

In your React project directory, install the necessary packages using npm or yarn:

npm install axios
Enter fullscreen mode Exit fullscreen mode

Axios is a promise-based HTTP client that we'll use to make API requests to DeepSeek R1.

Step 3: Configuring DeepSeek R1 API

Create a new file named deepseek.js in your src directory. This file will contain the configuration for making API requests to DeepSeek R1.

// src/deepseek.js
import axios from 'axios';

const DEEPSEEK_API_KEY = 'YOUR_DEEPSEEK_API_KEY';
const DEEPSEEK_API_URL = 'https://api.deepseek.com/v1/r1';

const deepseekClient = axios.create({
  baseURL: DEEPSEEK_API_URL,
  headers: {
    'Authorization': `Bearer ${DEEPSEEK_API_KEY}`,
    'Content-Type': 'application/json'
  }
});

export const search = async (query) => {
  try {
    const response = await deepseekClient.post('/search', {
      query: query
    });
    return response.data;
  } catch (error) {
    console.error('Error searching with DeepSeek R1:', error);
    throw error;
  }
};
Enter fullscreen mode Exit fullscreen mode

Replace YOUR_DEEPSEEK_API_KEY with your actual API key.

Step 4: Creating a Search Component

Now, let's create a React component that will allow users to perform a search using DeepSeek R1.

// src/components/Search.js
import React, { useState } from 'react';
import { search } from '../deepseek';

const Search = () => {
  const [query, setQuery] = useState('');
  const [results, setResults] = useState([]);
  const [loading, setLoading] = useState(false);

  const handleSearch = async () => {
    if (!query) return;

    setLoading(true);
    try {
      const data = await search(query);
      setResults(data.results);
    } catch (error) {
      console.error('Search failed:', error);
    } finally {
      setLoading(false);
    }
  };

  return (
    <div>
      <input
        type="text"
        value={query}
        onChange={(e) => setQuery(e.target.value)}
        placeholder="Search..."
      />
      <button onClick={handleSearch} disabled={loading}>
        {loading ? 'Searching...' : 'Search'}
      </button>

      <div>
        {results.map((result, index) => (
          <div key={index}>
            <h3>{result.title}</h3>
            <p>{result.description}</p>
          </div>
        ))}
      </div>
    </div>
  );
};

export default Search;
Enter fullscreen mode Exit fullscreen mode

This component includes an input field for the search query, a button to initiate the search, and a section to display the results.

Step 5: Integrating the Search Component into Your App

Finally, integrate the Search component into your main application component.

// src/App.js
import React from 'react';
import Search from './components/Search';

function App() {
  return (
    <div className="App">
      <h1>DeepSeek R1 Search Integration</h1>
      <Search />
    </div>
  );
}

export default App;
Enter fullscreen mode Exit fullscreen mode

Step 6: Running Your React App

Start your React development server by running:

npm start
Enter fullscreen mode Exit fullscreen mode

Navigate to http://localhost:3000 in your browser. You should see the search interface, allowing you to perform searches using DeepSeek R1.

Advanced Features: Error Handling and Pagination

To enhance the search functionality, consider adding error handling and pagination. Hereโ€™s an example of how you can implement pagination:

// src/deepseek.js
export const search = async (query, page = 1) => {
  try {
    const response = await deepseekClient.post('/search', {
      query: query,
      page: page
    });
    return response.data;
  } catch (error) {
    console.error('Error searching with DeepSeek R1:', error);
    throw error;
  }
};
Enter fullscreen mode Exit fullscreen mode

Update the Search component to include pagination controls:

// src/components/Search.js
import React, { useState } from 'react';
import { search } from '../deepseek';

const Search = () => {
  const [query, setQuery] = useState('');
  const [results, setResults] = useState([]);
  const [loading, setLoading] = useState(false);
  const [page, setPage] = useState(1);

  const handleSearch = async (page = 1) => {
    if (!query) return;

    setLoading(true);
    try {
      const data = await search(query, page);
      setResults(data.results);
    } catch (error) {
      console.error('Search failed:', error);
    } finally {
      setLoading(false);
    }
  };

  const handleNextPage = () => {
    setPage(page + 1);
    handleSearch(page + 1);
  };

  const handlePreviousPage = () => {
    if (page > 1) {
      setPage(page - 1);
      handleSearch(page - 1);
    }
  };

  return (
    <div>
      <input
        type="text"
        value={query}
        onChange={(e) => setQuery(e.target.value)}
        placeholder="Search..."
      />
      <button onClick={() => handleSearch()} disabled={loading}>
        {loading ? 'Searching...' : 'Search'}
      </button>

      <div>
        {results.map((result, index) => (
          <div key={index}>
            <h3>{result.title}</h3>
            <p>{result.description}</p>
          </div>
        ))}
      </div>

      <div>
        <button onClick={handlePreviousPage} disabled={page === 1}>
          Previous
        </button>
        <button onClick={handleNextPage}>Next</button>
      </div>
    </div>
  );
};

export default Search;
Enter fullscreen mode Exit fullscreen mode

This advanced implementation includes pagination controls to navigate through multiple pages of search results.

Conclusion

Integrating DeepSeek R1 into your React app can significantly enhance its search capabilities. By following this tutorial, youโ€™ve learned how to set up the DeepSeek R1 API, create a search component, and implement advanced features like pagination. Experiment with the DeepSeek R1 API to further customize and optimize the search experience in your application.


๐Ÿš€ Stop Writing Boilerplate Prompts

If you want to skip the setup and code 10x faster with complete AI architecture patterns, grab my Senior React Developer AI Cookbook ($19). It includes Server Action prompt libraries, UI component generation loops, and hydration debugging strategies.

Browse all 10+ developer products at the Apollo AI Store | Or snipe Solana tokens free via @ApolloSniper_Bot.

Top comments (0)