【LLM大模型】LangChain--如何使用大模型

LangChain是一个用于构建和管理语言模型链的开源框架,旨在帮助开发者更高效地构建和部署复杂的自然语言处理(NLP)应用。LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度

LangChain的应用场景非常广泛:智能问答系统、文本生成、信息提取、 智能客服等等。

LangChain主要组件
  • Models:模型
  • Prompts:提示
  • Memory:记忆
  • Indexes:索引
  • Chains:链,一系列对各种组件的调用
  • Agents:代理,决定模型采取哪些行动
Models

Models模块提供了与不同类型语言模型进行交互的接口和能力。这些语言模型包括但不限于OpenAI的GPT系列、Google的LaMDA、Meta的LLaMa等。通过Models模块,开发者可以轻松地接入和使用这些强大的语言模型,构建复杂的自然语言处理任务。

在LangChain中,语言模型被分为LLMs、Chat Models和Text Embedding三类。Models模块针对不同类型的模型提供了相应的类和操作方法,以满足不同的应用场景需求。

常用大模型的下载库:huggingface、modelscope

代码语言:javascript

pip install langchain
pip install qianfan

我们可以去百度千帆大模型平台,创建模型,调用API Key 和 Secret Key:

在这里插入图片描述

我们可以通过langchain调用文心一言4.0模型:

代码语言:javascript

import os
from langchain_community.llms import QianfanLLMEndpoint

os.environ['QIANFAN_AK'] = "*********"
os.environ['QIANFAN_SK'] = "*********"

llm = QianfanLLMEndpoint(model="ERNIE-Bot-turbo")
res = llm("请写一首诗把")
print(res)

输出:

代码语言:javascript

好的,以下是一首关于春天的诗:

春风轻拂绿意浓,
花开满园醉人心。
蝴蝶翩翩飞舞处,
小鸟欢歌乐不停。

田野间麦浪滚滚,
桃花笑语映日红。
万物复苏生机起,
春日美景入诗中。
Chat Models

Chat Models模块专注于处理和交互基于聊天消息格式的语言模型。与传统的LLMs(大型语言模型)不同,Chat Models的输入和输出是格式化的聊天消息,这使得它们更适合处理对话式任务和生成更加自然、上下文相关的响应。

代码语言:javascript

import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain.schema.messages import HumanMessage

os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"

chat = QianfanChatEndpoint(model="ERNIE-Bot-turbo")
messages = [HumanMessage(content="给我写一首唐诗")]
res = chat(messages)
print(res)

输出:

代码语言:javascript

content='当然可以。这是一首名为《秋日思乡》的唐诗:\n\n秋风吹过菊花黄,\n归心似箭逐月行。\n故土犹在梦难留,\n望断天涯泪满衣。' additional_kwargs={'finish_reason': '', 'request_id': 'as-508nd0m8r2', 'object': 'chat.completion', 'search_info': [], 'usage': {'prompt_tokens': 5, 'completion_tokens': 50, 'total_tokens': 55}} response_metadata={'token_usage': {'prompt_tokens': 5, 'completion_tokens': 50, 'total_tokens': 55}, 'model_name': 'ERNIE-Bot-turbo', 'finish_reason': 'stop', 'id': 'as-508nd0m8r2', 'object': 'chat.completion', 'created': 1722134892, 'result': '当然可以。这是一首名为《秋日思乡》的唐诗:\n\n秋风吹过菊花黄,\n归心似箭逐月行。\n故土犹在梦难留,\n望断天涯泪满衣。', 'is_truncated': False, 'need_clear_history': False, 'usage': {'prompt_tokens': 5, 'completion_tokens': 50, 'total_tokens': 55}} id='run-871f99c6-248e-48d9-91c6-7e7779bb59b2-0' usage_metadata={'input_tokens': 5, 'output_tokens': 50, 'total_tokens': 55}
提示模板

提示模板就是把一些常见的提示整理成模板,用户只需要修改模板中特定的词语,就能快速准确地告诉模型自己的需求。

代码语言:javascript

