支持的模型
官方示例:
#OpenAI
pip install -qU langchain-openai
import getpass
import os
os.environ["OPENAI_API_KEY"] = getpass.getpass()
from langchain_openai import ChatOpenAI
model = ChatOpenAI(model="gpt-4")
#Anthropic
pip install -qU langchain-anthropic
import getpass
import os
os.environ["ANTHROPIC_API_KEY"] = getpass.getpass()
from langchain_anthropic
import ChatAnthropic
model = ChatAnthropic(model="claude-3-sonnet-20240229")
pip install -qU langchain-google-vertexai
import getpass
import os
os.environ["GOOGLE_API_KEY"] = getpass.getpass()
from langchain_google_vertexai
import ChatVertexAI
model = ChatVertexAI(model="gemini-pro")
Demo
构建一个简单的大型语言模型(LLM)应用程序的快速入门
调用语言模型
使用OutputParsers: 输出解析器
使用PromptTemplate: 提示模板
使用LangSmish追踪你的应用程序
使用LangServe部署你的应用程序
下面就简单调用gpt-4.
import os from fastapi import FastAPI from langchain_core.messages import SystemMessage, HumanMessage from langchain_core.output_parsers import StrOutputParser from langchain_core.prompts import ChatPromptTemplate from langchain_openai import ChatOpenAI from langserve import add_routes #设置代理,因为要用OpenAI os.environ['http_proxy'] = '127.0.0.1:7890' os.environ['https_proxy'] = '127.0.0.1:7890' #使用Langchain_V2 os.environ["LANGCHAIN_TRACING_V2"] = "true" # os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com" os.environ["LANGCHAIN_PROJECT"] = "LangchainDemo" # smith监控的KEY os.environ["LANGCHAIN_API_KEY"] = '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' # 调用大语言模型 # 创建模型 model = ChatOpenAI(model='gpt-4-turbo') # 2、准备prompt msg = [ SystemMessage(content='请将以下的内容翻译成意大利语'), HumanMessage(content='你好,请问你要去哪里?') ] # result = model.invoke(msg) # print(result)
"""# 输出示例
AIMessage(
content='Ciao, dove vuoi andare?', # 翻译后的意大利语文本
response_metadata={
'token_usage': {#API 调用消耗的token统计
'completion_tokens': 9,
'prompt_tokens': 27,
'total_tokens': 36
},
'model_name': 'gpt-4-turbo',#模型版本
'system_fingerprint': 'fp_xxxxxx' #模型部署指纹,用于追踪模型版本。
},
id='run-xxxxxx' #本次调用唯一ID
)
"""
组件链式调用
创建Parser字符串解析器(只返回content内容)、Prompt Template(可令用户输入做参数);
并用Chain 进行链式组合。
# 简单的解析响应数据 # 3、创建返回的数据解析器 parser = StrOutputParser() # print(parser.invoke(result)) # 定义提示模板 prompt_template = ChatPromptTemplate.from_messages([ ('system', '请将下面的内容翻译成{language}'), ('user', "{text}") ]) # 4、得到链 chain = prompt_template | model | parser # 5、 直接使用chain来调用 # print(chain.invoke(msg)) print(chain.invoke({'language': 'English', 'text': '我下午还有一节课,不能去打球了。'}))
程序部署成服务
pip install "langserve[all]"
通过FastAPI
# 把我们的程序部署成服务 # 创建fastAPI的应用 app = FastAPI(title='我的Langchain服务' , version='V1.0' , description='使用Langchain翻译任何语句的服务器') add_routes(# 添加路由 app, chain, path="/chainDemo",#请求路径 ) if __name__ == "__main__": import uvicorn uvicorn.run(app, host="localhost", port=8000)#运行,及端口
# 通过ApiPost软件,进行简单测试。
# 结合 client,进行访问