零基礎langchain實戰一:模型、提示詞和解析器

一,使用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;他的主要任務就是把客戶端產生的…