进军AI大模型-环境配置

语言环境配置

合法上网工具:

这个T子试试,一直稳定。走我链接免费用5天:
https://wibnm.com/s/ywtc01/pvijpzy

python版本: python3.12

Langchain: Introduction | 🦜️🔗 LangChain  v0.3 9月16日升级的版本

pip3 设置成阿里云的源镜像(能够快速下载依赖包) 

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

langchain安装

pip install langchainpip install langchain-openai

检查是否安装成功

使用langchain调用大语言模型

注册API KEY

注册地址

代码

将中文翻译成日语

import osfrom langchain_core.messages import SystemMessage, HumanMessage
from langchain_openai import ChatOpenAIos.environ['OPENAI_API_BASE'] = "https://api.mctools.online/v1"model = ChatOpenAI(model="gpt-4-turbo")msg = [SystemMessage(content='请将以下的内容翻译成日语'), HumanMessage(content='你好,初次见面请多关照')]result = model.invoke(msg)
print(result)

代码解释

  • 导入语句引入了必要的模块和类:
    • os:用于设置环境变量。
    • SystemMessage 和 HumanMessage:来自langchain_core.messages模块,用于构造对话中的消息对象,其中SystemMessage通常用来给模型提供指令或上下文信息,而HumanMessage则表示用户输入的内容。
    • ChatOpenAI:来自langchain_openai库,是用于创建一个可以与OpenAI API交互的对象的类。
  • 设置了一个环境变量OPENAI_API_BASE,指定了自定义的API基础URL。这意味着所有的API请求都将发送到这个特定的域名,而不是默认的OpenAI API地址。这在您需要访问非官方API端点时很有用,比如企业内部部署的服务或是代理服务。
  •  这个地址在https://falm.shop/buy/36 购买 ,因为在国内使用实在是有点不方便
  • 创建了一个ChatOpenAI实例,并指定了要使用的模型名称为gpt-4-turbo。如果你没有apikey执行就会报错
  • 构造了一组消息列表msg,其中包括两个元素:
    • 一个SystemMessage对象,其内容是“请将以下的内容翻译成日语”,这相当于给模型的一个指示,告诉它接下来的任务是要进行中文到日语的翻译。
    • 一个HumanMessage对象,其内容是“你好,初次见面请多关照”,这是实际要被翻译的文本。
  • 使用invoke方法向模型传递消息列表msg,并获取模型生成的响应。invoke方法会返回一个包含模型生成的消息的对象,您可以从中提取出想要的信息,如生成的文本。
  • 最后,print(result)会打印出模型的响应结果,即翻译后的文本。

执行结果

content='こんにちは、初めまして、よろしくお願いします。' 
additional_kwargs={'refusal': None} 
response_metadata={'token_usage': {'completion_tokens': 18, 'prompt_tokens': 36, 'total_tokens': 54, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}, 'model_name': 'gpt-4-turbo-2024-04-09', 'system_fingerprint': 'fp_1a5512f3de', 'finish_reason': 'stop', 'logprobs': None} id='run-63ca957d-44ad-432e-bace-72e2b3f7a58e-0' usage_metadata={'input_tokens': 36, 'output_tokens': 18, 'total_tokens': 54, 'input_token_details': {'audio': 0, 'cache_read': 0}, 'output_token_details': {'audio': 0, 'reasoning': 0}}

 注意

这里记得把api key添加进来

代码改造

开发流程

1、定义大模型, 参考https://platform.openai.com/docs/models

2、创建提示器prompt

3、解析模型数据,支持文本、JSON、XML...

4、创建链,通过提供一系列逻辑上相连的问题或步骤作为提示,可以引导模型进行更深入、更复杂的思考,从而产生更准确的答案

import osfrom langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAIos.environ['OPENAI_API_BASE'] = "https://api.mctools.online/v1"
#1. 定义模型
model = ChatOpenAI(model="gpt-4-turbo")#2. prompt
msg = [SystemMessage(content='请将以下的内容翻译成日语'), HumanMessage(content='你好,初次见面请多关照')]
# result = model.invoke(msg)
# print(result)# 3.解析数据
parser = StrOutputParser()# print(parser.invoke(result))# 4.创建链
chain = model | parser
# 链调用
print(chain.invoke(msg))

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

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

相关文章

`we_chat_union_id IS NOT NULL` 和 `we_chat_union_id != ‘‘` 这两个条件之间的区别

文章目录 1、什么是空字符串?2、两个引号之间加上空格 好的,我们来详细解释一下 we_chat_union_id IS NOT NULL 和 we_chat_union_id ! 这两个条件之间的区别,以及它们在 SQL 查询中的作用: 1. we_chat_union_id IS NOT NULL 含…

elementUI——upload限制图片或者文件只能上传一个——公开版

最近在写后台管理系统时,遇到一个需求,就是上传图片,有且仅能上传一张。 效果图如下: 功能描述:上传图片时,仅支持单选,如果上传图片成功后,展示图片,并隐藏添加图片的…

【RabbitMQ高级篇】消息可靠性问题(1)

目录 1.消息可靠性 1.1.生产者消息确认 1.1.1.修改配置 1.1.2.定义Return回调 1.1.3.定义ConfirmCallback 1.2.消息持久化 1.2.1.交换机持久化 1.2.2.队列持久化 1.2.3.消息持久化 1.3.消费者消息确认 1.3.1.演示none模式 1.3.2.演示auto模式 1.4.消费失败重试机制…

MyBatis知识点笔记

目录 mybatis mapper-locations的作用? mybatis configuration log-impl 作用? resultType和resultMap的区别? 参数 useGeneratedKeys ,keyColumn,keyProperty作用和用法 取值方式#和$区别 动态标签有哪些 MyBat…

