🤔摸索一下deepseek能干些啥

166 阅读2分钟

自己之前写了一个简易的deepseek,可以实现对话功能(UI有些丑哈哈哈),主要原理就说调用了deepseek的接口,按照官网格式走一遍就好了。

基础对话

image.png

主要也就是下面这块代码逻辑,目前只有简单的对话,不支持历史聊天记录功能。

  const handleSend = async () => {
    if (!input.trim()) return;
    
    // 添加用户消息
    const userMessage = { text: input, isUser: true };
    setMessages(prev => [...prev, userMessage]);
    setInput('');
    setIsLoading(true);
    
    try {
      // 调用 DeepSeek API
      const response = await callDeepSeekAPI(input);
      
      // 添加 AI 回复
      const aiMessage = { text: response, isUser: false };
      setMessages(prev => [...prev, aiMessage]);
    } catch (error) {
      console.error('Error calling DeepSeek API:', error);
      
      // 检查是否是余额不足错误
      const errorData = error.response?.data;
      let errorMessage;
      
      if (errorData?.message === "Insufficient Balance") {
        errorMessage = { 
          text: '抱歉,DeepSeek API 账户余额不足,请充值后再试。', 
          isUser: false 
        };
      } else {
        errorMessage = { 
          text: '抱歉,发生了错误,请稍后再试。', 
          isUser: false 
        };
      }
      
      setMessages(prev => [...prev, errorMessage]);
    } finally {
      setIsLoading(false);
    }
  };
  
  const handleKeyDown = (e) => {
    if (e.key === 'Enter' && !e.shiftKey) {
      e.preventDefault();
      handleSend();
    }
  };
  
  // 调用 DeepSeek API 的函数
  const callDeepSeekAPI = async (prompt) => {
    // 使用环境变量获取 API 密钥
    const API_KEY = 'xxx'; // 这边用你自己的key
    const API_URL = 'https://api.deepseek.com/v1/chat/completions';
    
    try {
      console.log('正在发送请求到 DeepSeek API...');
      const response = await axios.post(
        API_URL,
        {
          model: "deepseek-chat",
          messages: [
            { role: "user", content: prompt }
          ],
          temperature: 0.7,
          max_tokens: 500 // 减少 token 数量以降低成本
        },
        {
          headers: {
            'Content-Type': 'application/json',
            'Authorization': `Bearer ${API_KEY}`
          }
        }
      );
      
      console.log('API 响应:', response.data);
      return response.data.choices[0].message.content;
    } catch (error) {
      console.error('API 错误详情:', error.response ? error.response.data : error.message);
      throw error;
    }
  };

地址识别

最近我想想还能干些什么呢?有了,地址识别!于是就有了下面这个效果图。

或许有一丁丁点作用,识别一下省市区等功能。。。

实现原理也就是固定好要给他塞什么提示词,然后让他根据提示词返回固定的内容,根据这个内容前端来解析出有用的内容展示出来。

image.png

TODO

我再想想还有没有一些有点用的功能,比如输入两个人的出生年月日,来判断他们的姻缘、星座匹配程度、生辰八字、婚嫁良日,然后收费,然后。。。。。