DeepSeek R1をReactアプリに統合する
DeepSeek R1は、強力なAI駆動の検索およびレコメンドエンジンであり、Reactアプリケーションにおけるユーザー体験を向上させることができます。このチュートリアルでは、SDKのセットアップから高度な検索機能の実装まで、DeepSeek R1をReactアプリに統合する手順を説明します。
前提条件
統合に入る前に、以下が用意できていることを確認してください:
- Node.js がインストール済み(v14以上)
- React のプロジェクト(なければ
npx create-react-appで作成してください) - DeepSeek R1 の APIキー(DeepSeekのDeveloper Portalで登録)
手順1:DeepSeek R1 SDKをインストールする
まず、npmを使ってDeepSeek R1 SDKをインストールします:
npm install @deepseek/r1-sdk
手順2:SDKを初期化する
SDKを初期化するために、src ディレクトリに新しいファイル deepseek.js を作成します。これによりSDKは1回だけセットアップされ、アプリ全体で再利用できるようになります。
// src/deepseek.js
import { DeepSeekR1 } from '@deepseek/r1-sdk';
const API_KEY = 'your_api_key_here';
const deepSeek = new DeepSeekR1(API_KEY);
export default deepSeek;
'your_api_key_here' を、実際のDeepSeek R1 APIキーに置き換えてください。
手順3:検索コンポーネントを作成する
ここから、DeepSeek R1を活用して検索結果を取得し表示する検索コンポーネントを作りましょう。
// src/components/Search.js
import React, { useState } from 'react';
import deepSeek from '../deepseek';
const Search = () => {
const [query, setQuery] = useState('');
const [results, setResults] = useState([]);
const handleSearch = async (e) => {
e.preventDefault();
try {
const response = await deepSeek.search(query);
setResults(response.data.results);
} catch (error) {
console.error('Error fetching search results:', error);
}
};
return (
<div>
<form onSubmit={handleSearch}>
<input
type="text"
value={query}
onChange={(e) => setQuery(e.target.value)}
placeholder="検索..."
/>
<button type="submit">検索</button>
</form>
<ul>
{results.map((result, index) => (
<li key={index}>{result.title}</li>
))}
</ul>
</div>
);
};
export default Search;
このコンポーネントには以下が含まれます:
- ユーザーが検索クエリを入力するための入力フィールドを持つフォーム。
- クエリの状態を管理する
useStateフック。 handleSearch関数で、DeepSeek R1 から検索結果を取得します。- 結果を表示するためのリスト。
Step 4: 検索コンポーネントをアプリに統合する
メインの App コンポーネントに Search コンポーネントを統合します。
// src/App.js
import React from 'react';
import Search from './components/Search';
function App() {
return (
<div className="App">
<h1>DeepSeek R1 Search Demo</h1>
<Search />
</div>
);
}
export default App;
これでアプリを実行(npm start)すると、DeepSeek R1 を使って結果を取得する検索バーが表示されるはずです。
Step 5: 高度な機能を実装する(任意)
DeepSeek R1 は、フィルタリング、ソート、ページネーションといった高度な機能をサポートしています。カテゴリによるフィルタリングの実装方法は以下のとおりです。
// src/components/Search.js
import React, { useState } from 'react';
import deepSeek from '../deepseek';
const Search = () => {
const [query, setQuery] = useState('');
const [category, setCategory] = useState('all');
const [results, setResults] = useState([]);
const handleSearch = async (e) => {
e.preventDefault();
try {
const response = await deepSeek.search(query, { category });
setResults(response.data.results);
} catch (error) {
console.error('検索結果の取得中にエラーが発生しました:', error);
}
};
return (
<div>
<form onSubmit={handleSearch}>
<input
type="text"
value={query}
onChange={(e) => setQuery(e.target.value)}
placeholder="Search..."
/>
<select value={category} onChange={(e) => setCategory(e.target.value)}>
<option value="all">すべて カテゴリ</option>
<option value="books">書籍</option>
<option value="movies">映画</option>
<option value="music">音楽</option>
</select>
<button type="submit">検索</button>
</form>
<ul>
{results.map((result, index) => (
<li key={index}>{result.title}</li>
))}
</ul>
</div>
);
};
export default Search;
この強化版では:
- ドロップダウンメニューでカテゴリ別に結果を絞り込めます。
handleSearch関数には、検索パラメータとしてcategoryが含まれます。
ステップ6:エラーを適切に扱う
何か問題が起きたときのユーザー体験を改善するために、エラーハンドリングを追加してください。
// src/components/Search.js
import React, { useState } from 'react';
import deepSeek from '../deepseek';
const Search = () => {
const [query, setQuery] = useState('');
const [category, setCategory] = useState('all');
const [results, setResults] = useState([]);
const [error, setError] = useState(null);
const handleSearch = async (e) => {
e.preventDefault();
setError(null);
try {
const response = await deepSeek.search(query, {category});
setResults(response.data.results);
} catch (error) {
setError('検索結果の取得に失敗しました。もう一度お試しください。');
}
};
返却形式: {"translated": "翻訳されたHTML"}return (
<div>
<form onSubmit={handleSearch}>
<input
type="text"
value={query}
onChange={(e) => setQuery(e.target.value)}
placeholder="Search..."
/>
<select value={category} onChange={(e) => setCategory(e.target.value)}>
<option value="all">All Categories</option>
<option value="books">Books</option>
<option value="movies">Movies</option>
<option value="music">Music</option>
</select>
<button type="submit">Search</button>
</form>
{error && <p style={{ color: 'red' }}>{error}</p>}
<ul>
{results.map((result, index) => (
<li key={index}>{result.title}</li>
))}
</ul>
</div>
);
};
export default Search;
現在、エラーはユーザーフレンドリーな形でユーザーに表示されます。
結論
DeepSeek R1をReactアプリに統合すると、検索機能を強化するための可能性が広がります。基本的な検索の実装から、フィルタリングやエラーハンドリングといった高度な機能まで、DeepSeek R1は、ユーザーに合わせた検索体験を提供するための堅牢なプラットフォームを用意しています。その能力を試してみて、アプリの使いやすさをさらに高い次元へ引き上げましょう。
ボイラープレートのプロンプトを書き続けない
セットアップを省き、完全なAIアーキテクチャのパターンでコードを10倍速く書きたい場合は、私のSenior React Developer AI Cookbook(19ドル)を手に取ってください。Server Actionのプロンプトライブラリ、UIコンポーネント生成のループ、ハイドレーションのデバッグ戦略が含まれています。
Apollo AI Store で開発者向けプロダクトをすべて(10個以上)見る | もしくは @ApolloSniper_Bot でSolanaトークンを無料でスナイプ。



