Spaces:
Sleeping
Sleeping
| from langchain_openai import ChatOpenAI | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from vector import retriever | |
| from dotenv import load_dotenv | |
| import os | |
| # Load environment variables | |
| load_dotenv() | |
| # Load the LLM using OpenRouter with simplified configuration | |
| model = ChatOpenAI( | |
| api_key=os.getenv("OPENROUTER_API_KEY"), | |
| base_url="https://openrouter.ai/api/v1", | |
| model="openai/gpt-3.5-turbo" # Using a model supported by OpenRouter | |
| ) | |
| # Prompt template customized for CVE Q&A | |
| template = """ | |
| You are a cybersecurity expert trained to answer questions about software vulnerabilities using CVE data. | |
| Here are some relevant CVE entries: | |
| {reviews} | |
| Here is the question to answer: | |
| {question} | |
| """ | |
| prompt = ChatPromptTemplate.from_template(template) | |
| chain = prompt | model | |
| # Interactive Q&A loop | |
| while True: | |
| print("\n\n-------------------------------") | |
| question = input("Ask your cybersecurity question (q to quit): ") | |
| print("\n\n") | |
| if question.lower() == "q": | |
| break | |
| reviews = retriever.invoke(question) | |
| result = chain.invoke({"reviews": reviews, "question": question}) | |
| print(result.content) | |