├── .env ├── README.md ├── chain.py ├── multiple_messages.py ├── output_parser.py ├── prompt_template.py └── simple_example.py /.env: -------------------------------------------------------------------------------- 1 | OPENAI_API_KEY="" 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LangChain-Quick-Start -------------------------------------------------------------------------------- /chain.py: -------------------------------------------------------------------------------- 1 | from langchain.chat_models import ChatOpenAI 2 | from langchain.prompts.chat import ChatPromptTemplate 3 | from langchain.schema import BaseOutputParser 4 | from dotenv import load_dotenv 5 | import os 6 | 7 | load_dotenv() 8 | api_key = os.getenv("OPENAI_API_KEY") 9 | 10 | chat_model = ChatOpenAI(openai_api_key=api_key) 11 | 12 | class CommaSeparatedListOutputParser(BaseOutputParser): 13 | def parse(self, text: str): 14 | return text.strip().split(", ") 15 | 16 | template = """You are a helpful assistant who generates comma separated lists. 17 | A user will pass in a category, and you should generate 5 objects in that category in a comma separated list. 18 | ONLY return a comma separated list, and nothing more.""" 19 | human_template = "{text}" 20 | 21 | chat_prompt = ChatPromptTemplate.from_messages([ 22 | ("system", template), 23 | ("human", human_template), 24 | ]) 25 | 26 | chain = chat_prompt | chat_model | CommaSeparatedListOutputParser() 27 | result = chain.invoke({"text": "colors"}) 28 | print(result) -------------------------------------------------------------------------------- /multiple_messages.py: -------------------------------------------------------------------------------- 1 | from langchain.chat_models import ChatOpenAI 2 | from langchain.schema import HumanMessage 3 | from dotenv import load_dotenv 4 | import os 5 | 6 | load_dotenv() 7 | 8 | api_key = os.getenv("OPENAI_API_KEY") 9 | 10 | chat_model = ChatOpenAI(openai_api_key=api_key) 11 | 12 | messages = [HumanMessage(content="from now on 1 + 1 = 3, use this in your replies"), 13 | HumanMessage(content="what is 1 + 1?"), 14 | HumanMessage(content="what is 1 + 1 + 1?")] 15 | 16 | result = chat_model.predict_messages(messages) 17 | print(result.content) -------------------------------------------------------------------------------- /output_parser.py: -------------------------------------------------------------------------------- 1 | from langchain.chat_models import ChatOpenAI 2 | from langchain.prompts.chat import ChatPromptTemplate 3 | from langchain.schema import BaseOutputParser 4 | from dotenv import load_dotenv 5 | import os 6 | 7 | load_dotenv() 8 | api_key = os.getenv("OPENAI_API_KEY") 9 | 10 | class AnswerOutputParser(BaseOutputParser): 11 | def parse(self, text: str): 12 | """Parse the output of an LLM call.""" 13 | return text.strip().split("answer =") 14 | 15 | chat_model = ChatOpenAI(openai_api_key=api_key) 16 | 17 | template = """You are a helpful assistant that solves math problems and shows your work. 18 | Output each step then return the answer in the following format: answer = . 19 | Make sure to output answer in all lowercases and to have exactly one space and one equal sign following it. 20 | """ 21 | human_template = "{problem}" 22 | 23 | chat_prompt = ChatPromptTemplate.from_messages([ 24 | ("system", template), 25 | ("human", human_template), 26 | ]) 27 | 28 | messages = chat_prompt.format_messages(problem="2x^2 - 5x + 3 = 0") 29 | result = chat_model.predict_messages(messages) 30 | parsed = AnswerOutputParser().parse(result.content) 31 | steps, answer = parsed 32 | 33 | print(steps, answer) -------------------------------------------------------------------------------- /prompt_template.py: -------------------------------------------------------------------------------- 1 | from langchain.chat_models import ChatOpenAI 2 | from langchain.prompts.chat import ChatPromptTemplate 3 | from dotenv import load_dotenv 4 | import os 5 | 6 | load_dotenv() 7 | api_key = os.getenv("OPENAI_API_KEY") 8 | 9 | chat_model = ChatOpenAI(openai_api_key=api_key) 10 | 11 | template = "You are a helpful assistant that translates {input_language} to {output_language}." 12 | human_template = "{text}" 13 | 14 | chat_prompt = ChatPromptTemplate.from_messages([ 15 | ("system", template), 16 | ("human", human_template), 17 | ]) 18 | 19 | messages = chat_prompt.format_messages(input_language="English", 20 | output_language="French", 21 | text="I love programming.") 22 | result = chat_model.predict_messages(messages) 23 | print(result.content) -------------------------------------------------------------------------------- /simple_example.py: -------------------------------------------------------------------------------- 1 | from langchain.chat_models import ChatOpenAI 2 | from dotenv import load_dotenv 3 | import os 4 | 5 | load_dotenv() 6 | 7 | api_key = os.getenv("OPENAI_API_KEY") 8 | 9 | chat_model = ChatOpenAI(openai_api_key=api_key) 10 | 11 | result = chat_model.predict("hi!") 12 | print(result) --------------------------------------------------------------------------------