LLM-prompt

2025-4-9 diaba LLM

服务端代码:

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

# 科学上网
os.environ['http_proxy'] = '127.0.0.1:7890'
os.environ['https_proxy'] = '127.0.0.1:7890'

# 使用 langsmith
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "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"

# 调用LLM

# 1.创建模型
model = ChatOpenAI(model='gpt-4-turbo')

# 2.准备Prompt
msg = [
    SystemMessage(content='请将以下的内容翻译成意大利语'),
    HumanMessage(content='你好,请问你要去哪里?')
]

# 3. 创建返回的数据解析器
parser = StrOutputParser()

prompt_template = ChatPromptTemplate.from_template([
    ('system','请将下面的内容翻译成{language}'),
    ('user','{text}')
])

# 4.得到链
chain = prompt_template | model | parser

# 5. 直接使用chain来调用   最终直接调用链,不用每个可执行的单独调用
print(chain.invoke({'language':'English','text':'我下午还有一节课,不能去打球了。'}))

# 部署以上写的程序到服务器 langServe  执行安装langServe命令: pip install "langserve[all]"
# 创建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)

# POST 请求服务地址 http://127.0.0.1:8000/chainDemo/invoke  用json格式请求 入参如下
# {
#     "input":{
#         "language": "English",
#         "text":"我要去上课了,不能和你聊天了。"
#     }
# {


客户端代码:


import os

from langserve import RemoteRunnable

if __name__ == '__main__':
    client = RemoteRunnable("http://127.0.0.1:8000/chainDemo/")
    print(client.invoke({"language": "italia", "text": "你好!"}))

发表评论:

Powered by emlog 京ICP备15045175号-1 Copyright © 2022