LangChain 实战课心得1 | 豆包MarsCode AI刷题

118 阅读2分钟

前期准备

在开始本地部署LangChain 实战课之前,主要困惑大家的是关于API_KEY的问题,国外的大模型申请不了,国内的大模型没有教程,在这里其实大家可以不用太过于焦虑,万事开头难,也不要在第一步就放弃了,如果大家申请不了国外大模型的API_KEY,可以在网上搜索一些国内大模型的申请教程,推荐大家阅读AI练中学的README文档,里面有详细的火山大模型申请攻略。

代码示例

在获得API_KEY、BASE_URL还有MODEL这三个关键参数后,就可以跑一下下面的代码示例,如果成功运行了,那么恭喜你,你已经迈出了最困难的一步。

import os

api_key = os.environ.get("ARK_API_KEY")
model = os.environ.get("LLM_MODELEND")

from langchain_openai import ChatOpenAI

# llm = OpenAI(model_name="gpt-3.5-turbo-instruct",max_tokens=200)
llm = ChatOpenAI(
    openai_api_key=api_key,
    model=model,
    openai_api_base="https://ark.cn-beijing.volces.com/api/v3",
)

text = llm.predict("请给我写一句情人节红玫瑰的中文宣传语")
print(text)

第2节思考题

LangChain的核心价值思考

高效利用语言模型的能力,简化复杂的 API 调用;增强语言模型的上下文感知和推理能力;提供模块化和可扩展的开发框架;加速应用开发和迭代。

试一试HuggingFace开源社区中的其它模型

这里大家要申请HuggingFace开源社区的API_token

import os

os.environ["HUGGINGFACEHUB_API_TOKEN"] = ""
from langchain import HuggingFaceHub

llm = HuggingFaceHub(
    repo_id="bigscience/bloom-1b7", model_kwargs={"temperature": 0.2, "max_length": 500}
)

text = llm.invoke("请你给违反交通规则的小朋友讲解危害!")

print(text)

总结

其实前面这几个小节的代码,最重要的还是API_KEY、BASE_URL还有MODEL这三个关键参数一定要在环境变量中定义,然后在调用接口时声明对应的API_KEY、BASE_URL还有MODEL,否则自己在调用ChatOpenAI()、OpenAI()时会无止境的报错。

此外,大家还得掌握用openai调用和langchain调用的区别,目前来看主要的区别是from的库不一样,import的函数方法也不一样

openai的方法主要先初始化客户端

client = OpenAI(
    api_key=os.environ.get("GPT_API_KEY_FREE"),
    base_url=os.environ.get("GPT_BASE_URL"),
)

再调用模型

response = client.chat.completions.create(
    model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello, how are you?"}]
)

langchain的方法是先定义模型(给定参数)

llm = ChatOpenAI(
    openai_api_key=os.environ.get("ARK_API_KEY"),
    openai_api_base=os.environ.get("ARK_BASE_URL"),
    model=os.environ.get("ARK_LLM_MODELEND"),
    temperature=0.8,
    max_tokens=60,
)

再通过模型去调用方法

response = llm.predict("请给我的花店起个名")

我们从这里可以感觉出一点langchain的便利性,更别提后面的输入输出管理了