爱站网关键词排名,旅游app页面设计图,金融网站模板 html下载,网站建设方案200字上一节实现了 LangChain 实现给动物取名字#xff0c; 实际上每次给不同的动物取名字#xff0c;还得修改源代码#xff0c;这周就用模块化template来实现。
1. 添加promptTemplate
from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块
from langchain.p…上一节实现了 LangChain 实现给动物取名字 实际上每次给不同的动物取名字还得修改源代码这周就用模块化template来实现。
1. 添加promptTemplate
from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块
from langchain.prompts import PromptTemplate # 导入Langchain库中的PromptTemplate模块
from langchain.chains import LLMChain # 导入Langchain库中的LLMChain模块
from dotenv import load_dotenv # 导入dotenv库用于加载环境变量load_dotenv() # 加载.env文件中的环境变量def generate_pet_name(animal_type):llm OpenAI(temperature0.7) # 创建OpenAI模型的实例设置temperature参数为0.7以调整生成的多样性# 创建PromptTemplate实例用于构造输入提示prompt_template_name PromptTemplate(input_variables[animal_type],templateI have a {animal_type} pet and I want a cool name for it. Suggest me five cool names for my pet.)name_chain LLMChain(llmllm, promptprompt_template_name) # 创建LLMChain实例将OpenAI模型和PromptTemplate传入response name_chain({animal_type: animal_type}) # 使用LLMChain生成宠物名字return response # 返回生成的名字# 当该脚本作为主程序运行时执行以下代码
if __name__ __main__:print(generate_pet_name(cat)) # 调用generate_pet_name函数并打印返回的结果
运行和输出
$ python main.py
{animal_type: cat, text: \n\n1. Shadow \n2. Midnight \n3. Storm \n4. Luna \n5. Tiger}
(.venv) zgpeace on zgpeaces-MBP in ~/Workspace/LLM/langchain-llm-app(1m|feature/prompt)
$ python main.py
{animal_type: cow, text: \n\n1. Milky\n2. Mooly\n3. Bessie\n4. Daisy\n5. Buttercup}
(.venv) zgpeace on zgpeaces-MBP in ~/Workspace/LLM/langchain-llm-app(4m|feature/prompt*)2. 添加新的参数pte_color
from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块
from langchain.prompts import PromptTemplate # 导入Langchain库中的PromptTemplate模块
from langchain.chains import LLMChain # 导入Langchain库中的LLMChain模块
from dotenv import load_dotenv # 导入dotenv库用于加载环境变量load_dotenv() # 加载.env文件中的环境变量def generate_pet_name(animal_type, pet_color):llm OpenAI(temperature0.7) # 创建OpenAI模型的实例设置temperature参数为0.7以调整生成的多样性# 创建PromptTemplate实例用于构造输入提示prompt_template_name PromptTemplate(input_variables[animal_type, pet_color],templateI have a {animal_type} pet and I want a cool name for it. Suggest me five cool names for my pet.)name_chain LLMChain(llmllm, promptprompt_template_name) # 创建LLMChain实例将OpenAI模型和PromptTemplate传入response name_chain({animal_type: animal_type, pet_color: pet_color}) # 使用LLMChain生成宠物名字return response # 返回生成的名字# 当该脚本作为主程序运行时执行以下代码
if __name__ __main__:print(generate_pet_name(cow, black)) # 调用generate_pet_name函数并打印返回的结果
运行结果
$ python main.py
{animal_type: cow, pet_color: black, text: \n\n1. Daisy\n2. Maverick\n3. Barnaby\n4. Bessie\n5. Bossy}
(.venv) zgpeace on zgpeaces-MBP in ~/Workspace/LLM/langchain-llm-app(6m|feature/prompt*)3. 重构代码
把逻辑放到langchain_helper.py, 清空main.py代码
4. 用Streamlit 生成网页
main.py 代码实现
import langchain_helper as lch
import streamlit as stst.title(Pets name generator)add path environment in .zshrc
export PATH/Library/Frameworks/Python.framework/Versions/3.10/bin:$PATHsource .zshrczgpeaces-MBP at ~/Workspace/LLM/langchain-llm-app ±(feature/prompt) ✗ ❯ streamlit run main.py Welcome to Streamlit!If you’d like to receive helpful onboarding emails, news, offers, promotions,and the occasional swag, please enter your email address below. Otherwise,leave this field blank.Email: You can find our privacy policy at https://streamlit.io/privacy-policySummary:- This open source library collects usage statistics.- We cannot see and do not store information contained inside Streamlit apps,such as text, charts, images, etc.- Telemetry data is stored in servers in the United States.- If youd like to opt out, add the following to ~/.streamlit/config.toml,creating that file if necessary:[browser]gatherUsageStats falseYou can now view your Streamlit app in your browser.Local URL: http://localhost:8501Network URL: http://192.168.50.10:8501For better performance, install the Watchdog module:$ xcode-select --install$ pip install watchdoghttp://localhost:8501/
5. Streamlit 生成网页输入跟Langchain互动获取名字
main.py
import langchain_helper as lch # 导入名为langchain_helper的模块并使用别名lch
import streamlit as st # 导入Streamlit库并使用别名stst.title(Pets name generator) # 在Streamlit应用中设置标题# 通过侧边栏选择宠物类型
animal_type st.sidebar.selectbox(Select animal type, [dog, cat, cow, horse, pig, sheep])# 根据宠物类型设置宠物颜色使用侧边栏的文本区域输入
if animal_type in [dog, cat, cow, horse, pig, sheep]:pet_color st.sidebar.text_area(labelfWhat color is your {animal_type}?, max_chars15)
else:pet_color st.sidebar.text_area(labelWhat color is your pet?, max_chars15)# 如果有输入颜色调用generate_pet_name函数生成宠物名字并显示
if pet_color:response lch.generate_pet_name(animal_type, pet_color)st.text(response[pet_name])
langchain_hepler.py 实现
from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块
from langchain.prompts import PromptTemplate # 导入Langchain库中的PromptTemplate模块
from langchain.chains import LLMChain # 导入Langchain库中的LLMChain模块
from dotenv import load_dotenv # 导入dotenv库用于加载环境变量load_dotenv() # 加载.env文件中的环境变量def generate_pet_name(animal_type, pet_color):llm OpenAI(temperature0.7) # 创建OpenAI模型的实例设置temperature参数为0.7以调整生成的多样性# 创建PromptTemplate实例用于构造输入提示prompt_template_name PromptTemplate(input_variables[animal_type, pet_color],templateI have a {animal_type} pet and I want a cool name for it. Suggest me five cool names for my pet.)name_chain LLMChain(llmllm, promptprompt_template_name, output_keypet_name) # 创建LLMChain实例将OpenAI模型和PromptTemplate传入response name_chain({animal_type: animal_type, pet_color: pet_color}) # 使用LLMChain生成宠物名字return response # 返回生成的名字# 当该脚本作为主程序运行时执行以下代码
if __name__ __main__:print(generate_pet_name(cow, black)) # 调用generate_pet_name函数并打印返回的结果 参考
https://github.com/zgpeace/pets-name-langchain/tree/feature/prompthttps://youtu.be/lG7Uxts9SXs?siH1CISGkoYiKRSF5VStreamlit - https://streamlit.io