Add agent.py
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
"""
|
||||||
|
Simple LangChain agent demonstrating Human‑in‑the‑Loop middleware.
|
||||||
|
|
||||||
|
The chain:
|
||||||
|
1. User prompt is passed to a PromptTemplate.
|
||||||
|
2. The template is processed by an LLM (OpenAI).
|
||||||
|
3. The output passes through the HIL middleware which prints the assistant’s answer and asks the user to confirm or modify it before returning.
|
||||||
|
|
||||||
|
Run with:
|
||||||
|
python agent.py
|
||||||
|
Make sure you have OPENAI_API_KEY set in your environment.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
from langchain.prompts import PromptTemplate
|
||||||
|
from langchain.schema import RunnableSequence
|
||||||
|
from langchain_openai import ChatOpenAI
|
||||||
|
from langchain.middleware.hil import HumanInTheLoopMiddleware
|
||||||
|
|
||||||
|
api_key = os.getenv("OPENAI_API_KEY")
|
||||||
|
if not api_key:
|
||||||
|
raise RuntimeError("OPENAI_API_KEY environment variable is required.")
|
||||||
|
|
||||||
|
llm = OpenAI(api_key=api_key, temperature=0.7)
|
||||||
|
|
||||||
|
prompt_template = PromptTemplate(
|
||||||
|
input_variables=["question"],
|
||||||
|
template="You are a helpful assistant. Answer the following question clearly and concisely: {question}"
|
||||||
|
)
|
||||||
|
|
||||||
|
chain = RunnableSequence([prompt_template, llm])
|
||||||
|
hil_chain = HumanInTheLoopMiddleware(chain)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
|
user_input = input("\nUser: ")
|
||||||
|
if user_input.lower() in {"exit", "quit", "q"}:
|
||||||
|
print("Goodbye!")
|
||||||
|
break
|
||||||
|
result = hil_chain.invoke({"question": user_input})
|
||||||
|
print(f"\nAssistant (confirmed): {result}\n")
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\nInterrupted. Exiting.")
|
||||||
|
break
|
||||||
Reference in New Issue
Block a user