一,使用python调取大模型api

1,获取api_key 

获取api_key 在各个大模型的官网中获取。

2,设置api_key

方式一:

在系统环境中可直接执行python代码:这里以deepseek为例

import os
os.environ["DEEPSEEK_API_KEY"] = "your_api_key" 

方式二:

但在jupyter环境中无权直接修改系统环境变量

因此在文件同目录下创建 '.env'文件

DEEPSEEK_API_KEY=your_api_key

注意这里可以不用引号

3,使用本地环境的api_key

上一步中采用方式一:

则直接使用:

print(os.getenv("DEEPSEEK_API_KEY")) # 或
os.environ["DEEPSEEK_API_KEY"] 

方式二:

from dotenv import load_dotenv
load_dotenv()  # 加载 .env 文件
api_key = os.getenv("DEEPSEEK_API_KEY")

3,python调用llm

在python中调用llm通用方式:(可参考不同大模型api文档)

在openai类可直接查看系统环境变量“openai_api_key”,因此可以直接使用

from openai import OpenAIclient = OpenAI()

但如果我们调用其他模型,可能也支持以上调用方式,但需要将base_url换做第三方大模型的api_url(可以从大模型api文档找到)。

这里以deepseek为例:

from openai import OpenAIclient = OpenAI(api_key=api_key, base_url="https://api.deepseek.com")def get_completion(prompt, model="deepseek-chat"):messages = [{"role": "system", "content": "You are a helpful assistant"},{"role": "user", "content": prompt}]response = client.chat.completions.create(model=model,messages=messages,stream=False)return response.choices[0].message.contentget_completion("What is 1+1?")

以上,为python默认大模型使用方法。

但langchain中封装了model的调用。与上文方法相似,但也有些许不同。

二,langchain中使用model

1,llm调用

一般的,langchain中调用model使用如下方式:

以deepseek为例:

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model="deepseek-chat",temperature=0.0,max_tokens=None,timeout=None,max_retries=2,base_url="https://api.deepseek.com",api_key=api_key,
)

环境变量同上。

但langchain中包含有对deepseek api的封装。

https://python.langchain.com/api_reference/deepseek/chat_models/langchain_deepseek.chat_models.ChatDeepSeek.html#langchain_deepseek.chat_models.ChatDeepSeek

因此对于deepseek而言也可以采用如下方式:
 

from langchain_deepseek import ChatDeepSeekllm = ChatDeepSeek(model = "deepseek-chat"
)

2,prompt使用

例如:
 

prompt = """ 翻译下面这段文字并使用 {style} 这种风格。\text:``` {text} ```
"""style = """ 中文 \用一种十分随意轻松活泼的日常口语
"""text = """Democratize AI innovation with the world’s \most trusted open ecosystem \for data science and \AI development.
"""

prompt被分为了以下几个部分(解耦的过程)。

这是因为,一部分prompt应该能够提前被定义。如system_prompt (代码中的prompt)。

另一部分会在后续修改或定义。或者为user_prompt。 如代码中的style和text。

因此prompt完整代码如下:
 

from langchain.prompts import ChatPromptTemplateprompt_template = ChatPromptTemplate.from_template(prompt)
messages = prompt_template.format_messages(style = style,text = text)

先定义system_prompt 后将system_prompt中的输入变量输入进去。

messages实际上就是拼接后的结果:

调用大模型:

response = llm.invoke(messages)response.content

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88971.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88971.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88971.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch分布式通讯为什么要求Tensor连续(Contiguous)

参考资料: https://github.com/pytorch/pytorch/issues/73515 https://www.cnblogs.com/X1OO/articles/18171700 由于业务原因,需要在Pytorch代码中使用分布式通讯来把计算负载平均到多张显卡上。在无数次确认我的业务代码没问题之后,我开始把…

关于前端页面上传图片检测

