【LangChain入门 2 Model组件】开始!LLM Models简单对话
文章目录
- 一、使用langchain_ollama
- 二、采用DeepSeek的API
- 三、Model 介绍
- 3.1 OllamaLLM 预训练模型
- 3.2 ChatOllama 聊天预训练模型
- 3.3 OllamaEmbeddings
实现一个helloworld,跑通一个简单的对话。
后面章节会正式介绍LangChain的各个功能。
后台llm的端口可以任意选择,这里分别借助Ollama 和OpenAI实现一次简单的对话
一、使用langchain_ollama
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOllama(model="deepseek-r1:7b",
)
response = llm.invoke("你是谁?")
print(response.content)
回答如下:其中关键字是deepseek-r1:7b的思考链,如果不需要可以忽略。

二、采用DeepSeek的API
去官网注册一个账号,充个10块钱,获取一个API_KEY
https://platform.deepseek.com/
关于模型的选择,如DeepSeek-V3还是DeepSeek-R系列,看官网介绍
https://api-docs.deepseek.com/zh-cn/
聊天界面如下:
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOpenAI(base_url="https://api.deepseek.com/v1", # DeepSeek API端点model="deepseek-chat", # DeepSeek模型标识,'deepseek-reasoner',即可调用 DeepSeek-R1。openai_api_key="sk-替换为你们自己的密钥", # 替换为DeepSeek密钥max_tokens=1000,temperature=0
)
response = llm.invoke("你是谁?")
print(response.content)

