deepseek-react
v1.2.0
Published
React wrapper for seamless DeepSeek AI API integration
Readme
deepseek-react
A small React provider and hook for the DeepSeek API. Ships TypeScript types.
Installation
npm install deepseek-reactreact is a peer dependency (17, 18 and 19 are supported).
Security: do not ship your API key to the browser
DeepSeekProvider holds an API key in React state. Anything in the browser is
visible to the user, so a key passed to a client-side bundle is public —
anyone can read it from your JavaScript and spend your credits.
Use this package client-side only with a key you are comfortable exposing (a
local prototype, an internal tool behind auth). For anything public, point
baseURL at your own backend, keep the real key on the server, and let your
backend forward the request:
<DeepSeekProvider apiKey={sessionToken} baseURL="https://your-app.com/api/deepseek">Usage
import { DeepSeekProvider, useDeepSeekAPI } from "deepseek-react";
const Chat = () => {
const { data, loading, error, callDeepSeek } = useDeepSeekAPI();
return (
<div>
<button
onClick={() =>
callDeepSeek("chatCompletion", {
messages: [{ role: "user", content: "Tell me a joke" }],
})
}
>
Ask DeepSeek
</button>
{loading && <p>Loading…</p>}
{error && <p>Error: {error}</p>}
{data && <p>{data.choices[0].message.content}</p>}
</div>
);
};
const App = () => (
<DeepSeekProvider apiKey="your-api-key" model="deepseek-chat">
<Chat />
</DeepSeekProvider>
);callDeepSeek also returns the result, so you can use it directly instead of
reading data:
const result = await callDeepSeek("chatCompletion", { messages });The model set on the provider is used for every call. Override it per call by
passing model in the params.
Without React
DeepSeek can be used on its own:
import { DeepSeek } from "deepseek-react";
const client = new DeepSeek(process.env.DEEPSEEK_API_KEY!);
const response = await client.chatCompletion([
{ role: "user", content: "What is AI?" },
]);
console.log(response.choices[0].message.content);API
new DeepSeek(apiKey, baseURL?)
Throws if apiKey is empty. baseURL defaults to https://api.deepseek.com.
chatCompletion(messages, model?)
Posts to chat/completions. model defaults to deepseek-chat. Errors are
thrown with the message the API reported.
edit() and search() — deprecated
The DeepSeek API has no edit or search endpoint, so these always fail. They
remain only for backwards compatibility and will be removed in the next major
version. Use chatCompletion with an instruction message instead.
Development
npm install
npm run build
npm testContributing
Issues and pull requests are welcome.
License
MIT © Yazan Salhi