依赖于前文,linux系统上部署yolo识别图片,远程宿主机访问docker全流程(https://blog.csdn.net/yanzhuang521967/article/details/148777650?spm1001.2014.3001.5501) fastapi把端口暴露出来 后端代码 from fastapi import FastAPI, UploadFile, File, HTTPExcep…

第十三章---软件工程过程管理

仅供参考 文章目录 一、Gantt图是做什么的。二、软件配置的概念 一、Gantt图是做什么的。 Gantt 图(甘特图)是软件项目管理中用于进度安排和可视化管理的重要工具,主要用于展示任务的时间安排、进度状态及任务之间的依赖关系 Gantt 图是一种…

多模态大语言模型arxiv论文略读(140)

SemiHVision: Enhancing Medical Multimodal Models with a Semi-Human Annotated Dataset and Fine-Tuned Instruction Generation ➡️ 论文标题:SemiHVision: Enhancing Medical Multimodal Models with a Semi-Human Annotated Dataset and Fine-Tuned Instruc…

模型预测控制专题:无差拍预测电流控制

前言: 为了进一步深入探索电机控制这个领域,找到了一些志同道合的同学一起来进行知识的分享。最近群里投票后续更新内容,票数最多的方向就是模型预测控制;无论这个方向目前是否还是很火,至少应大家需求,工…

Youtube双塔模型

1. 引言 在大规模推荐系统中,如何从海量候选物品中高效检索出用户可能感兴趣的物品是一个关键问题。传统的矩阵分解方法在处理稀疏数据和长尾分布时面临挑战。本文介绍了一种基于双塔神经网络的建模框架,通过采样偏差校正技术提升推荐质量,并…

.net8创建tcp服务接收数据通过websocket广播

注册TCP服务器 注册WebSocket中间件 using System.Net; using System.Net.Sockets; using System.Text; using System.Text.Json; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.SignalR.Client; using Microsoft.AspNet…

阅读服务使用示例(HarmonyOS Reader Kit)

阅读服务使用示例(HarmonyOS Reader Kit) Reader Kit到底能干啥? 第一次搞电子书阅读器,真以为就是“读txt显示出来”这么简单,结果各种格式、排版、翻页动效、目录跳转……全是坑。还好有Reader Kit,救了…

ASP.NET Core Web API 实现 JWT 身份验证

在ASP.NET Core WebApi中使用标识框架(Identity)-CSDN博客 因为一般需要和标识框架一起使用,建议先查看标识框架用法 一.为什么需要JWT 我们的系统需要实现认证,即服务端需要知道登录进来的客户端的身份,管理员有管理员的权限,普通用户有普通用户的权限. 但服务…

优化Cereal宏 一行声明序列化函数

Cereal序列化库中宏递归展开的优化方案及技术解析 未优化&#xff1a;参考nlohmann json设计Cereal宏 一行声明序列化函数 宏实现 #include <cereal/cereal.hpp>// 强制二次展开 #define CEREAL_EXPAND( x ) x// 获取宏参数的数量&#xff0c;对应的CEREAL_PASTEn宏NAME…

14-C#的弹出的窗口输入与输出

C#的弹出的窗口输入与输出 1.文件名输入 string fileName Interaction.InputBox("输入保存的文件名", "保存");2.弹窗信息输出 MessageBox.Show("请选择轮询!", "Error", MessageBoxButtons.OK);catch (Exception ex){MessageBox.S…

多模态大语言模型arxiv论文略读(141)

Mini-InternVL: A Flexible-Transfer Pocket Multimodal Model with 5% Parameters and 90% Performance ➡️ 论文标题&#xff1a;Mini-InternVL: A Flexible-Transfer Pocket Multimodal Model with 5% Parameters and 90% Performance ➡️ 论文作者&#xff1a;Zhangwei …

VScode使用usb转网口远程开发rk3588

我使用的是鲁班猫的板&#xff0c;只有一个网口&#xff0c;需要接雷达&#xff0c;因此另外弄了一个usb转网口来连接电脑开发。 在使用vscode或MobaXterm连接板子时&#xff0c;使用主机名与用户名来连接&#xff1a; ssh catlubancat rk那边就直接插入usb转网口以及网线&a…

AUTOSAR图解==>AUTOSAR_AP_EXP_SOVD

AUTOSAR服务导向车辆诊断详解 面向现代化车辆架构的诊断方案 目录 1. 引言 1.1 ASAM SOVD简介1.2 SOVD产生的动机 2. SOVD参考架构 2.1 SOVD网关2.2 诊断管理器2.3 SOVD到UDS转换2.4 后端连接 3. SOVD用例 3.1 SOVD和UDS的共同用例3.2 SOVD特定用例 3.2.1 访问权限3.2.2 软件更…

第八讲:STL简介

1. 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复的 组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 2. STL的版本 a. 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本…

高弹性、高可靠!腾讯云 TDMQ RabbitMQ Serverless 版全新发布

导语 2025年6月起&#xff0c;腾讯云 TDMQ RabbitMQ 版正式推出 Serverless 版本&#xff0c;该版本基于自研的存算分离架构&#xff0c;兼容 AMQP 0-9-1 协议和开源 RabbitMQ 的各个组件与概念&#xff0c;且能够规避开源版本固有的不抗消息堆积、脑裂等稳定性缺陷&#xff0…

Linux 内存调优之 BPF 分析用户态小内存分配

写在前面 博文内容为 使用 BPF 工具跟踪 Linux 用户态小内存分配(brk,sbrk)理解不足小伙伴帮忙指正 😃,生活加油我看远山,远山悲悯 持续分享技术干货,感兴趣小伙伴可以关注下 _ brk 内存分配简单概述 一般来说,应用程序的数据存放于堆内存中,堆内存通过brk(2)系统调用进…

心理测评app心理测试系统框架设计

一、逻辑分析 用户管理逻辑 新用户注册&#xff1a;需要收集用户的基本信息&#xff0c;如用户名、密码、邮箱等&#xff0c;并且要对输入信息进行合法性校验&#xff0c;确保信息完整且符合格式要求。同时&#xff0c;为每个新用户生成唯一的标识符&#xff0c;方便后续数据管…

配置有nvlink的H20A800使用pytorch报错

背景 装有nvlink的h20机器上配置好驱动和cuda之后使用pytorch报错 A800机器同样 (pytorch2.4) rootxx-dev-H20:~# python Python 3.12.0 | packaged by Anaconda, Inc. | (main, Oct 2 2023, 17:29:18) [GCC 11.2.0] on linux Type “help”, “copyright”, “credits” or …

sql的语句执行过程

第一步&#xff1a;客户端把语句发给服务器端执行 当我们在客户端执行SQL语句时&#xff0c;客户端会把这条SQL语句发送给服务器端&#xff0c;让服务器端的进程来处理这语句。也就是说&#xff0c;Oracle 客户端是不会做任何的操作&#xff0c;他的主要任务就是把客户端产生的…