import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain.prompts import ChatPromptTemplate


os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"


template_str = """你是一位专业的小红书运营官。\n
对于售价为 {price} 元的 {flower_name} ,您能提供一个吸引人的简短描述吗? 一句话"""

promp_emplate = ChatPromptTemplate.from_template(template_str)
prompt = promp_emplate.format_messages(flower_name=["玫瑰"], price='50')


print('prompt-->', prompt)

chat = QianfanChatEndpoint(
    streaming=True,model="ERNIE-Bot-turbo"
)

result = chat(prompt)
print(result)

输出:

代码语言:javascript

content='珍贵的玫瑰花瓣,如同初升的朝阳般温暖而甜美,为您的生活增添一丝独特的香气和温暖。🌹 💕 (仅供参考,请根据实际情况调整话语)' response_metadata={'token_usage': {'prompt_tokens': 35, 'completion_tokens': 37, 'total_tokens': 72}, 'model_name': 'ERNIE-Bot-turbo', 'finish_reason': 'stop'} id='run-c15bff74-741d-4004-9412-ad6003e8f96c-0'
Embeddings Models

Embeddings Models可以为文本创建向量映射,这样就能在向量空间里去考虑文本;在NLP中,Embedding的作用就是将数据进行文本向量化。

代码语言:javascript

import os
from langchain_community.embeddings import QianfanEmbeddingsEndpoint


os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"


embed = QianfanEmbeddingsEndpoint()
res1 = embed.embed_query('我爱你')
print(res1)

res2 = embed.embed_documents(['我爱你', '我喜欢你'])
print(res2)

输出:

代码语言:javascript