Vue3 使用OCR识别图片文字

Tesseract.js 是一个javascript库&#xff0c;可以从图像中获取几乎任何语言的单词&#xff0c;支持文本转pdf功能&#xff0c;精准度很高。 1. 安装 npm install tesseract.js 2. 示例代码&#xff08;vue3版&#xff09; <template><div class"container&qu…

【多维DP】力扣3366. 最小数组和

给你一个整数数组 nums 和三个整数 k、op1 和 op2。 你可以对 nums 执行以下操作&#xff1a; 操作 1&#xff1a;选择一个下标 i&#xff0c;将 nums[i] 除以 2&#xff0c;并 向上取整 到最接近的整数。你最多可以执行此操作 op1 次&#xff0c;并且每个下标最多只能执行一…

python+PyMuPDF库:(一)创建pdf文件及内容读取和写入

目录 文档操作 打开文档 获取文档信息 删除页 复制页 移动页 选择重构合并 保存关闭 页对象操作 内容读取 获取页对象的字体样式 插入文本标签 插入文本内容 字体设置 insert_text添加文本 insert_textbox添加文本 插入图片 获取页面注释、链接、表单字段 …

python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶

【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作&#xff0c;相关链接为&#xff1a; python学opencv|读取图像&#xff08;二十&#xff09;使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单&#xff0c;因此可以自由操作的空间也就大&#x…

音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件

通过FFmpeg命令可以将mp4文件转换为ps文件。由于ps文件对应的FFInputFormat结构为&#xff1a; const FFInputFormat ff_mpegps_demuxer {.p.name "mpeg",.p.long_name NULL_IF_CONFIG_SMALL("MPEG-PS (MPEG-2 Program Stream)"),.p.flags …

xshell基础设置

一.查看->勾选会话管理器和快速命令栏 二.工具->选项->终端 三.工具->选项->高级 四.文件->默认会话属性->外观&#xff08;看个人喜好&#xff09;

【GlobalMapper精品教程】091:根据指定字段融合图斑(字段值相同融合到一起)

文章目录 一、加载数据二、符号化三、融合图斑1. 根据图斑位置进行融合2. 根据指定字段四、注意事项一、加载数据 订阅专栏后,从私信中查收配套实验数据包,找到data091.rar,解压并加载,如下图所示: 属性表如下: 二、符号化 为了便于比对不同的融合结果,查看属性表根据…

大语言模型(LLM)中大数据的压缩存储及其重要性

在大型语言模型&#xff08;LLM&#xff09;中&#xff0c;KV Cache&#xff08;键值缓存&#xff09;的压缩方法及其重要性。 为什么要压缩KV Cache&#xff1f; 计算效率&#xff1a;在生成文本的过程中&#xff0c;每个生成的token都需要与之前所有的token的键值&#xff…

Springboot关于格式化记录

日期格式化 返回前端日期需要格式化 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version> </dependency>JsonFormat(pattern "yyyy-MM-dd…

条款19 对共享资源使用std::shared_ptr

目录 一、std::shared_ptr 二、std::shared_ptr性能问题 三、control block的生成时机 四、std::shared_ptr可能存在的问题 五、使用this指针作为std::shared_ptr构造函数实参 六、std::shared_ptr不支持数组 一、std::shared_ptr<T> shared_ptr的内存模型如下图&…

Linux第99步_Linux之点亮LCD

主要学习如何在Linux开发板点亮屏&#xff0c;以及modetest命令的实现。 很多人踩坑&#xff0c;我也是一样。关键是踩坑后还是实现不了&#xff0c;这样的人确实很多&#xff0c;从群里可以知道。也许其他人没有遇到这个问题&#xff0c;我想是他运气好。 1、修改设备树 1)、…

攻破 kioprix level 4 靶机

又又又来了... 法一、 基本步骤 1.确认主机ip&#xff0c;扫描端口确定服务和版本 2.访问网站&#xff0c;扫描目录&#xff0c;查找敏感信息 3.利用敏感信息和SQL注入进入网站 4.ssh服务连接主机 5.shell逃逸并查找敏感信息&#xff08;与数据库等相关&#xff09; 6.m…

Qt自定义步骤引导按钮

1. 步骤引导按钮 实际在开发项目过程中&#xff0c;由一些流程比较繁琐&#xff0c;为了给客户更好的交互体验&#xff0c;往往需要使用step1->step2这种引导对话框或者引导按钮来引导用户一步步进行设置&#xff1b;话不多说&#xff0c;先上效果 2. 实现原理 实现起来…

解决nuxt3下载慢下载报错问题

在下载nuxt3时总是下不下来&#xff0c;最后还报错了。即使改成国内镜像源也不行。 解决方法&#xff1a; 直接去github上下载 https://github.com/nuxt/starter/tree/v3 解压后得到如下目录&#xff1a; 手动修改项目名和文件夹名 安装依赖 npm install可能会比较慢或下不…

ShenNiusModularity项目源码学习(6:访问控制)

ShenNius.Admin.API项目中的控制器类的函数如果需要访问控制&#xff0c;主要是调用ShenNius.Infrastructure项目下的AuthorityAttribute特性类实现的。AuthorityAttribute继承自ActionFilterAttribute抽象类&#xff0c;后者用于在调用控制器操作函数前后自定义处理逻辑&#…

【连续学习之SSL算法】2018年论文Selfless sequential learning

1 介绍 年份&#xff1a;2018 期刊&#xff1a; arXiv preprint Aljundi R, Rohrbach M, Tuytelaars T. Selfless sequential learning[J]. arXiv preprint arXiv:1806.05421, 2018. 本文提出了一种名为SLNID&#xff08;Sparse coding through Local Neural Inhibition and…