likes
comments
collection
share

LangChain入门之 GPT 和小范大人不太熟?

作者站长头像
站长
· 阅读数 28

前言

嗨,大家好!我是海鸽。

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

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

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

LangChain入门之 GPT 和小范大人不太熟?

LangChain入门之 GPT 和小范大人不太熟?

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

安装

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

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

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

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

有条件的可走官网途径。

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

LangChain入门之 GPT 和小范大人不太熟?

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

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

#! -*-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)

继续给我胡说八道~~

LangChain入门之 GPT 和小范大人不太熟?

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

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 simple_invoke(_llm):
    return _llm.invoke("介绍一下范闲?详细些!")


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的知识盲区了。

LangChain入门之 GPT 和小范大人不太熟?

不是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入门之 GPT 和小范大人不太熟?

再问问千问

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()

得到的结果是:

LangChain入门之 GPT 和小范大人不太熟?

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

小结

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

随着我们深入,高级功能将逐渐展现,赋予我们更强大的逻辑处理能力。不仅如此,LangChain还支持自定义Chain,让我们能够根据特定需求,打造个性化的智能解决方案。

具体怎么使用,请关注后续文章更新。

转载自:https://juejin.cn/post/7377200392058880015
评论
请登录