Spaces:
Sleeping
Sleeping
Download chains.py from KrishnaHuYaar/ResearchMind: direct link, hf CLI and curl.
- Browser
- Download file 3.09 kB
-
https://huggingface.co/spaces/KrishnaHuYaar/ResearchMind/resolve/main/chains.py
- Command line
-
hf download hf://spaces/KrishnaHuYaar/ResearchMind/chains.py
-
curl -L -o chains.py https://huggingface.co/spaces/KrishnaHuYaar/ResearchMind/resolve/main/chains.py
3.09 kB
| from langchain_groq import ChatGroq # β CHANGED | |
| from langchain_core.prompts import ChatPromptTemplate | |
| from langchain_core.output_parsers import StrOutputParser | |
| import config | |
| def get_llm(agent_role: str) -> ChatGroq: # β CHANGED return type | |
| """Return a ChatGroq instance for the given role.""" | |
| model_name = config.MODEL_MAP.get(agent_role, "llama-3.1-8b-instant") | |
| cfg = config.AGENT_CONFIG.get(agent_role, {}) | |
| return ChatGroq( | |
| api_key=config.GROQ_API_KEY, # β CHANGED: direct API key | |
| model=model_name, | |
| temperature=cfg.get("temperature", 0.0), | |
| max_tokens=cfg.get("max_tokens", 512), | |
| ) | |
| # ββ Prompt templates βββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| SEARCH_PROMPT = ChatPromptTemplate.from_template("""You are a research search agent. Generate a list of 5 credible sources about the topic: {topic} | |
| Return ONLY a valid JSON array of objects with these fields: | |
| - "title": string (source title) | |
| - "url": string (source URL, make it plausible) | |
| - "snippet": string (brief description) | |
| - "reliability_score": string (0-10, as string) | |
| NO other text, just valid JSON.""") | |
| READER_PROMPT = ChatPromptTemplate.from_template("""You are a content reader. Extract and summarize key information from these sources: | |
| {sources} | |
| Provide a detailed, structured summary of the most important points.""") | |
| WRITER_PROMPT = ChatPromptTemplate.from_template("""You are a research report writer. Write a comprehensive, well-structured research report on: {topic} | |
| Use this research material: | |
| {research} | |
| Include: Introduction, Key Findings, Analysis, and Conclusion. Use markdown formatting.""") | |
| CRITIC_PROMPT = ChatPromptTemplate.from_template("""You are a critical reviewer. Analyze this research report and provide constructive feedback: | |
| {report} | |
| Identify strengths, weaknesses, and areas for improvement.""") | |
| FACT_CHECK_PROMPT = ChatPromptTemplate.from_template("""You are a fact-checker. Verify the claims in this report using the provided sources: | |
| Report: | |
| {report} | |
| Sources: | |
| {sources} | |
| Highlight any potential inaccuracies or unsupported claims.""") | |
| SUMMARY_PROMPT = ChatPromptTemplate.from_template("""You are an executive summarizer. Create a concise, high-level summary of this research report: | |
| {report} | |
| Keep it under 300 words.""") | |
| # ββ Chains (unchanged except they now use ChatGroq) βββββββββββββββββββββ | |
| def search_chain(): | |
| return SEARCH_PROMPT | get_llm("searcher") | StrOutputParser() | |
| def reader_chain(): | |
| return READER_PROMPT | get_llm("reader") | StrOutputParser() | |
| def writer_chain(): | |
| return WRITER_PROMPT | get_llm("writer") | StrOutputParser() | |
| def critic_chain(): | |
| return CRITIC_PROMPT | get_llm("critic") | StrOutputParser() | |
| def fact_check_chain(): | |
| return FACT_CHECK_PROMPT | get_llm("fact_checker") | StrOutputParser() | |
| def summary_chain(): | |
| return SUMMARY_PROMPT | get_llm("summarizer") | StrOutputParser() |