Joshua Sundance Bailey commited on
Commit ·
bd1f3d1
1
Parent(s): 15442b7
prompts
Browse files- langchain-streamlit-demo/app.py +17 -18
langchain-streamlit-demo/app.py
CHANGED
|
@@ -1,4 +1,3 @@
|
|
| 1 |
-
from langchain.agents import load_tools
|
| 2 |
from datetime import datetime
|
| 3 |
from typing import Tuple, List, Dict, Any, Union, Optional
|
| 4 |
|
|
@@ -6,8 +5,11 @@ import anthropic
|
|
| 6 |
import langsmith.utils
|
| 7 |
import openai
|
| 8 |
import streamlit as st
|
|
|
|
|
|
|
| 9 |
from langchain.callbacks import StreamlitCallbackHandler
|
| 10 |
from langchain.callbacks.base import BaseCallbackHandler
|
|
|
|
| 11 |
from langchain.callbacks.tracers.langchain import LangChainTracer, wait_for_all_tracers
|
| 12 |
from langchain.callbacks.tracers.run_collector import RunCollectorCallbackHandler
|
| 13 |
from langchain.memory import ConversationBufferMemory, StreamlitChatMessageHistory
|
|
@@ -27,9 +29,8 @@ from llm_resources import (
|
|
| 27 |
get_runnable,
|
| 28 |
get_texts_and_multiretriever,
|
| 29 |
)
|
| 30 |
-
from research_assistant.chain import get_chain as get_research_assistant_chain
|
| 31 |
from python_coder import get_agent as get_python_agent
|
| 32 |
-
|
| 33 |
|
| 34 |
__version__ = "2.1.4"
|
| 35 |
|
|
@@ -461,14 +462,11 @@ if st.session_state.llm:
|
|
| 461 |
st_callback = StreamlitCallbackHandler(st.container())
|
| 462 |
callbacks.append(st_callback)
|
| 463 |
|
| 464 |
-
from langchain.agents.tools import tool
|
| 465 |
-
from langchain.callbacks.manager import Callbacks
|
| 466 |
-
|
| 467 |
@tool("web-research-assistant")
|
| 468 |
def research_assistant_tool(question: str, callbacks: Callbacks = None):
|
| 469 |
-
"""
|
| 470 |
-
|
| 471 |
-
for quick facts
|
| 472 |
"""
|
| 473 |
return research_assistant_chain.invoke(
|
| 474 |
dict(question=question),
|
|
@@ -479,7 +477,10 @@ if st.session_state.llm:
|
|
| 479 |
|
| 480 |
@tool("python-coder-assistant")
|
| 481 |
def python_coder_tool(input_str: str, callbacks: Callbacks = None):
|
| 482 |
-
"""
|
|
|
|
|
|
|
|
|
|
| 483 |
return python_coder_agent.invoke(
|
| 484 |
dict(input=input_str),
|
| 485 |
config=get_config(callbacks),
|
|
@@ -500,7 +501,7 @@ if st.session_state.llm:
|
|
| 500 |
|
| 501 |
@tool("user-document-chat")
|
| 502 |
def doc_chain_tool(input_str: str, callbacks: Callbacks = None):
|
| 503 |
-
"""
|
| 504 |
return st.session_state.doc_chain.invoke(
|
| 505 |
input_str,
|
| 506 |
config=get_config(callbacks),
|
|
@@ -512,19 +513,17 @@ if st.session_state.llm:
|
|
| 512 |
|
| 513 |
@tool("document-question-tool")
|
| 514 |
def doc_question_tool(input_str: str, callbacks: Callbacks = None):
|
| 515 |
-
"""
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
if the user's meaning is unclear, perhaps the answer is here.
|
| 520 |
-
generally speaking, try this tool before conducting web research.
|
| 521 |
"""
|
| 522 |
return doc_chain_agent.invoke(
|
| 523 |
input_str,
|
| 524 |
config=get_config(callbacks),
|
| 525 |
)
|
| 526 |
|
| 527 |
-
TOOLS = [doc_question_tool
|
| 528 |
|
| 529 |
st.session_state.chain = get_agent(
|
| 530 |
TOOLS,
|
|
|
|
|
|
|
| 1 |
from datetime import datetime
|
| 2 |
from typing import Tuple, List, Dict, Any, Union, Optional
|
| 3 |
|
|
|
|
| 5 |
import langsmith.utils
|
| 6 |
import openai
|
| 7 |
import streamlit as st
|
| 8 |
+
from langchain.agents import load_tools
|
| 9 |
+
from langchain.agents.tools import tool
|
| 10 |
from langchain.callbacks import StreamlitCallbackHandler
|
| 11 |
from langchain.callbacks.base import BaseCallbackHandler
|
| 12 |
+
from langchain.callbacks.manager import Callbacks
|
| 13 |
from langchain.callbacks.tracers.langchain import LangChainTracer, wait_for_all_tracers
|
| 14 |
from langchain.callbacks.tracers.run_collector import RunCollectorCallbackHandler
|
| 15 |
from langchain.memory import ConversationBufferMemory, StreamlitChatMessageHistory
|
|
|
|
| 29 |
get_runnable,
|
| 30 |
get_texts_and_multiretriever,
|
| 31 |
)
|
|
|
|
| 32 |
from python_coder import get_agent as get_python_agent
|
| 33 |
+
from research_assistant.chain import get_chain as get_research_assistant_chain
|
| 34 |
|
| 35 |
__version__ = "2.1.4"
|
| 36 |
|
|
|
|
| 462 |
st_callback = StreamlitCallbackHandler(st.container())
|
| 463 |
callbacks.append(st_callback)
|
| 464 |
|
|
|
|
|
|
|
|
|
|
| 465 |
@tool("web-research-assistant")
|
| 466 |
def research_assistant_tool(question: str, callbacks: Callbacks = None):
|
| 467 |
+
"""This assistant returns a comprehensive report based on web research.
|
| 468 |
+
It's slow and relatively expensive, so use it sparingly.
|
| 469 |
+
Consider using a different tool for quick facts or web queries.
|
| 470 |
"""
|
| 471 |
return research_assistant_chain.invoke(
|
| 472 |
dict(question=question),
|
|
|
|
| 477 |
|
| 478 |
@tool("python-coder-assistant")
|
| 479 |
def python_coder_tool(input_str: str, callbacks: Callbacks = None):
|
| 480 |
+
"""This assistant writes PYTHON code.
|
| 481 |
+
Give it clear instructions and requirements.
|
| 482 |
+
Do not use it for tasks other than Python.
|
| 483 |
+
"""
|
| 484 |
return python_coder_agent.invoke(
|
| 485 |
dict(input=input_str),
|
| 486 |
config=get_config(callbacks),
|
|
|
|
| 501 |
|
| 502 |
@tool("user-document-chat")
|
| 503 |
def doc_chain_tool(input_str: str, callbacks: Callbacks = None):
|
| 504 |
+
"""Always use this tool at least once. Input should be a question."""
|
| 505 |
return st.session_state.doc_chain.invoke(
|
| 506 |
input_str,
|
| 507 |
config=get_config(callbacks),
|
|
|
|
| 513 |
|
| 514 |
@tool("document-question-tool")
|
| 515 |
def doc_question_tool(input_str: str, callbacks: Callbacks = None):
|
| 516 |
+
"""This tool is an AI assistant with access to the user's uploaded document.
|
| 517 |
+
Input should be one or more questions, requests, instructions, etc.
|
| 518 |
+
If the user's meaning is unclear, perhaps the answer is here.
|
| 519 |
+
Generally speaking, try this tool before conducting web research.
|
|
|
|
|
|
|
| 520 |
"""
|
| 521 |
return doc_chain_agent.invoke(
|
| 522 |
input_str,
|
| 523 |
config=get_config(callbacks),
|
| 524 |
)
|
| 525 |
|
| 526 |
+
TOOLS = [doc_question_tool] + TOOLS
|
| 527 |
|
| 528 |
st.session_state.chain = get_agent(
|
| 529 |
TOOLS,
|