[INFO][2024-07-28 10:56:16.725] oauth.py:228 [t:5544]: trying to refresh access_token for ak `CNzMCb***`
[INFO][2024-07-28 10:56:16.988] oauth.py:243 [t:5544]: sucessfully refresh access_token
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* [0.17311938107013702, -0.0963786169886589, 0.07811204344034195, 0.039995335042476654, 0.005461528431624174, -0.045833807438611984, -0.026092199608683586, -0.019432438537478447, -0.017971372231841087, 0.056535426527261734, 0.048402175307273865, -0.054045066237449646, -0.04589874669909477, 0.05654500052332878, -0.07421743124723434, -0.024018535390496254, -0.09536591917276382, 0.020946761593222618, -0.01938055269420147, -0.0009667843696661294, 0.12385024130344391, -0.08784071356058121, 0.056188035756349564, -0.06564845889806747, 0.019532460719347, -0.006963981315493584, 0.025636369362473488, 0.009537937119603157, -0.04155377671122551, 0.07116766273975372, 0.0938122421503067, 0.021260013803839684, 0.03518209606409073, 0.008317320607602596, -0.0019243070855736732, 0.11220177263021469, 0.044228050857782364, 0.0460934080183506, -0.14091721177101135, 0.019789453595876694, 0.013656237162649632, -0.061166953295469284, -0.038639772683382034, -0.062454089522361755, 0.016178900375962257, -0.03011832945048809, -0.08439959585666656, 0.0022036435548216105, -0.07330037653446198, -0.10189015418291092, -0.05381982773542404, 0.04427957907319069, 0.01491308119148016, 0.03808053955435753, 0.02410702407360077, 0.03526068106293678, -0.05644663795828819, -0.030593788251280785, 0.10528215020895004, 0.0047299060970544815, -0.01718810573220253, -0.006194483954459429, -0.12342105805873871, -0.0019607245922088623, 0.03217269107699394, -0.010351389646530151, 0.0417243130505085, 0.029990680515766144, 0.09183978289365768, -0.04874948039650917, -0.04338744655251503, 0.02469373308122158, -0.019464919343590736, 0.10235122591257095, 3.215195101802237e-05, 0.036971136927604675, -0.0842595025897026, -0.05434097722172737, -0.002266199328005314, 0.018721122294664383, 0.046459950506687164, -0.011437651701271534, 0.005042331293225288, 0.004760058596730232, -0.019767258316278458, -0.020541315898299217, -0.04401717334985733, 0.03678600862622261, 0.011489552445709705, -0.0820135772228241, 0.03179977461695671, -0.024241261184215546, 0.07592024654150009, -0.03596271574497223, -0.12544889748096466, -0.05337859317660332, 0.011707315221428871, -0.08666867762804031, 0.028518740087747574, 0.06716343015432358, -0.052857350558042526, -0.06656564027070999, 0.0430540069937706, 0.03919413313269615, -0.000551051867660135, 0.06644643843173981, 0.02871069312095642, -0.13079498708248138, 0.07267789542675018, 0.03879015892744064, -0.0626017153263092, 0.06336624175310135, 0.01577211171388626, 0.0015874304808676243, -0.09587012976408005, 0.08869410306215286, -0.12326595187187195, -0.048301536589860916, -0.04627477750182152, -0.043050531297922134, 0.0045365625992417336, -0.011143677867949009, 0.17218466103076935, 0.10462985187768936, -0.05481578782200813, 0.0205503199249506, -0.031914737075567245, 0.04180685803294182, -0.08946213126182556, 0.0643886998295784, -0.045430514961481094, -0.03911157697439194, 0.04744989424943924, -0.055206093937158585, -0.04333275556564331, -0.016984358429908752, -0.03152317926287651, 0.001480796025134623, -0.06254784017801285, 0.01827562041580677, -0.07848525047302246, 0.0761973038315773, 0.0003041250165551901, -0.018855556845664978, 0.09780651330947876, 0.10803353786468506, 0.0842244103550911, -0.027804864570498466, -0.08139058947563171, 0.04273829609155655, -0.018516382202506065, 0.08864732086658478, -0.1488604098558426, -0.029488295316696167, 0.011920991353690624, -0.04462737962603569, 0.0056211198680102825, 0.0067628188990056515, 0.012444596737623215, -0.052288733422756195, -0.06419272720813751, -0.032742660492658615, -0.024124518036842346, 0.01012441050261259, 0.03110273741185665, -0.03909829631447792, -0.04320163652300835, 0.013529632240533829, -0.022782107815146446, 0.04383174329996109, -0.012891656719148159, 0.15987786650657654, -0.015665791928768158, -0.054463084787130356, -0.09946627914905548, -0.03700590878725052, -0.0010551792802289128, 0.1662973016500473, -0.07429419457912445, -0.009254837408661842, -0.012464023195207119, 0.012699784711003304, 0.0502377524971962, -0.004791815299540758, 0.041303977370262146, -0.052285585552453995, -0.04075608775019646, 0.010103428736329079, 0.06692855805158615, -0.06185309216380119, -0.0644482672214508, 0.021635638549923897, 0.10284976661205292, 0.0012724905973300338, 0.13313627243041992, -0.03541024029254913, 0.008838660083711147, -0.02354736439883709, -0.002149595646187663, -0.13542407751083374, -0.0074654086492955685, 0.11356885731220245, -0.0012978651793673635, -0.08244557678699493, 0.04902956634759903, -0.0063301557675004005, 0.05374397337436676, 0.01589476503431797, -0.024317225441336632, 0.10789807140827179, -0.026865793392062187, 0.04794687405228615, 0.005194827448576689, -0.12212704122066498, -0.019639208912849426, 0.09773065149784088, 0.08052042871713638, 0.06434154510498047, 0.1341923326253891, -0.03745073825120926, -0.027674179524183273, 0.0643153265118599, 0.07157416641712189, 0.053725406527519226, -0.05453205481171608, 0.0767812579870224, 0.10964184254407883, 0.04158182069659233, -0.004959672689437866, -0.12060683965682983, 0.022289268672466278, 0.014868199825286865, -0.032756395637989044, 0.05342009291052818, 0.016302553936839104, 0.03813028708100319, 0.046586524695158005, -0.004367701709270477, -0.02919246256351471, 0.0231705941259861, 0.012244513258337975, 0.02936718240380287, -0.03598557040095329, -0.0990867018699646, -0.10058268904685974, -0.006947755813598633, 0.09843306988477707, -0.05054671689867973, -0.032868918031454086, 0.02381402812898159, -0.06296893209218979, -0.08558419346809387, -0.02711925283074379, 0.007219271268695593, -0.008877587504684925, 0.014889375306665897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.11387636512517929, 0, 0, 0, 0, -0.17244486510753632, 0, 0, 0, 0, 0, 0, 0, 0, -0.12753252685070038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
*/
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* [[0.1731303632259369, -0.09634850174188614, 0.07816127687692642, 0.039980221539735794, 0.0054778545163571835, -0.045868244022130966, -0.026062440127134323, -0.019449805840849876, -0.01801307499408722, 0.05654280632734299, 0.04836028814315796, -0.05404885485768318, -0.04593881592154503, 0.05657430738210678, -0.07418347150087357, -0.024016546085476875, -0.0953541100025177, 0.020964322611689568, -0.01933935470879078, -0.0010001560440286994, 0.12386968731880188, -0.08785390108823776, 0.05621049925684929, -0.06561771035194397, 0.01953473687171936, -0.006997905671596527, 0.025619538500905037, 0.009538337588310242, -0.041529443114995956, 0.07118349522352219, 0.09377264231443405, 0.021254587918519974, 0.035202059894800186, 0.008299731649458408, -0.0019056544406339526, 0.11218218505382538, 0.044251520186662674, 0.04610373452305794, -0.14087629318237305, 0.01975364424288273, 0.013616025447845459, -0.061147887259721756, -0.03864365443587303, -0.06251809746026993, 0.016233500093221664, -0.030100420117378235, -0.08442800492048264, 0.0022232206538319588, -0.07335403561592102, -0.10186680406332016, -0.053831323981285095, 0.044278278946876526, 0.014872458763420582, 0.03808218240737915, 0.024127809330821037, 0.03528764471411705, -0.05642213672399521, -0.030611077323555946, 0.1052338257431984, 0.004743505734950304, -0.01719396747648716, -0.006177573464810848, -0.1234244704246521, -0.0020027922000736, 0.03217214345932007, -0.010359552688896656, 0.0416712649166584, 0.02997693419456482, 0.09184076637029648, -0.048722803592681885, -0.04337553679943085, 0.024697182700037956, -0.019479159265756607, 0.10236021876335144, -1.5271956499418593e-06, 0.036961499601602554, -0.08426558971405029, -0.054339464753866196, -0.0022730871569365263, 0.018683703616261482, 0.04648237302899361, -0.011451843194663525, 0.0050391703844070435, 0.004738252609968185, -0.019782893359661102, -0.020539889112114906, -0.04402852803468704, 0.03676902875304222, 0.011474682949483395, -0.08197476714849472, 0.03176981210708618, -0.024230262264609337, 0.0759047195315361, -0.03592647612094879, -0.12546169757843018, -0.05340857803821564, 0.011721273884177208, -0.08665436506271362, 0.028534121811389923, 0.06716544181108475, -0.052856698632240295, -0.06654420495033264, 0.04304922744631767, 0.039207734167575836, -0.0004969750298187137, 0.06642762571573257, 0.02873707190155983, -0.130813866853714, 0.07261481881141663, 0.03878645971417427, -0.06264033913612366, 0.06336422264575958, 0.015796495601534843, 0.0015605518128722906, -0.09584233909845352, 0.08869029581546783, -0.12321485579013824, -0.04828774556517601, -0.046266376972198486, -0.04305986315011978, 0.004502714611589909, -0.011150230653584003, 0.17217248678207397, 0.10460729151964188, -0.0548018254339695, 0.020583977922797203, -0.03194836527109146, 0.041807230561971664, -0.08947951346635818, 0.06438485532999039, -0.04543781280517578, -0.03910034894943237, 0.04743644967675209, -0.055203184485435486, -0.04334700480103493, -0.016934368759393692, -0.031540725380182266, 0.001511279260739684, -0.06253688037395477, 0.018283924087882042, -0.07847001403570175, 0.07623295485973358, 0.00027031931676901877, -0.018840251490473747, 0.09783163666725159, 0.1080268993973732, 0.084246926009655, -0.02776608057320118, -0.08138692378997803, 0.04269621893763542, -0.018515726551413536, 0.08865175396203995, -0.14890950918197632, -0.029510991647839546, 0.011920819990336895, -0.04463885724544525, 0.005628664046525955, 0.006768232211470604, 0.012483957223594189, -0.05229240655899048, -0.06421525776386261, -0.03276282921433449, -0.024104837328195572, 0.010178714990615845, 0.031090423464775085, -0.03905665501952171, -0.043247003108263016, 0.013554130680859089, -0.022804733365774155, 0.04385185241699219, -0.012912891805171967, 0.1598769873380661, -0.0156499445438385, -0.054463885724544525, -0.099462129175663, -0.03701178357005119, -0.0010660071857273579, 0.16629938781261444, -0.07428492605686188, -0.009230648167431355, -0.012454706244170666, 0.012658101506531239, 0.05026748403906822, -0.004758336581289768, 0.04129819944500923, -0.052276019006967545, -0.04077630862593651, 0.010061093606054783, 0.0669349655508995, -0.06186607852578163, -0.06442253291606903, 0.021678004413843155, 0.10286121815443039, 0.0012748338049277663, 0.13312067091464996, -0.03543088957667351, 0.008818977512419224, -0.02351522073149681, -0.0021335084456950426, -0.13540764153003693, -0.0075097777880728245, 0.11360612511634827, -0.0013167397119104862, -0.08245868980884552, 0.048978742212057114, -0.006350378040224314, 0.053741455078125, 0.015910958871245384, -0.024317460134625435, 0.1078944057226181, -0.026878416538238525, 0.0479239821434021, 0.00523604778572917, -0.12213002890348434, -0.019617265090346336, 0.09775438904762268, 0.080501988530159, 0.06435265392065048, 0.13420188426971436, -0.03745100274682045, -0.027692310512065887, 0.06433158367872238, 0.07156147062778473, 0.0536842942237854, -0.05452205613255501, 0.07680387794971466, 0.1096375361084938, 0.04158282279968262, -0.004957149736583233, -0.12058490514755249, 0.022296424955129623, 0.014845090918242931, -0.03276931867003441, 0.053395140916109085, 0.016309699043631554, 0.03810003399848938, 0.0465787835419178, -0.004363955929875374, -0.02916048839688301, 0.023168154060840607, 0.012247135862708092, 0.029369663447141647, -0.03598378971219063, -0.0990738645195961, -0.10057568550109863, -0.00692224083468318, 0.09848365932703018, -0.05058170482516289, -0.03288383409380913, 0.023826459422707558, -0.06296761333942413, -0.08555896580219269, -0.027183089405298233, 0.007223169319331646, -0.008823983371257782, 0.014906640164554119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.11388964205980301, 0, 0, 0, 0, -0.17246344685554504, 0, 0, 0, 0, 0, 0, 0, 0, -0.1275666505098343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0.16389910876750946, -0.06770157068967819, 0.04045385494828224, 0.12051095813512802, -0.001777258119545877, -0.062474220991134644, -0.05002710968255997, -0.014913847669959068, 0.017864150926470757, 0.02574882097542286, 0.022807372733950615, -0.041328828781843185, -0.02558823674917221, 0.04861540347337723, -0.029599899426102638, 0.013830029405653477, -0.1407146006822586, -0.002121110912412405, 0.008856385946273804, -0.005490437615662813, 0.06555238366127014, -0.10115061700344086, 0.045327723026275635, -0.07834116369485855, 0.01891659013926983, -0.014293101616203785, 0.013221134431660175, -0.004415486473590136, -0.005760273430496454, 0.08298999071121216, 0.14221566915512085, 0.01962032914161682, 0.04692693427205086, -0.016003498807549477, -0.046685487031936646, 0.0973377600312233, 0.03330681100487709, 0.0039037258829921484, -0.1496174931526184, 0.004967049695551395, 0.03225664794445038, -0.10554232448339462, -0.008176950737833977, -0.013541444204747677, 0.02877664379775524, -0.04292839765548706, -0.061834465712308884, 0.007461403030902147, -0.0824197456240654, -0.027035556733608246, -0.022163042798638344, 0.07449305802583694, 0.005943989381194115, 0.03000137396156788, 0.012065282091498375, 0.02709725871682167, 0.028293050825595856, -0.07819213718175888, 0.0936780720949173, -0.02314838580787182, -0.05561741068959236, 0.013178414665162563, -0.08483412861824036, 0.0013117095222696662, 0.08647595345973969, 0.030305908992886543, 0.03919273614883423, 0.06268090009689331, 0.09513470530509949, -0.028437228873372078, 0.01003415696322918, 0.04277034476399422, -0.02100389637053013, 0.0657079815864563, 0.035147592425346375, 0.0313875675201416, -0.08001073449850082, -0.060808081179857254, -0.00380363198928535, 0.008916310966014862, 0.05403676629066467, -0.0660042017698288, -0.020998509600758553, -0.03541043773293495, -0.019833741709589958, -0.05287456512451172, -0.04867412522435188, 0.03675905987620354, 0.023823507130146027, -0.0426037572324276, -0.01942325197160244, -0.05950932204723358, 0.02904636412858963, 0.00010870093683479354, -0.12397242337465286, -0.028665585443377495, -0.009277568198740482, -0.1302555948495865, 0.03387037664651871, 0.1270952671766281, -0.0642475113272667, -0.040525030344724655, 0.05341024696826935, 0.033968258649110794, 0.01654127798974514, 0.08043668419122696, -0.006379600148648024, -0.12655603885650635, 0.09320463985204697, 0.0823647528886795, -0.09285281598567963, 0.04959321394562721, -0.009988158009946346, -0.013809377327561378, -0.12832705676555634, 0.08220911771059036, -0.052709806710481644, 0.023893173784017563, -0.036447469145059586, -0.02997385896742344, 0.00121726980432868, -0.0189362820237875, 0.06822358816862106, 0.15930724143981934, -0.025683922693133354, 0.05501779541373253, -0.019372737035155296, -0.007177039980888367, -0.055258847773075104, 0.06032353639602661, 0.02113361842930317, 0.0033874008804559708, 0.060398783534765244, -0.07765013724565506, -0.019809719175100327, -0.038755737245082855, -0.049449872225522995, 0.00031932935235090554, -0.09415747970342636, 0.050694216042757034, -0.04579533636569977, 0.007168720010668039, 0.0020155622623860836, -0.012319398112595081, 0.1080072745680809, 0.06736469268798828, 0.06378096342086792, -0.01779053546488285, -0.05347374826669693, 0.013121265918016434, -0.04967748373746872, 0.10891570150852203, -0.10875508934259415, -0.031661078333854675, -0.0053736744448542595, -0.06597929447889328, 0.009702722541987896, -0.02499106526374817, 0.03875891491770744, -0.016639281064271927, -0.0549413338303566, -0.05765439197421074, 0.012186153791844845, -0.013905646279454231, 0.01614615134894848, -0.07023987174034119, 0.027266694232821465, 0.08325576782226562, -0.05654871091246605, 0.03753071278333664, -0.04701317474246025, 0.15308474004268646, -0.025858959183096886, -0.011655387468636036, -0.10311544686555862, 0.03137284144759178, -0.014122921042144299, 0.128634974360466, -0.02543693222105503, -0.009841613471508026, -0.04653692990541458, 0.004685093183070421, -0.004517170134931803, -0.03267235308885574, 0.03400425612926483, -0.08803475648164749, -0.07121620327234268, -0.009479966945946217, 0.03879011794924736, -0.028311043977737427, -0.05191628634929657, 0.03414444252848625, 0.08767206221818924, 0.022109854966402054, 0.10569605976343155, -0.023431982845067978, -0.012663538567721844, -0.04202290624380112, -0.005510961636900902, -0.07364701479673386, -0.06781359016895294, 0.1226738914847374, -0.0443853922188282, -0.03154117241501808, 0.01912350207567215, 0.0038300000596791506, 0.031059106811881065, 0.00041550720925442874, -0.00885219406336546, 0.045320067554712296, -0.02487872913479805, 0.06142089143395424, -0.03697742149233818, -0.13536281883716583, 0.020091462880373, 0.08493854850530624, 0.07990704476833344, 0.06457094848155975, 0.12465929239988327, -0.004836426116526127, -0.06268123537302017, 0.07718651741743088, 0.10354164987802505, 0.03288743272423744, -0.05115475133061409, 0.0035111596807837486, 0.15599209070205688, 0.028728671371936798, -0.010757789947092533, -0.1506638526916504, 0.01406779419630766, 0.04831463843584061, -0.04138438403606415, 0.010591553524136543, 0.02598242089152336, -0.05162525922060013, 0.045510221272706985, -0.011666939593851566, -0.052717097103595734, 0.041030675172805786, 0.003010846208781004, 0.07883022725582123, -0.05143994837999344, -0.09701495617628098, -0.032211508601903915, -0.06290502101182938, 0.10223261266946793, -0.027773438021540642, -0.03940271958708763, 0.05758827552199364, -0.033425021916627884, -0.0805060863494873, -0.07255500555038452, 0.05357032269239426, 0.00097850919701159, 0.03717030584812164, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.08706239610910416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.12385813146829605, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.23807896673679352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
*/
Prompts

Prompt是指当用户输入信息给模型时加入的提示,这个提示的形式可以是zero-shot或者few-shot等方式,目的是让模型理解更为复杂的业务场景以便更好的解决问题。

代码语言:javascript

import os
from langchain import PromptTemplate
from langchain_community.llms import QianfanLLMEndpoint

os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"

template = "我的邻居姓{lastname},他生了个儿子,给他儿子起个名字"

prompt = PromptTemplate(
    input_variables=["lastname"],
    template=template,
)

prompt_text = prompt.format(lastname="贾")
print(prompt_text)


llm = QianfanLLMEndpoint()

result = llm(prompt_text)
print(result)

输出:

代码语言:javascript

我的邻居姓贾,他生了个儿子,给他儿子起个名字
D:\apollo\anaconda\lib\site-packages\langchain_core_api\deprecation.py:139: LangChainDeprecationWarning: The method `BaseLLM.__call__` was deprecated in langchain-core 0.1.7 and will be removed in 0.3.0. Use invoke instead.
  warn_deprecated(
[INFO][2024-07-28 11:03:13.756] oauth.py:228 [t:29636]: trying to refresh access_token for ak `CNzMCb***`
[INFO][2024-07-28 11:03:14.095] oauth.py:243 [t:29636]: sucessfully refresh access_token
给邻居家的新生儿起名字是一件非常重要的事情,需要考虑到很多因素,如家庭传统、文化背景、父母的偏好等等。基于您提供的信息,我为您提供以下几个名字供您参考:

1. 贾瑞安:这个名字寓意着平安、吉祥,是一个非常美好的名字。
2. 贾俊豪:这个名字寓意着英俊、豪爽,是一个很有男子气概的名字。
3. 贾宇航:这个名字寓意着广阔的天地、无限的可能,适合有远大抱负的孩子。
4. 贾浩然:这个名字寓意着浩渺、自然,是一个很自然的名字。
5. 贾睿诚:这个名字寓意着睿智、诚实,是一个很有品行的名字。
6. 贾梓轩:这个名字适合有艺术天赋或喜欢音乐的孩子,寓意着广阔的舞台和无限的可能。
  • zero-shot学习通常通过精心设计的提示(prompt)来实现。可以构建一个包含适当上下文和指令的提示,然后将其传递给LLM,引导模型在没有任何特定任务示例的情况下完成任务。
  • few-shot场景中为LLM提供少量的任务示例作为上下文。这些示例展示了如何执行任务,并帮助模型快速理解任务的要求。
  • Few-shot学习在LangChain中特别有用,因为它可以在少量样本的情况下提高模型的性能。

few-shot来使用提示

代码语言:javascript

from langchain_community.llms import QianfanLLMEndpoint
import os
from langchain import PromptTemplate, FewShotPromptTemplate

os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"


examples = [
    {"word": "开心", "fanyici": "难过"},
    {"word": "黑", "fanyici": "白"},
]

example_template = """
单词: {word}
反义词: {fanyici}\n
"""

example_prompt = PromptTemplate(
    input_variables=["word", "fanyici"],
    template=example_template,
)

few_shot_prompt = FewShotPromptTemplate(                  
    examples=examples,
    example_prompt=example_prompt,
    prefix="给出每个单词的反义词",
    suffix="单词: {input}\n反义词:",
    input_variables=["input"],
    example_separator="\n",
)

prompt_text = few_shot_prompt.format(input="亮")
print(prompt_text)
print('*'*30)

llm = QianfanLLMEndpoint(model='Qianfan-Chinese-Llama-2-7B')
print(llm(prompt_text))

输出:

代码语言:javascript

给出每个单词的反义词\n
单词: 开心
反义词: 难过\n
\n
单词: 黑
反义词: 白\n
\n单词: 亮\n反义词:
******************************
暗

我们可以通过打印出来的提示词观察到,prefix参数就是前缀的提示词,examples是给出的实例,example_prompt定义了如何将每个示例格式化为字符串(规定了实例怎么被输出出来)。

Chains(链)

Chains可以简单理解为对组件的调用序列,其中可以包括其他Chains。在LangChain中,Chains可以是非常简单的,如只包含一个Prompt模板和大型语言模型(LLM)的LLMChain;也可以是更复杂的,涉及多个步骤和多种组件的调用。Chains的主要特点是其输出会成为下一个组件或Chain的输入,从而实现功能的串联。

Chains的类型

LangChain中Chains的类型多样,以满足不同的需求。以下是一些常见的Chains类型:

  1. LLMChain:最基本的Chains类型,整合了大型语言模型和提示模板。它接受用户输入,通过提示模板格式化后传递给LLM,并返回LLM的响应。
  2. TransformChain:用于处理Chains之间的输入和输出,支持自定义的转换函数,便于Chains之间的数据传输。
  3. SequentialChain:顺序链,允许将多个Chains按顺序组合起来,每个Chain的输出成为下一个Chain的输入。这可以用于执行多步骤的任务。
  4. SimpleSequentialChain:与SequentialChain类似,但每个步骤都有一个单一的输入/输出。
  5. 异步Chains:用于执行异步函数和任务,如异步LLMChain等。
  6. 实用工具Chains:包含各种实用工具的Chains,如SQL数据库Chains、Bash Chains等,允许将自然语言转换为SQL查询、运行Bash命令等。

代码语言:javascript

from langchain_community.llms import QianfanLLMEndpoint
import os
from langchain import PromptTemplate, FewShotPromptTemplate
from langchain.chains import LLMChain
from langchain.chains import SimpleSequentialChain

os.environ['QIANFAN_AK'] = "***"
os.environ['QIANFAN_SK'] = "***"

template = "我的邻居姓{lastname},他生了个儿子,给他儿子起个名字"

first_prompt = PromptTemplate(
    input_variables=["lastname"],
    template=template,
)
llm = QianfanLLMEndpoint()

first_chain = LLMChain(llm=llm, prompt=first_prompt)

# 创建第二条链
second_prompt = PromptTemplate(
    input_variables=["child_name"],
    template="邻居的儿子名字叫{child_name},给他起一个小名",
)

second_chain = LLMChain(llm=llm, prompt=second_prompt)

# 链接两条链
overall_chain = SimpleSequentialChain(chains=[first_chain, second_chain], verbose=True)

print(overall_chain)

catchphrase = overall_chain.run("孙")
print(catchphrase)

输出:

在这里插入图片描述

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的所有 ⚡️ 大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

全套 《LLM大模型入门+进阶学习资源包↓↓↓ 获取~

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值