Spaces:
Sleeping
Sleeping
crislmfroes
commited on
Commit
•
5659cad
1
Parent(s):
4501353
Add python repl and shell tools
Browse files- .Dockerignore +1 -0
- .gitignore +2 -1
- Dockerfile +1 -1
- app.config.template +3 -0
- app.py +11 -5
- build.sh +2 -0
- requirements.txt +1 -0
- run.sh +2 -0
.Dockerignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
app.config
|
.gitignore
CHANGED
@@ -1 +1,2 @@
|
|
1 |
-
uploads/*
|
|
|
|
1 |
+
uploads/*
|
2 |
+
app.config
|
Dockerfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
FROM
|
2 |
|
3 |
WORKDIR /code
|
4 |
|
|
|
1 |
+
FROM pytorch/pytorch
|
2 |
|
3 |
WORKDIR /code
|
4 |
|
app.config.template
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
OPENAI_API_KEY=
|
2 |
+
HUGGINGFACEHUB_API_TOKEN=
|
3 |
+
OPENWEATHERMAP_API_KEY=
|
app.py
CHANGED
@@ -6,13 +6,14 @@ import os
|
|
6 |
import aiohttp
|
7 |
import panel as pn
|
8 |
from gradio_tools import *
|
|
|
9 |
from langchain.prompts import MessagesPlaceholder
|
10 |
from langchain.memory import ConversationBufferMemory
|
11 |
from langchain.callbacks import *
|
12 |
from langchain.chat_models import ChatOpenAI
|
13 |
from langchain.embeddings import OpenAIEmbeddings
|
14 |
from langchain.agents import initialize_agent
|
15 |
-
from langchain.tools import StructuredTool
|
16 |
from langchain.agents import AgentType, load_tools
|
17 |
from langchain.agents.agent_toolkits.openapi.spec import reduce_openapi_spec
|
18 |
from langchain.agents.agent_toolkits.openapi import planner
|
@@ -46,10 +47,10 @@ def on_user_message(contents, user, instance):
|
|
46 |
filename = str(uuid4())+".wav"
|
47 |
audio, rate = a2n.audio_from_file(contents)
|
48 |
scipy.io.wavfile.write(f'/tmp/{filename}', rate, audio)
|
49 |
-
agent.run(f"Uploaded: /tmp/{filename}")
|
50 |
file_input.value = None
|
|
|
51 |
else:
|
52 |
-
agent.run(contents)
|
53 |
|
54 |
def send_image(filepath: str):
|
55 |
"""Sends to the user the image stored in the given filepath"""
|
@@ -73,7 +74,7 @@ chat_interface = ChatInterface(
|
|
73 |
]
|
74 |
)
|
75 |
|
76 |
-
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, streaming=True, callbacks=[StreamingStdOutCallbackHandler()
|
77 |
|
78 |
tools = load_tools(["openweathermap-api"], llm)
|
79 |
tools[0].api_wrapper.openweathermap_api_key = os.environ.get('OPENWEATHERMAP_API_KEY')
|
@@ -87,9 +88,14 @@ tools += [
|
|
87 |
StructuredTool.from_function(send_audio)
|
88 |
]
|
89 |
|
|
|
|
|
|
|
|
|
|
|
90 |
memory = ConversationBufferMemory(memory_key="memory", return_messages=True)
|
91 |
|
92 |
-
agent = initialize_agent(tools=tools, llm=llm, agent=AgentType.
|
93 |
|
94 |
main = chat_interface
|
95 |
|
|
|
6 |
import aiohttp
|
7 |
import panel as pn
|
8 |
from gradio_tools import *
|
9 |
+
from langchain_experimental.tools import PythonREPLTool
|
10 |
from langchain.prompts import MessagesPlaceholder
|
11 |
from langchain.memory import ConversationBufferMemory
|
12 |
from langchain.callbacks import *
|
13 |
from langchain.chat_models import ChatOpenAI
|
14 |
from langchain.embeddings import OpenAIEmbeddings
|
15 |
from langchain.agents import initialize_agent
|
16 |
+
from langchain.tools import StructuredTool, ShellTool
|
17 |
from langchain.agents import AgentType, load_tools
|
18 |
from langchain.agents.agent_toolkits.openapi.spec import reduce_openapi_spec
|
19 |
from langchain.agents.agent_toolkits.openapi import planner
|
|
|
47 |
filename = str(uuid4())+".wav"
|
48 |
audio, rate = a2n.audio_from_file(contents)
|
49 |
scipy.io.wavfile.write(f'/tmp/{filename}', rate, audio)
|
|
|
50 |
file_input.value = None
|
51 |
+
return agent.run(f"Uploaded: /tmp/{filename}")
|
52 |
else:
|
53 |
+
return agent.run(contents)
|
54 |
|
55 |
def send_image(filepath: str):
|
56 |
"""Sends to the user the image stored in the given filepath"""
|
|
|
74 |
]
|
75 |
)
|
76 |
|
77 |
+
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0, streaming=True, callbacks=[StreamingStdOutCallbackHandler()])#, PanelCallbackHandler(instance=chat_interface, user='Assistant', avatar=panel.chat.langchain.DEFAULT_AVATARS["assistant"])])
|
78 |
|
79 |
tools = load_tools(["openweathermap-api"], llm)
|
80 |
tools[0].api_wrapper.openweathermap_api_key = os.environ.get('OPENWEATHERMAP_API_KEY')
|
|
|
88 |
StructuredTool.from_function(send_audio)
|
89 |
]
|
90 |
|
91 |
+
tools += [
|
92 |
+
PythonREPLTool(),
|
93 |
+
ShellTool()
|
94 |
+
]
|
95 |
+
|
96 |
memory = ConversationBufferMemory(memory_key="memory", return_messages=True)
|
97 |
|
98 |
+
agent = initialize_agent(tools=tools, llm=llm, agent=AgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True, agent_kwargs=dict(extra_prompt_messages=[MessagesPlaceholder(variable_name="memory")]), memory=memory)
|
99 |
|
100 |
main = chat_interface
|
101 |
|
build.sh
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/bash
|
2 |
+
docker build . -t cyberdynesystems/skynet:latest
|
requirements.txt
CHANGED
@@ -1,6 +1,7 @@
|
|
1 |
panel
|
2 |
aiohttp
|
3 |
langchain
|
|
|
4 |
openai
|
5 |
clarifai
|
6 |
pyowm
|
|
|
1 |
panel
|
2 |
aiohttp
|
3 |
langchain
|
4 |
+
langchain_experimental
|
5 |
openai
|
6 |
clarifai
|
7 |
pyowm
|
run.sh
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env bash
|
2 |
+
docker run --env-file ./app.config --net host cyberdynesystems/skynet:latest
|