前期准备
在开始本地部署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的便利性,更别提后面的输入输出管理了