“如果改变不了环境,那就改变自己去适应环境!”

python的IDE和交互工具有很多,本人开发python习惯使用spyder和jupyter,前者用来做工程项目开发,后者用来做一些数据交互测试,因为jupyter的交互可视化比较便捷。下面基于Win10 + Python 3.10.11操作。

创建运行环境

首先创建虚拟环境,安装jupyter

> python -m venv D:\virtual_env\python_env\DeepseekApi
> cd /d D:\virtual_env\python_env\DeepseekApi\Scripts
> activate.bat

执行activate切换到虚拟环境后安装jupyter和openai(使用这个库实现deepseek api调用)库

> pip install jupyter
> pip install jupyterlab-language-pack-zh-CN # 这个是jupyter中文扩展包
> pip install openai

安装完成后pip list看下包的版本:

jupyter==1.1.1
openai==1.93.0

启动jupyter交互环境

在虚拟环境下启动jupyter,指定数据和代码存储路径(F:\DeepseekCode\),启动成功后一般会自动打开web交互页面,如果没有就自己打开浏览器输入地址,默认地址端口是http://localhost:8888/,可以根据启动信息查看到访问地址、端口和登录token信息。

jupyter-lab F:\DeepseekCode

登录jupyter页面后点击Setting->language->选择中文就可以切换到中文界面,点击之后有个提示框,选择“change and reload”自动重新加载页面就可以了。

在启动页上点击“笔记本”下面的python图标创建一个标签页就可以开始敲代码了。

调用Deepseek API

1、首先,登录deepseek开放平台设置API key,初次注册的用户还能免费获赠10元的消费金(有效期1个月),注册后赶紧用不然过期后就只能充值,具体价格跟选择的模型相关,官方说明的很详细了。

2、在jupyter标签页输入调用代码,替换自己创建的API KEY,Deepseek提供了两种模型,这里示例代码选用了deepseek-chat,两种模型的区别这里不赘述,但是deepseek-reasoner会返回的思维链内容,这点会前者稍微不同。

from openai import OpenAI

API_KEY='sk-65f******5a491'  # 这里替换成自己设置的API KEY
API_URL='https://api.deepseek.com'
DC_MODEL='deepseek-chat'
DR_MODEL='deepseek-reasoner' client = OpenAI(api_key=API_KEY, base_url=API_URL) response = client.chat.completions.create(
model=DC_MODEL,
messages=[
{'role': 'system', 'content': '你是一名儿童心理学专家'},
{'role': 'user', 'content': f'''小明是初三学生,最近一次模拟考试成绩不理想,上课无法集中精神听课,不再与同学交流。请根据小明的情况给予心理疏导意见。'''}
],
stream=False
) # deepseek-reasoner输出的思维链内容
# print(response.choices[0].message.reasoning_content)
print(response.choices[0].message.content)

下面是接口返回的内容

3、多轮对话需要将上一轮的发送信息和接收信息加入到当前发送的消息里。

messages = [{'role': 'user', 'content': f'''小明是初三学生,最近一次模拟考试成绩不理想,上课无法集中精神听课,不再与同学交流。请根据小明的情况给予心理疏导意见。'''}]
# 加上返回的内容
messages.append(response.choices[0].message)
# 再加入第二轮对话的信息
messages.append({'role': 'user', 'content': '现在学生普遍学习压力较大,针对小明这个例子写一篇1000字左右的文章,倡议家长一起陪同并关心孩子的成长。文字中体现的语气和段落顺序要适合视频制作。'})
# 调用API
response = client.chat.completions.create(
model=DC_MODEL,
messages=messages,
stream=False
)
print(response.choices[0].message.content)

这里需要留意API对上下文长度限制64K,而且API是输入+输出双向计费。

总结

从最早的chat-GPT到现在的Deepseek,AI大模型越来越多,相应的针对大模型开发的应用也越来越丰富,AI大模型研究门槛比较高,但应用门槛相对较低。在竞争日益激烈的环境里,IT人一定要及时适应变化,拥抱变化,改变不了环境就改变自己。