三、Model 介绍
以Ollama为例子
3.1 OllamaLLM 预训练模型
3.2 ChatOllama 聊天预训练模型
在OllamaLLM 基础上进行了微调
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
llm = ChatOllama(model="deepseek-r1:7b",
)
chat_prompt = ChatPromptTemplate.from_messages([("system", "你是西天取经的人工智能助手,你的名字叫齐天智能"),("human", "你好"),("ai", "您好,我是西天取经的人工智能助手,请问有什么可以帮助您?"),("human", "{user_input}")
])message = chat_prompt.format(user_input="你叫什么")
response = llm.invoke(message)
print(llm.invoke(message).content)
3.3 OllamaEmbeddings
- embed_query 将单个查询字符串转换为向量表示
- embed_documents 将一系列字符串转换为向量表示
from langchain_ollama import OllamaLLM, OllamaEmbeddings
embed = OllamaEmbeddings(model="deepseek-r1:7b",
)
result = embed.embed_query("这是一个测试文本")
print(len(result))result2 = embed.embed_documents(["这是一个测试文本","这里有15哥个测试文本"])
print(len(result2[0]), len(result2[1]))
相关文章:
【LangChain入门 2 Model组件】开始!LLM Models简单对话
文章目录 一、使用langchain_ollama二、采用DeepSeek的API三、Model 介绍3.1 OllamaLLM 预训练模型3.2 ChatOllama 聊天预训练模型3.3 OllamaEmbeddings 实现一个helloworld,跑通一个简单的对话。 后面章节会正式介绍LangChain的各个功能。 后台llm的端口可以任意选…...
7种寻址方式
1. 立即寻址 立即寻址也叫立即数寻址,操作数本身就在指令中给出,只要取出指令也就取到了操作数,这个操作数被称为立即数。立即数要求以 “#” 为前缀。 #0x1100:表示十六进制数#0b1100:表示二进制数#0d1100ÿ…...
C语言中,#define和typedef 定义int* 一个容易混淆的点
前言 首先来看一个代码: #include <stdio.h> #include <string.h>#define int_ptr int *int main() {int c 100;int_ptr a , b; // 等效于int * a,b; 那么b就是int类型,不是int*类型a &c;b &c; //报错return 0; } 原意&#x…...
C++20 中线程管理与取消机制的深度剖析
文章目录 std::jthread:更智能的线程管理背景与优势构造函数与 std::stop_token 的集成 std::stop_token、std::stop_source 和 std::stop_callback:灵活的取消机制std::stop_token:取消请求的指示器std::stop_source:取消请求的发…...
Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析
Vue3 核心特性解析:Suspense 与 Teleport 原理深度剖析 一、Teleport:突破组件层级的时空传送 1.1 实现原理图解 #mermaid-svg-75dTmiektg1XNS13 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-s…...
FPGA——实现LED流水灯
文章目录 一、Quartusll_18.1和VS Code软件的关联二、DE2-115的时钟电路三、流水灯的分层次设计四、总结 一、Quartusll_18.1和VS Code软件的关联 1.先打开Quartus II 软件,然后选择菜单栏“Tools”下的“Options…”。 2.点击“Options…”,在弹出的对…...
Excel 小黑第12套
对应大猫13 涉及金额修改 -数字组 -修改会计专用 VLOOKUP函数使用(查找目标,查找范围(F4 绝对引用),返回值的所在列数,精确查找或模糊查找)双击填充柄就会显示所有值 这个逗号要中文的不能英…...
6、说一下索引失效的场景?【中高频】
索引失效意味着 查询操作 不能利用索引进行数据检索,而是使用 全表扫描(也就是 数据库需要从磁盘上读取表的所有数据行),从而导致性能下降,下面一些场景会发生索引失效 对索引使用左或者左右模糊匹配(where…...
Noe.js 原生 http 模块 vs Express 框架对比
Noe.js 原生 http 模块 vs Express 框架对比 Noe.js 原生 http 模块 vs Express 框架对比 以下从多个维度对比两种方法,并提供详细示例,帮助初学者理解差异。 1. 基础架构对比 特性原生 http 模块Express 框架核心依赖Node.js 内置模块 (require(htt…...
滚动元素的新api
点击的时候需要双重视图滚动 itemClick(id) {// 滚动到对应位置this.$nextTick(() > {// 找到对应 id 在 initList2 中的索引const index this.initList2.findIndex((item) > item.id Number(id));if (index ! -1) {// 获取所有菜单项const menuItems document.queryS…...
多机调度问题(C语言)
代码如下: #include<stdio.h> #include<stdlib.h>int compare(void* a, void* b)//比较函数,用于qsort按处理时间从大到小排序 {return *(int*)a - *(int*)b; }int LPT(int jobs[], int n, int m)//多机调度问题的LPT算法 {qsort(jobs, n, …...
JS做贪吃蛇小游戏(源码)
一、HTML代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><link rel…...
烽火HG680-KB_海思HI3798MV310_安卓9.0_U盘强刷固件包及注意点说明
之前发布过这个固件包,关于烽火HG680-KA/HG680-KB_海思HI3798MV310_安卓9.0_U盘强刷固件包详细说明一下,汇总总结一些常遇到的情况,这次固件会分开发布,以免混淆。 上一个帖子地址:烽火HG680-KA࿰…...
Java数据结构相关知识
文章目录 1. 自动装箱和自动拆箱2. Object的equals方法3. Comparable和Comparator接口 1. 自动装箱和自动拆箱 自动装箱:将基本数据类型自动转换为对应的包装类。自动拆箱:将包装类自动转换为对应的基本数据类型。 显示装箱 int primitiveInt 10; //…...
996引擎 - 红点系统
996引擎 - 红点系统 总结NPC 红点(TXT红点)Lua 红点1. Red_Point.lua2. UI_Ex.lua参考资料以下内容是在三端 lua 环境下测试的 总结 红点系统分几个部分组成。 M2中设置变量推送。 配置红点表。 Envir\Data\cfg_redpoint.xls 2.1. UI元素中找到ID填写 ids 列。 主界面挂载…...
7种数据结构
7种数据结构 顺序表sqlite.hseqlite.c 单链表linklist.clinklist.h 双链表doulinklist.cdoulinklist.h 链式栈linkstack.clinkstack.h 队列SeqQueue.cSeqQueue.h 树tree.c 哈希表hash.c 顺序表 sqlite.h #ifndef __SEQLIST_H__ #define __SEQLIST_H__ typedef struct person…...
Redis的消息队列是怎么实现的
Redis 本身并不是一个专门的消息队列系统,但它的 List、Pub/Sub 和 Stream 数据结构可以用来实现消息队列的功能。以下是 Redis 实现消息队列的几种常见方式: 1. 基于 List 实现消息队列 Redis 的 List 是一个双向链表,支持在头部和尾部进行高效的插入和删除操作,非常适合…...
3.17BUUCTF练习day1
BUUCTF练习day1 [极客大挑战 2019]EasySQL1(字符型,账号密码型,get型) 判断闭合方式 在用户名输入1‘,此时密码先输入任何数字时,出现语法错误 说明闭合方式为单引号闭合,在判断完闭合方式后…...
【贪心算法】柠檬水找零
1.题目解析 860. 柠檬水找零 - 力扣(LeetCode) 2.讲解算法原理 分情况讨论 5---》直接收下 10---》找五元,收下 20----》105△ ----》555 由于5元更有用,则尽可能保留5元 3.代码 class Solution {public boolean lemonadeCh…...
黑马跟学.苍穹外卖.Day08
黑马跟学.苍穹外卖.Day08 苍穹外卖-day8课程内容1. 工作台1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计 1.2 代码导入1.2.1 Controller层1.2.2 Service层接口1.2.3 Service层实现类1.2.4 Mapper层 1.3 功能测试1.3.1 接口文档测试1.3.2 前后端联调测试 1.4 代码提交 2. Ap…...
ABAP语言的动态编程(4) - 综合案例:管理费用明细表
本篇来实现一个综合案例:管理费用明细表。报表在实际项目中,也有一定的参考意义,一方面展示类似的报表,比如管理费用、研发费用等费用的明细,使用业务比较习惯的展示格式;另一方面正好综合运用前面学习的动…...
通过Geopandas进行地理空间数据可视化
目录 引言 安装与导入 数据加载与探索 数据预处理 基本地图可视化 添加其他数据到地图上 空间分析与查询 地图叠加与分组 空间缓冲区 交互式地图可视化 实际应用案例 城市规划 环境监测 结论 引言 在数据科学领域,地理空间数据可视化扮演着至关重要的角色。它不…...
【大语言模型_5】xinference部署embedding模型和rerank模型
一、安装xinference pip install xinference 二、启动xinference ./xinference-local --host0.0.0.0 --port5544 三、注册本地模型 1、注册embedding模型 curl -X POST "http://localhost:5544/v1/models" \ -H "Content-Type: application/json" \…...
CSS3学习教程,从入门到精通,CSS3 选择器权重问题语法知识点及案例代码(5)
CSS3 选择器权重问题语法知识点及案例代码 一、选择器权重概述 在 CSS 中,当多个选择器同时匹配同一个元素时,浏览器会根据选择器的权重来决定哪个样式生效。权重高的选择器的样式会覆盖权重低的选择器的样式。 二、选择器权重计算规则 1. 内联样式&…...
在Vue3中使用Echarts的示例
1.常用-引用ts文件方式 1.1 导出ts文件-一个简单的柱状图 export const baseBarChart (xdata: string[], data: number[][], legendData: string[]) > {if (data.length 0) {return noData;}// 定义颜色数组const color [#00CCCC,#FF9900,#1677DC,#FF6666,#B366FF,#666…...
Three.js 阴影 (Shadow) 知识点整理
阴影主要由 castShadow 和 receiveShadow 控制,并通过不同类型的光源 (DirectionalLight、SpotLight、PointLight) 生成。我们将系统地整理与阴影相关的知识点。 1️⃣ 基础概念 castShadow 🎭:物体是否投射阴影。receiveShadow Ἵ…...
GHCTF web方向题解
upload?SSTI! import os import refrom flask import Flask, request, jsonify,render_template_string,send_from_directory, abort,redirect from werkzeug.utils import secure_filename import os from werkzeug.utils import secure_filenameapp Flask(__name__)# 配置…...
Logic-RL:小参数qwen模型复现DeepSeek R1 zero
最近很多参照DeepSeek模型训练推理模型的工作,本文将深入 “Logic-RL: Unleashing LLM Reasoning with Rule-Based Reinforcement Learning” 的论文,该论文提出了一种Rule-Based Reinforcement Learning, Logic-RL框架,旨在提升 LLM 的逻辑推理能力,在qwen2.5-7b-instruct…...
CVE-2017-5645(使用 docker 搭建)
介绍: 是一个与 Apache Log4j2 相关的安全漏洞,属于远程代码执行,它可能允许攻击者通过构造恶意的日志信息 在目标系统上执行任意代码 Log4j2 介绍 Log4j2 是 Apache 的一个日志记录工具,属于 Java 应用的日志框架,它是 Log4j 的升级版,性能更好,功能更多.它被广泛的适用于 J…...
conda install 和 pip install 的区别
conda install 和 pip install 是两个常用的包安装命令,但它们在很多方面存在差异。 1. 所属管理系统不同 1.1 conda install conda install 是Anaconda和Miniconda发行版自带的包管理工具 conda 的安装命令。conda 是一个跨平台的开源包管理系统和环境管理系统&…...
