Langchain-简单(程序部署成服务)

 支持的模型

官方示例:

#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")

#Google

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,进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值