Jupyter虚拟环境创建和Deepseek API调用的更多相关文章

  1. Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用

    概述 上一篇我们介绍了如何使用vue resource处理HTTP请求,结合服务端的REST API,就能够很容易地构建一个增删查改应用.这个应用始终遗留了一个问题,Web App在访问REST AP ...

  2. 2.4使用属性在 ASP.NET Web API 2 路由创建一个 REST API

    Web API 2 支持一种新型的路由,称为属性路由.属性路由的一般概述,请参阅属性路由 Web API 2 中.在本教程中,您将使用属性路由创建一个 REST API 集合的书.API 将支持以下操 ...

  3. Sphinx中文分词安装配置及API调用

    这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂 ...

  4. Sphinx中文分词详细安装配置及API调用实战

    这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂 ...

  5. jquery api调用

    本框架内置组件以及部分插件都可以通过jquery选择器进行API调用,支持链式操作,如下示例. <script type="text/javascript"> $(&q ...

  6. 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】

    Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...

  7. 五:用JAVA写一个阿里云VPC Open API调用程序

    用JAVA写一个阿里云VPC Open API调用程序 摘要:用JAVA拼出来Open API的URL 引言 VPC提供了丰富的API接口,让网络工程是可以通过API调用的方式管理网络资源.用程序和软 ...

  8. novaclient的api调用流程与开发

    novaclient的api调用流程与开发 2015年07月05日 19:27:17 qiushanjushi 阅读数:3915   http://blog.csdn.net/tpiperatgod/ ...

  9. 腾讯地图 API 调用入门

    本文仅为腾讯地图 API 调用入门,如需进阶学习,请在腾讯位置服务网站上进行学习. 登陆网址 https://lbs.qq.com/ 点击右上角的登陆按钮,需要进行注册按照流程进行就好. 完成之后,选 ...

  10. 阿里云 API调用实践(python语言)

    1.结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用. 2.SDK调用API的套路如下: # -*- c ...

随机推荐

  1. Spring基于注解的CRUD,完全没有XML

    Spring基于注解的CRUD,完全没有XML 源码 代码实现 pom.xml <?xml version="1.0" encoding="UTF-8"? ...

  2. java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap报错解决办法

    在接收表单数据封装成对象时报错,具体错误信息如下: java.lang.reflect.InvocationTargetException     at sun.reflect.NativeMetho ...

  3. HarmonyOS Next实战教程:实现中间凹陷的异形tabbar

    今天要和大家分享的实战案例是实现中间凹陷的tabar 前些天在做墨迹天气的时候看到了这种异形的tabbar,看起来比较有挑战性,因为鸿蒙版的墨迹天气app还没有这个东西,我决定尝试做一下. 系统的Ta ...

  4. 鸿蒙NEXT实践(二):公共事件通信实践-智能节电案例

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  5. 0.4元/TB/月!天翼云HBlock打响软件定义存储价格战

    惊爆价打响存储战争 当企业数据量以平均每年增加50%的速度狂飙,存储成本已成重负:传统方案动辄数百万的成本投入.动辄数周的部署周期.动辄30%的闲置资源浪费-- 今天,天翼云HBlock以" ...

  6. openjdk8下载地址(附赠)

    openjdk下载地址:https://jdk.java.net/ (文末已经为大家下好了,放在网盘里) 进去后点8,win. 安装好后,使用java -version命令如下: 成功安装openjd ...

  7. odoo15接口调用qweb打印,将pdf旋转并下载到本地

    一.将pdf旋转的通用方法 def rotate_pdf(self, pdf, angle): """ rotateClockwise(90) 这里的pdf传:bytes ...

  8. LLM 上下文长度详细介绍

    1.概述 在<Token:大语言模型的"语言乐高",一切智能的基石>与<LLM 输出配置 (LLM output configuration)>这两篇博文中 ...

  9. Web前端入门第 64 问:JavaScript 几种函数定义方式有什么区别?

    函数 作为 JS 的一等公民,随处可见它的身影. 我理解的它最主要作用就是用来提取重复代码,但凡有 JS 代码需要复制粘贴的时候,那么这时候就可以考虑使用函数封装了. 当函数写在对象中的时候,这时候它 ...

  10. Spring Boot 启动优化实践

    作者:vivo 互联网服务器团队- Liu Di 本文系统性分析并优化了一个Spring Boot项目启动耗时高达 280 秒的问题.通过识别瓶颈.优化分库分表加载逻辑.异步初始化耗时任务等手段,最终 ...