langchain使用的前提准备
- pip安装
pip install azure-functions azure-storage-blob "qrcode[pil]"
pip install langchain openai streamlit python-dotenv
- 代码
这里需要在你文件夹内创建一个后缀名为".env"的文件,存储你的Open_AI_Key
from langchain.llms import OpenAI
from dotenv import load_dotenv
import os
load_dotenv('1.env') # 加载名为 1.env 的文件中的环境变量
OpenAI.api_key = os.getenv('OPENAI_API_KEY') # 从环境变量中获取 API 密钥
宠物名字小项目
main函数
import langchain_helper as lch
import streamlit as st
st.title("Pet name website")
user_animal_type = st.sidebar.selectbox("What is your pet?", ("Cat", "Dog", "Cow", "Hen",))
if user_animal_type == "Cat":
language_type = st.sidebar.text_area(label="What language do you want to response?", max_chars=300)
if user_animal_type == "Dog":
language_type = st.sidebar.text_area(label="What language do you want to response?", max_chars=300)
if user_animal_type == "Cow":
language_type = st.sidebar.text_area(label="What language do you want to response?", max_chars=300)
if user_animal_type == "Hen":
language_type = st.sidebar.text_area(label="What language do you want to response?", max_chars=300)
if language_type:
response = lch.generate_pet_name(user_animal_type, language_type)
st.text(response['pet_name'])
langchain_helper函数
from langchain.llms import OpenAI
from dotenv import load_dotenv
# 模板
from langchain.prompts import PromptTemplate
# Chain
from langchain.chains import LLMChain
import os
//加载环境变量
load_dotenv()
//加载环境变量
OpenAI.api_key = os.getenv('OPENAI_API_KEY')
//宠物小项目函数
def generate_pet_name(animal_type, language_type):
llm = OpenAI(temperature=0.5);
//模板格式
prompt_template_name = PromptTemplate(
input_variables=['animal_type', 'language_type'],
template="I have a {animal_type},i want you to give me five creative names,and use {language_type} to "
"response me."
)
//姓名链
name_chain = LLMChain(llm=llm, prompt=prompt_template_name, output_key="pet_name")
response = name_chain({'animal_type': animal_type, 'language_type': language_type})
return response
小结
- 使用的是Streamlit布置网页,在终端输入streamlit run main.py展示端口网页,从网页中可以选择你的选项来输出想要的结果
- 关键是def那一部分得搞懂模板格式和姓名链