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 in your React applications. This tutorial will guide you through the process of integrating DeepSeek R1 into a React app, leveraging its capabilities to provide intelligent search and personalized recommendations.

Prerequisites

Before diving into the integration, ensure you have the following prerequisites:

  1. Node.js and npm: Install Node.js and npm from nodejs.org.
  2. React: Basic knowledge of React and its ecosystem.
  3. DeepSeek R1 API Key: Obtain an API key from DeepSeek's developer portal.

Setting Up the React App

First, create a new React app using Create React App:

npx create-react-app deepseek-r1-integration
cd deepseek-r1-integration
Enter fullscreen mode Exit fullscreen mode

Install necessary dependencies:

npm install axios react-router-dom
Enter fullscreen mode Exit fullscreen mode

Configuring DeepSeek R1

To interact with DeepSeek R1, you need to configure the API endpoint and your API key. Create a .env file in the root of your project to store sensitive information:

REACT_APP_DEEPSEEK_API_KEY=your_api_key_here
REACT_APP_DEEPSEEK_API_URL=https://api.deepseek.com/v1
Enter fullscreen mode Exit fullscreen mode

Building the Search Component

The core of our integration will be the Search component. This component will handle user queries and display results fetched from DeepSeek R1.

Create a components/Search.js file:

import React, { useState } from 'react';
import axios from 'axios';

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

  const handleSearch = async () => {
    setLoading(true);
    setError('');

    try {
      const response = await axios.post(
        `${process.env.REACT_APP_DEEPSEEK_API_URL}/search`,
        { query },
        {
          headers: {
            'Authorization': `Bearer ${process.env.REACT_APP_DEEPSEEK_API_KEY}`,
            'Content-Type': 'application/json',
          },
        }
      );

      setResults(response.data.results);
    } catch (err) {
      setError('Failed to fetch search results.');
    } 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>

      {error && <p>{error}</p>}

      <ul>
        {results.map((result, index) => (
          <li key={index}>{result.title}</li>
        ))}
      </ul>
    </div>
  );
};

export default Search;
Enter fullscreen mode Exit fullscreen mode

Handling Recommendations

DeepSeek R1 can also provide personalized recommendations based on user behavior. Let's create a Recommendations component.

Create a components/Recommendations.js file:

import React, { useEffect, useState } from 'react';
import axios from 'axios';

const Recommendations = ({ userId }) => {
  const [recommendations, setRecommendations] = useState([]);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState('');

  useEffect(() => {
    const fetchRecommendations = async () => {
      setLoading(true);
      setError('');

      try {
        const response = await axios.post(
          `${process.env.REACT_APP_DEEPSEEK_API_URL}/recommendations`,
          { userId },
          {
            headers: {
              'Authorization': `Bearer ${process.env.REACT_APP_DEEPSEEK_API_KEY}`,
              'Content-Type': 'application/json',
            },
          }
        );

        setRecommendations(response.data.recommendations);
      } catch (err) {
        setError('Failed to fetch recommendations.');
      } finally {
        setLoading(false);
      }
    };

    fetchRecommendations();
  }, [userId]);

  return (
    <div>
      <h2>Recommended for You</h2>
      {loading && <p>Loading...</p>}
      {error && <p>{error}</p>}
      <ul>
        {recommendations.map((recommendation, index) => (
          <li key={index}>{recommendation.title}</li>
        ))}
      </ul>
    </div>
  );
};

export default Recommendations;
Enter fullscreen mode Exit fullscreen mode

Integrating Components into the App

Now, integrate the Search and Recommendations components into your main application. Modify App.js:

import React from 'react';
import Search from './components/Search';
import Recommendations from './components/Recommendations';
import './App.css';

const App = () => {
  const userId = 'user123'; // Replace with actual user ID from authentication

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

export default App;
Enter fullscreen mode Exit fullscreen mode

Styling the Application

Enhance the user interface by adding some basic styling. Update App.css:

.App {
  text-align: center;
  padding: 20px;
}

input {
  padding: 10px;
  margin-right: 10px;
}

button {
  padding: 10px 15px;
  cursor: pointer;
}

ul {
  list-style-type: none;
  padding: 0;
}

li {
  margin: 10px 0;
}
Enter fullscreen mode Exit fullscreen mode

Testing the Integration

Run the application:

npm start
Enter fullscreen mode Exit fullscreen mode

Now, you can perform searches and view personalized recommendations powered by DeepSeek R1.

Conclusion

Congratulations! You've successfully integrated DeepSeek R1 into your React app, providing users with intelligent search capabilities and personalized recommendations. This integration opens up numerous possibilities for enhancing user experience through AI-driven features.

Further improvements could include implementing caching, handling pagination, and integrating with a state management library like Redux or Context API for more complex applications.

Happy coding!


🚀 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)