【丝滑的LangChain】我用python问gpt认不认识小范大人,它告诉我认识个der~

前言

嗨,大家好!我是海鸽。

《庆余年2》刚刚完结,热度不减,我忍不住好奇:我们的AI伙伴GPT,是否也对剧中那位机智过人的小范大人有所耳闻?

最近我们尝试了LangChain的调用,体验了一番免费的千问模型的问答。现在,我们再次挑战gpt,继续享受这种白嫖的乐趣。

结果出乎意料,让我大吃一惊!

话不多说,直接来看下过程吧。

安装

首先,依然是要先安装和导入LangChainGPT的相关包。

pip install langchain-openai==0.1.7
pip install langchain==0.2.1

获取 GPT KEY

访问 API 需要一个 API 密钥,本着免费的就是最好的心态,我们继续发扬白嫖的优良传统

API 密钥地址后台回复:GPT_API_free获取,有条件的可走官网途径(推荐)。

有了 Key,我们就可以开始我们的白嫖之旅了。

老规矩,将其保存在.env文件中。

问问 GPT 认不认识小范大人?

让我们问它“介绍一下范闲?详细些!

#! -*-conding=: UTF-8 -*-
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv, find_dotenv  # 导入dotenv库,用于加载环境变量

_ = load_dotenv(find_dotenv())  # 加载.env文件中的环境变量

llm = ChatOpenAI(temperature=0.9, base_url="https://api.chatanywhere.com.cn/v1",
                 model_name="gpt-3.5-turbo")


def simple_invoke(_llm):
    return _llm.invoke("介绍一下范闲?详细些!")


if __name__ == '__main__':
    result = simple_invoke(llm)
    print(result)

继续给我胡说八道~~

我们试着使用提示模板指导下它,看看能不能给我像样点的回答!

from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

from dotenv import load_dotenv, find_dotenv  # 导入dotenv库,用于加载环境变量

_ = load_dotenv(find_dotenv())  # 加载.env文件中的环境变量

llm = ChatOpenAI(temperature=0.9, base_url="https://api.chatanywhere.com.cn/v1",
                 model_name="gpt-3.5-turbo")

output_parser = StrOutputParser()


def template_invoke(_llm):
    prompt = ChatPromptTemplate.from_messages([
        ("system", "你是世界级的小说研究人员,你读过小说《庆余年》。"),
        ("user", "{input}")
    ])

    prompt_llm = prompt | _llm | output_parser

    return prompt_llm.invoke({"input": "介绍一下范闲?详细些!"})


if __name__ == '__main__':
    result2 = template_invoke(llm)
    print(result2)

好了,算是触碰到GPT 3.5的知识盲区了。

不是GPT 3.5更有性价比,实在是GPT 4用不起。

不过好在,GPT 4每天也是有3次免费机会的。

我们修改下模型为gpt-4:

llm = ChatOpenAI(temperature=0.9, base_url="https://api.chatanywhere.com.cn/v1",
                 # model_name="gpt-3.5-turbo")
                 model_name="gpt-4")

继续执行,这回总算是着调了点:

再问问 千问 认不认识小范大人?

千问使用见:LangChain入门:白嫖通义千问,打造免费的Qwen大模型聊天机器人

#! -*-conding=: UTF-8 -*-

import os
from dotenv import find_dotenv, load_dotenv
from langchain_community.llms import Tongyi
from langchain_core.runnables import RunnableSequence
from langchain.prompts import PromptTemplate

load_dotenv(find_dotenv())


class QwenTurboTongyi(Tongyi):
    model_name = "qwen-turbo"


def xiao_hei_zi():
    llm = QwenTurboTongyi(temperature=1)
    print(llm.model_name)
    template = '''
        介绍一下{question}?详细些!
    '''
    prompt = PromptTemplate(
        template=template,
        input_variables=["question"]
    )

    chain = RunnableSequence(prompt | llm)
    question = '范闲'
    res = chain.invoke({"question": question})
    print(res)


if __name__ == '__main__':
    xiao_hei_zi()

得到的结果是:

这里,我们仅仅问了qwen-turbo模型,无提示,效果也还凑合,感兴趣的可以测评下千问的其它模型。

小结

我们已经成功探索了LangChain中“Chain”的入门技巧。但这只是冰山一角,LangChain的世界远不止于此。

随着我们深入,高级功能将逐渐展现,赋予我们更强大的逻辑处理能力。

不仅如此,LangChain还支持自定义Chain,让我们能够根据特定需求,打造个性化的智能解决方案。

更多python知识,请关注后续文章更新。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海哥python

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

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

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

打赏作者

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

抵扣说明:

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

余额充值