LangChain构建大语言模型应用2

一、fewshot生成

如果想系统学习,这些看不懂最好按顺序把专栏看完,因为我是循序渐进的,一个代码就一两个知识点,不难。

from dotenv import load_dotenv
load_dotenv()
import os
os.environ['OPENAI_BASE_URL']='https://key.wenwen-ai.com/v1'
os.environ['OPENAI_API_KEY']='sk-QO854BkCudLocaq6D80971609aA742088975174b308990Ec'
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.prompts import FewShotPromptTemplate

llm = ChatOpenAI(model='gpt-3.5-turbo-1106',temperature=0)

examples = [
  {'sence': '秋天', 'type': '五言绝句', 'text': '移舟泊烟渚,日暮客愁新。\n野旷天低树,江清月近人。'},
  {'sence': '冬天', 'type': '七言律诗', 'text': '昔人已乘黄鹤去,此地空余黄鹤楼。\n黄鹤一去不复返,白云千载空悠悠。\n晴川历历汉阳树,芳草萋萋鹦鹉洲。\n日暮乡关何处是?烟波江上使人愁。'},
]

example_template='这是一首描写{sence}的诗,格式为{type}:\n{text}'
example_prompt = PromptTemplate(template=example_template,input_variables=['sence','tpye','text'])
print(example_template)
prompt = FewShotPromptTemplate(
    examples = examples,
    example_prompt=example_prompt,
    example_separator='\n\n',
    prefix='请分析以下诗歌的格式,并按照格式要求创作诗歌。',
    suffix='写一首描写{sence}的诗,格式要求为{type}:\n',
    input_variables=['sence','type']
)
print(prompt)
print(prompt.format(sence='秋天',type='七言律诗'))

# 请分析以下诗歌的格式,并按照格式要求创作诗歌。
# 这是一首描写秋天的诗,格式为五言绝句:
# 移舟泊烟渚,日暮客愁新。
# 野旷天低树,江清月近人。
# 这是一首描写冬天的诗,格式为七言律诗:
# 昔人已乘黄鹤去,此地空余黄鹤楼。
# 黄鹤一去不复返,白云千载空悠悠。
# 晴川历历汉阳树,芳草萋萋鹦鹉洲。
# 日暮乡关何处是?烟波江上使人愁。
# 写一首描写秋天的诗,格式要求为七言律诗:

chain = prompt | llm
result = chain.invoke({'sence':'秋天', 'type':'五言绝句'})
print(result)

# content='秋风吹叶落,寂寞满庭秋。\n霜降天地冷,思念难言休。

二、conversationchain

这个链可以自动结合历史的信息进行生成。

import os
os.environ['OPENAI_BASE_URL']=''
os.environ['OPENAI_API_KEY']=''

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(model='gpt-3.5-turbo-1106')

# 简单对话场景
from langchain.chains import ConversationChain
conversation = ConversationChain(llm=llm,verbose=True)
print(conversation.prompt.template)

# while True:
#     human_input = input('User: ')  # hello | 你叫什么名字?
#     result = conversation.predict(input=human_input)
#     print('Assistant: ', result)

# 修改提示词
from langchain.chains import ConversationChain
from langchain.prompts import PromptTemplate

template = '''
你现在是一位中文助手,用中文回答。下面是一段人类和人工智能之间的友好对话。人工智能是健谈的,并根据其上下文提供许多具体细节。如果人工智能不知道一个问题的答案,它就会如实说它不知道。 

当前对话:
{history}
User:{input}
Assistant:
'''
prompt = PromptTemplate.from_template(template)

conversation = ConversationChain(llm=llm, prompt=prompt, verbose=True)
print(conversation.prompt.template)

while True:
    human_input = input('User: ')  # hello | 你叫什么名字? | 感冒吃什么药好得快?
    result = conversation.predict(input=human_input)
    print('Assistant: ', result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木珊数据挖掘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值