langchain入门系列之七 使用langchain解析新闻生成脱口秀剧本

本文将介绍使用langchain解析一段新闻,并根据内容生成一段脱口秀剧本。

安装依赖
langchain
langchain-community
qianfan
langsmith
numexpr
python-dotenv
chromadb
unstructured
transformers

还是和之前的文章一样,我们先配置.env文件。

touch .env
-------------------
在.env 文件中放入千帆相关参数:
QIANFAN_AK = "your key"
QIANFAN_SK = "your secret key"
编写langchain相关代码
from langchain_community.document_loaders import UnstructuredURLLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains.summarize import load_summarize_chain
from langchain.prompts import PromptTemplate
from langchain.llms import QianfanLLMEndpoint
from langchain.chat_models import QianfanChatEndpoint
from langchain.schema import HumanMessage
from dotenv import load_dotenv


load_dotenv()

url = "https://finance.sina.com.cn/jjxw/2024-08-26/doc-inckyeqz9611349.shtml"

# 获取文章内容并解析
def get_news(url):
    text_spliter = RecursiveCharacterTextSplitter(
        separators=["正文", "撰稿"],
        chunk_size=1000,
        chunk_overlap=5)
    loader = UnstructuredURLLoader(urls=[url])
    data = loader.load_and_split(text_spliter)
    return data[1:2]

# 总结新闻
def news_summary(url):
    data = get_news(url)
    llm = QianfanLLMEndpoint()
    prompt_template = """
                    总结新闻摘要,请按照以下格式生成摘要:
                    {text}
                    摘要总结:
                    """
    chinese_prompt = PromptTemplate(template=prompt_template, input_variables=["text"])
    chain = load_summarize_chain(llm, prompt=chinese_prompt)
    summary = chain.run(data)
    return summary

# 根据总结写脱口秀剧本
def news_summary_chat(url):
    summary = news_summary(url)
    # 使用对话模型可以提升对话效果
    chat_model = QianfanChatEndpoint(
        model="ERNIE-Bot-turbo",
        temperature=0.9
    )

    chat_template = """
        你将扮演一位脱口秀演员,你将根据所得到新闻摘要,写一段脱口秀的剧本。
        新闻摘要:{新闻}
        要求:{要求}
    """

    chat_prompt = PromptTemplate(template=chat_template)
    msg = [HumanMessage(content=chat_prompt.format(新闻=summary, 要求="请写一段脱口秀的剧本,要求不少于100字,不超过300字。"))]
    res = chat_model(msg)
    return res


print(news_summary_chat(url))




输出内容:
在这里插入图片描述
以上寥寥数行代码,就能将新闻撰写为脱口秀剧本,当然现在呈现的效果是很粗糙的,但是我们可以持续迭代优化,比如:我们可以找脱口秀资料训练模型、迭代优化脱口秀撰写的prompt,以及对生成的脱口秀再根据一些训练资料进行优化修改。虽然现在看起来是一条毛糙的小路,但是通过langchain我们可以将小路修成阳关大道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笑笑布丁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值