前端调用deepseek API 实现与ai助手对话

1.获取apikey

1.1 deepseek API开放平台:DeepSeek 开放平台

1.2 创建API Key

2. 前端调用api

2.1 接口地址

https://platform.deepseek.com/usage  --post

2.2 接口封装

import axios from 'axios';

// 封装DeepSeek API接口
interface Message {
  content: string;
  role: 'user' | 'assistant' | 'system';
}
 
export const getDeepSeekReply = async (messages: Message[]): Promise<Message> => {
    const apiKey = '***********'; // 替换为你的API密钥
    const url = 'https://api.deepseek.com/chat/completions'; // 替换为实际的API端点
    const params = {
        messages: messages,
        model: "deepseek-chat",
        max_tokens: 1500, // 增加max_tokens以获得更长的回复
        temperature: 0.7, // 调整temperature以获得更自然的回复
        top_p: 1,
        frequency_penalty: 0,
        presence_penalty: 0,
    };

    try {
        const response = await axios.post(url, params, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                "Content-Type": "application/json",
                "Accept": "application/json",
            }
        });
        
        return response.data.choices[0].message;
    } catch (error) {
        console.error('Axios error:', error);
        return { content: 'Error occurred while fetching data.', role: 'assistant' }; 
    }
}

3. 页面展示

<template>
  <div class="chat-window">
    <!-- 聊天内容 -->
    <div class="chat-content">
      <h2 style="margin-left: 20px;">聊天窗口</h2>
      <div class="messages" ref="messagesContainer">
        <div v-for="(message, index) in messages" :key="index" class="message" :class="{'ai-message': message.role === 'user' || message.role === 'system', 'user-message': message.role === 'assistant'}">
          <img v-if="message.role === 'user' || message.role === 'system'" src="../assets/logo.png" alt="User Avatar" class="avatar" /> <!-- 添加用户头像 -->
          <div class="message-content">
            <!-- 修改: 使用 v-html 渲染消息内容 -->
            <div v-html="message.content" class="content"></div>
            <el-divider v-if="message.role === 'assistant' && index+1 === messages.length" />
           <div style="display: flex;">
            <el-button v-if="message.role === 'assistant' && index+1 === messages.length" type="primary" @click="regenerateMessage(index)" :disabled="isLoading">重新生成</el-button> <!-- 添加重新生成按钮 -->
            <!-- 新增: 添加复制按钮 -->
            <el-button v-if="message.role === 'assistant'" type="info" @click="copyMes
### 如何部署 DeepSeek UI 界面 #### 准备工作 为了成功部署DeepSeek的UI界面,首先需要完成基本环境配置以及下载必要的组件。由于当前对话依赖于Ollama作为核心API服务提供者,在此之前应该已经完成了Ollama的基础安装设置[^1]。 #### 安装图形用户界面工具包 对于构建GUI应用而言,可以选择多种框架和技术栈来实现这一目标。Python社区中有许多流行的库可以帮助快速创建桌面应用程序,比如PyQt或Tkinter等。如果倾向于Web技术,则可以考虑Electron这样的跨平台解决方案,它允许使用HTML、CSS和JavaScript开发原生应用[^2]。 #### 创建项目结构并集成 Ollama API 一旦选择了合适的前端技术方案之后,下一步就是建立项目的文件夹结构,并编写代码逻辑以连接至已有的Ollama后端接口。这通常涉及到发送HTTP请求给服务器获取响应数据的过程。以下是利用`requests`库向Ollama发起GET请求的一个简单例子: ```python import requests response = requests.get('http://localhost:8000/api/v1/chat') print(response.json()) ``` 这段脚本假设Ollama正在监听本地主机上的8000端口,并开放了一个版本号为v1的聊天API路径。 #### 构建用户交互界面 最后一步是要设计直观易用的操作面板供最终用户输入查询并之互动交流。这部分的工作重点在于确保良好的用户体验(UX),包括但不限于合理的布局规划、清晰的文字提示信息等方面的设计考量。具体实现细节会依据所选的技术路线有所不同,但对于任何一种选择来说,保持简洁明了始终是最关键的原则之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼鱼鱼-YYY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值