占位符操作搞定。。。

master
msb_31955 3 weeks ago
parent e77d8acd10
commit ec0a13a56e

@ -0,0 +1,54 @@
from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate
from langchain_openai import ChatOpenAI
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
# 提示词
examples = [
{
"question": "罗纳尔多·路易斯·纳萨里奥·德·利马 世界杯进了多少球?",
"answer": """
中间问题罗纳尔多·路易斯·纳萨里奥··利马 参加了哪几届世界杯
中间答案
中间问题罗纳尔多·路易斯·纳萨里奥··利马 分别在这几届进了多少球
中间答案
最终答案罗纳尔多·路易斯·纳萨里奥··利马 世界杯进了xx球
"""
},
{
"question": "周星驰参演了多少部电影?",
"answer": """
中间问题周星驰哪几年参演了电影
中间答案
中间问题周星驰分别在这几年参演了多少电影
中间答案
最终答案周星驰参演了xx部电影
"""
}
]
base_template = PromptTemplate.from_template("问题:{question}\n{answer}")
example_template = FewShotPromptTemplate(
example_prompt = base_template, # 前面的模板格式
examples = examples, # ICL的示例
suffix = "问题:{input}",
input_variables=["input"]
)
chain = example_template | llm
input = {"input": "梅西世界杯进了多少球?"}
resp = chain.invoke(input)
print(resp)

@ -0,0 +1,36 @@
from langchain_core.messages import HumanMessage
from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate, ChatPromptTemplate, MessagesPlaceholder
from langchain_openai import ChatOpenAI
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
# {topic}:变量占位符
# MessagesPlaceholder("msg") 消息占位符
# ("system","你是一个相声演员")
# 单个变量方式
# prompt_template = ChatPromptTemplate.from_messages([
# ("system","你是一个相声演员"), # 给大模型一个定位
# ("user","给我来段{topic}") # 需要用户输入一个变量
# ])
# 全部内容由用户输入的方式
prompt_template = ChatPromptTemplate.from_messages([
("system","你是一个相声演员"), # 给大模型一个定位
MessagesPlaceholder("input") # 需要用户完整输入
])
chain = prompt_template | llm
resp = chain.invoke({"input": [HumanMessage(content = "给我来段贯口")]})
print(resp)

@ -0,0 +1,50 @@
from langchain_core.messages import HumanMessage
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder, \
FewShotChatMessagePromptTemplate
from langchain_openai import ChatOpenAI
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
# 示例
examples = [
{"input": "2 😫 3","output": "6"},
{"input": "2 😫 4","output": "8"},
];
# 示例格式(给大模型学习的)
example_prompt = ChatPromptTemplate.from_messages(
[
('human',"{input}"),
('ai',"{output}")
]
);
# 组装ICL模板
icl_template = FewShotChatMessagePromptTemplate(
examples=examples,
example_prompt=example_prompt,
);
# 聊天模板组合上ICL
prompt_template = ChatPromptTemplate.from_messages([
("system","你是一个智能助手"),
icl_template,
MessagesPlaceholder("ques")
]);
# 组装执行
chain = prompt_template | llm
resp = chain.invoke(
# 课程里说可以不加[],但是测试得出,[]必须要有。。。。
{"ques": [HumanMessage(content = "2 😫 67")]}
);
print(resp)

@ -0,0 +1,33 @@
from langchain_core.messages import HumanMessage
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder, \
FewShotChatMessagePromptTemplate, PromptTemplate
from langchain_openai import ChatOpenAI
from env_util import DASHSCOPE_API_KEY, DASHSCOPE_BASE_URL
# llm对象就是调用大模型的对象
llm = ChatOpenAI(
model = "qwen-plus",
base_url=DASHSCOPE_BASE_URL,
api_key=DASHSCOPE_API_KEY,
temperature=0.8,
);
s = PromptTemplate.from_template("你是个相声演员,给我来段{topic}");
print(s)
prompt = (
PromptTemplate.from_template("你是个相声演员,给我来段{topic}")
+ "要求1、内容搞笑。"
+ "2、输出采用{language}"
)
print(prompt)
chain = prompt | llm
resp = chain.invoke(
{"topic": "贯口","language": "English"}
)
print(resp)
Loading…
Cancel
Save