Spaces:
Sleeping
Sleeping
Kate Forsberg
commited on
Commit
·
2adad16
1
Parent(s):
727c6b5
added threads
Browse files- app.py +54 -18
- poetry.lock +38 -33
- pyproject.toml +3 -3
app.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
import glob
|
|
|
2 |
import gradio as gr
|
3 |
from typing import Any
|
4 |
from dotenv import load_dotenv
|
|
|
5 |
from griptape.structures import Agent
|
6 |
from griptape.tasks import PromptTask
|
7 |
from griptape.drivers import (
|
@@ -9,19 +11,49 @@ from griptape.drivers import (
|
|
9 |
GriptapeCloudStructureRunDriver,
|
10 |
LocalFileManagerDriver,
|
11 |
LocalStructureRunDriver,
|
|
|
12 |
)
|
13 |
from griptape.memory.structure import ConversationMemory
|
14 |
-
from griptape.tools import
|
15 |
from griptape.rules import Rule, Ruleset
|
16 |
-
from griptape.
|
|
|
17 |
import time
|
18 |
import os
|
19 |
-
import
|
20 |
|
21 |
|
22 |
# Load environment variables
|
23 |
load_dotenv()
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
# Create an agent that will create a prompt that can be used as input for the query agent from the Griptape Cloud.
|
27 |
|
@@ -49,7 +81,7 @@ def bot(history):
|
|
49 |
def create_prompt_task(session_id: str, message: str) -> PromptTask:
|
50 |
return PromptTask(
|
51 |
f"""
|
52 |
-
Re-structure the values from the user's questions: '{message}' and the input value from the conversation memory
|
53 |
years experience: <x>
|
54 |
location: <x>
|
55 |
role: <x>
|
@@ -64,6 +96,9 @@ def create_prompt_task(session_id: str, message: str) -> PromptTask:
|
|
64 |
|
65 |
|
66 |
def build_talk_agent(session_id: str, message: str) -> Agent:
|
|
|
|
|
|
|
67 |
ruleset = Ruleset(
|
68 |
name="Local Gradio Agent",
|
69 |
rules=[
|
@@ -81,16 +116,17 @@ def build_talk_agent(session_id: str, message: str) -> Agent:
|
|
81 |
),
|
82 |
],
|
83 |
)
|
84 |
-
file_manager_tool =
|
85 |
name="FileManager",
|
86 |
file_manager_driver=LocalFileManagerDriver(),
|
87 |
off_prompt=False,
|
88 |
)
|
89 |
|
90 |
return Agent(
|
91 |
-
config=AnthropicStructureConfig(),
|
92 |
conversation_memory=ConversationMemory(
|
93 |
-
driver=
|
|
|
|
|
94 |
),
|
95 |
tools=[file_manager_tool],
|
96 |
tasks=[create_prompt_task(session_id, message)],
|
@@ -102,6 +138,8 @@ def build_talk_agent(session_id: str, message: str) -> Agent:
|
|
102 |
# The agent uses local memory, which it differentiates between by session_hash.
|
103 |
def build_agent(session_id: str, message: str) -> Agent:
|
104 |
|
|
|
|
|
105 |
ruleset = Ruleset(
|
106 |
name="Local Gradio Agent",
|
107 |
rules=[
|
@@ -129,7 +167,7 @@ def build_agent(session_id: str, message: str) -> Agent:
|
|
129 |
|
130 |
print("Base URL", os.environ.get("BASE_URL", "https://cloud.griptape.ai"))
|
131 |
|
132 |
-
query_client =
|
133 |
name="QueryResumeSearcher",
|
134 |
description="Use it to search for a candidate with the query.",
|
135 |
driver=GriptapeCloudStructureRunDriver(
|
@@ -141,7 +179,7 @@ def build_agent(session_id: str, message: str) -> Agent:
|
|
141 |
),
|
142 |
)
|
143 |
|
144 |
-
talk_client =
|
145 |
name="FormulateQueryFromUser",
|
146 |
description="Used to formulate a query from the user's input.",
|
147 |
driver=LocalStructureRunDriver(
|
@@ -150,29 +188,27 @@ def build_agent(session_id: str, message: str) -> Agent:
|
|
150 |
)
|
151 |
|
152 |
return Agent(
|
153 |
-
config=AnthropicStructureConfig(),
|
154 |
conversation_memory=ConversationMemory(
|
155 |
-
driver=
|
|
|
|
|
156 |
),
|
157 |
tools=[talk_client, query_client],
|
158 |
rulesets=[ruleset],
|
159 |
)
|
160 |
|
161 |
|
162 |
-
def delete_json(session_id: str) -> None:
|
163 |
-
for file in glob.glob(f"{session_id}.json"):
|
164 |
-
os.remove(file)
|
165 |
-
|
166 |
-
|
167 |
def send_message(message: str, history, request: gr.Request) -> Any:
|
168 |
if request:
|
169 |
session_hash = request.session_hash
|
170 |
agent = build_agent(session_hash, message)
|
171 |
response = agent.run(message)
|
172 |
-
# if re.search(r'\bdone[.,!?]?\b', message, re.IGNORECASE):
|
173 |
-
# delete_json(session_hash)
|
174 |
return response.output.value
|
175 |
|
176 |
|
177 |
demo = gr.ChatInterface(fn=send_message)
|
178 |
demo.launch()
|
|
|
|
|
|
|
|
|
|
1 |
import glob
|
2 |
+
from venv import create
|
3 |
import gradio as gr
|
4 |
from typing import Any
|
5 |
from dotenv import load_dotenv
|
6 |
+
import requests
|
7 |
from griptape.structures import Agent
|
8 |
from griptape.tasks import PromptTask
|
9 |
from griptape.drivers import (
|
|
|
11 |
GriptapeCloudStructureRunDriver,
|
12 |
LocalFileManagerDriver,
|
13 |
LocalStructureRunDriver,
|
14 |
+
GriptapeCloudConversationMemoryDriver,
|
15 |
)
|
16 |
from griptape.memory.structure import ConversationMemory
|
17 |
+
from griptape.tools import StructureRunTool, FileManagerTool
|
18 |
from griptape.rules import Rule, Ruleset
|
19 |
+
from griptape.configs.drivers import AnthropicDriversConfig
|
20 |
+
from griptape.configs import Defaults
|
21 |
import time
|
22 |
import os
|
23 |
+
from urllib.parse import urljoin
|
24 |
|
25 |
|
26 |
# Load environment variables
|
27 |
load_dotenv()
|
28 |
|
29 |
+
Defaults.drivers_config = AnthropicDriversConfig()
|
30 |
+
|
31 |
+
base_url = "https://cloud.griptape.ai"
|
32 |
+
|
33 |
+
headers_api = {
|
34 |
+
"Authorization": f"Bearer {os.environ['GT_CLOUD_API_KEY']}",
|
35 |
+
"Content-Type": "application/json",
|
36 |
+
}
|
37 |
+
|
38 |
+
threads = {}
|
39 |
+
|
40 |
+
|
41 |
+
def create_thread_id(session_id: str) -> str:
|
42 |
+
if not session_id in threads:
|
43 |
+
params = {
|
44 |
+
"name": session_id,
|
45 |
+
"messages": [],
|
46 |
+
}
|
47 |
+
response = requests.post(
|
48 |
+
url=urljoin(base_url, "/api/threads"), headers=headers_api, json=params
|
49 |
+
)
|
50 |
+
response.raise_for_status()
|
51 |
+
thread_id = response.json()["thread_id"]
|
52 |
+
threads[session_id] = thread_id
|
53 |
+
return thread_id
|
54 |
+
else:
|
55 |
+
return threads[session_id]
|
56 |
+
|
57 |
|
58 |
# Create an agent that will create a prompt that can be used as input for the query agent from the Griptape Cloud.
|
59 |
|
|
|
81 |
def create_prompt_task(session_id: str, message: str) -> PromptTask:
|
82 |
return PromptTask(
|
83 |
f"""
|
84 |
+
Re-structure the values from the user's questions: '{message}' and the input value from the conversation memory to fit the following format. Leave out attributes that aren't important to the user:
|
85 |
years experience: <x>
|
86 |
location: <x>
|
87 |
role: <x>
|
|
|
96 |
|
97 |
|
98 |
def build_talk_agent(session_id: str, message: str) -> Agent:
|
99 |
+
|
100 |
+
create_thread_id(session_id)
|
101 |
+
|
102 |
ruleset = Ruleset(
|
103 |
name="Local Gradio Agent",
|
104 |
rules=[
|
|
|
116 |
),
|
117 |
],
|
118 |
)
|
119 |
+
file_manager_tool = FileManagerTool(
|
120 |
name="FileManager",
|
121 |
file_manager_driver=LocalFileManagerDriver(),
|
122 |
off_prompt=False,
|
123 |
)
|
124 |
|
125 |
return Agent(
|
|
|
126 |
conversation_memory=ConversationMemory(
|
127 |
+
driver=GriptapeCloudConversationMemoryDriver(
|
128 |
+
thread_id=str(threads[session_id]),
|
129 |
+
)
|
130 |
),
|
131 |
tools=[file_manager_tool],
|
132 |
tasks=[create_prompt_task(session_id, message)],
|
|
|
138 |
# The agent uses local memory, which it differentiates between by session_hash.
|
139 |
def build_agent(session_id: str, message: str) -> Agent:
|
140 |
|
141 |
+
create_thread_id(session_id)
|
142 |
+
|
143 |
ruleset = Ruleset(
|
144 |
name="Local Gradio Agent",
|
145 |
rules=[
|
|
|
167 |
|
168 |
print("Base URL", os.environ.get("BASE_URL", "https://cloud.griptape.ai"))
|
169 |
|
170 |
+
query_client = StructureRunTool(
|
171 |
name="QueryResumeSearcher",
|
172 |
description="Use it to search for a candidate with the query.",
|
173 |
driver=GriptapeCloudStructureRunDriver(
|
|
|
179 |
),
|
180 |
)
|
181 |
|
182 |
+
talk_client = StructureRunTool(
|
183 |
name="FormulateQueryFromUser",
|
184 |
description="Used to formulate a query from the user's input.",
|
185 |
driver=LocalStructureRunDriver(
|
|
|
188 |
)
|
189 |
|
190 |
return Agent(
|
|
|
191 |
conversation_memory=ConversationMemory(
|
192 |
+
driver=GriptapeCloudConversationMemoryDriver(
|
193 |
+
thread_id=threads[session_id],
|
194 |
+
)
|
195 |
),
|
196 |
tools=[talk_client, query_client],
|
197 |
rulesets=[ruleset],
|
198 |
)
|
199 |
|
200 |
|
|
|
|
|
|
|
|
|
|
|
201 |
def send_message(message: str, history, request: gr.Request) -> Any:
|
202 |
if request:
|
203 |
session_hash = request.session_hash
|
204 |
agent = build_agent(session_hash, message)
|
205 |
response = agent.run(message)
|
|
|
|
|
206 |
return response.output.value
|
207 |
|
208 |
|
209 |
demo = gr.ChatInterface(fn=send_message)
|
210 |
demo.launch()
|
211 |
+
|
212 |
+
# Set it back to empty when a session is done
|
213 |
+
# Is there a better way?
|
214 |
+
threads = {}
|
poetry.lock
CHANGED
@@ -212,22 +212,22 @@ files = [
|
|
212 |
|
213 |
[[package]]
|
214 |
name = "attrs"
|
215 |
-
version = "
|
216 |
description = "Classes Without Boilerplate"
|
217 |
optional = false
|
218 |
python-versions = ">=3.7"
|
219 |
files = [
|
220 |
-
{file = "attrs-
|
221 |
-
{file = "attrs-
|
222 |
]
|
223 |
|
224 |
[package.extras]
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
tests
|
230 |
-
tests-
|
231 |
|
232 |
[[package]]
|
233 |
name = "azure-core"
|
@@ -982,35 +982,33 @@ websockets = ">=10.0,<12.0"
|
|
982 |
|
983 |
[[package]]
|
984 |
name = "griptape"
|
985 |
-
version = "0.
|
986 |
description = "Modular Python framework for LLM workflows, tools, memory, and data."
|
987 |
optional = false
|
988 |
-
python-versions = "
|
989 |
-
files = [
|
990 |
-
|
991 |
-
{file = "griptape-0.29.1.tar.gz", hash = "sha256:9cea05fa198a6b5efb3d25bee024367fdf92a9452b02a7080e3216432849e2f4"},
|
992 |
-
]
|
993 |
|
994 |
[package.dependencies]
|
995 |
-
anthropic = {version = "
|
996 |
-
attrs = "
|
997 |
-
docker = "
|
998 |
-
jinja2 = "
|
999 |
-
marshmallow = "
|
1000 |
-
marshmallow-enum = "
|
1001 |
-
numpy = "
|
1002 |
-
openai = "
|
1003 |
-
pyyaml = "
|
1004 |
-
requests = "
|
1005 |
-
rich = "
|
1006 |
-
schema = "
|
1007 |
-
stringcase = "
|
1008 |
-
tenacity = "
|
1009 |
-
tiktoken = "
|
1010 |
-
voyageai = {version = "
|
1011 |
|
1012 |
[package.extras]
|
1013 |
-
all = ["accelerate (>=0.32.1,<0.33.0)", "anthropic (>=0.29.0,<0.30.0)", "beautifulsoup4 (>=4.12.3,<5.0.0)", "boto3 (>=1.34.119,<2.0.0)", "cohere (>=5.5.4,<6.0.0)", "diffusers (>=0.29.1,<0.30.0)", "duckduckgo-search (>=6.1.12,<7.0.0)", "elevenlabs (>=1.1.2,<2.0.0)", "filetype (>=1.2,<2.0)", "google-generativeai (>=0.7.2,<0.8.0)", "mail-parser (>=3.15.0,<4.0.0)", "markdownify (>=0.11.6,<0.12.0)", "marqo (>=3.7.0,<4.0.0)", "ollama (>=0.3.0,<0.4.0)", "opensearch-py (>=2.3.1,<3.0.0)", "opentelemetry-api (>=1.25.0,<2.0.0)", "opentelemetry-exporter-otlp-proto-http (>=1.25.0,<2.0.0)", "opentelemetry-instrumentation (>=0.46b0,<0.47)", "opentelemetry-instrumentation-threading (>=0.46b0,<0.47)", "opentelemetry-sdk (>=1.25.0,<2.0.0)", "pandas (>=1.3,<2.0)", "pgvector (>=0.2.3,<0.3.0)", "pillow (>=10.2.0,<11.0.0)", "pinecone-client (>=3,<4)", "playwright (>=1.42,<2.0)", "psycopg2-binary (>=2.9.9,<3.0.0)", "pusher (>=3.3.2,<4.0.0)", "pymongo (>=4.8.0,<5.0.0)", "pypdf (>=3.9,<4.0)", "qdrant-client (>=1.10.1,<2.0.0)", "redis (>=4.6.0,<5.0.0)", "sentencepiece (>=0.2.0,<0.3.0)", "snowflake-sqlalchemy (>=1.6.1,<2.0.0)", "sqlalchemy (>=2.0.31,<3.0.0)", "torch (>=2.3.1,<3.0.0)", "trafilatura (>=1.6,<2.0)", "transformers[torch] (>=4.41.1,<5.0.0)", "voyageai (>=0.2.1,<0.3.0)"]
|
1014 |
drivers-embedding-amazon-bedrock = ["boto3 (>=1.34.119,<2.0.0)"]
|
1015 |
drivers-embedding-amazon-sagemaker = ["boto3 (>=1.34.119,<2.0.0)"]
|
1016 |
drivers-embedding-cohere = ["cohere (>=5.5.4,<6.0.0)"]
|
@@ -1041,6 +1039,7 @@ drivers-sql-amazon-redshift = ["boto3 (>=1.34.119,<2.0.0)"]
|
|
1041 |
drivers-sql-snowflake = ["snowflake-sqlalchemy (>=1.6.1,<2.0.0)", "sqlalchemy (>=2.0.31,<3.0.0)"]
|
1042 |
drivers-text-to-speech-elevenlabs = ["elevenlabs (>=1.1.2,<2.0.0)"]
|
1043 |
drivers-vector-amazon-opensearch = ["boto3 (>=1.34.119,<2.0.0)", "opensearch-py (>=2.3.1,<3.0.0)"]
|
|
|
1044 |
drivers-vector-marqo = ["marqo (>=3.7.0,<4.0.0)"]
|
1045 |
drivers-vector-mongodb = ["pymongo (>=4.8.0,<5.0.0)"]
|
1046 |
drivers-vector-opensearch = ["opensearch-py (>=2.3.1,<3.0.0)"]
|
@@ -1058,6 +1057,12 @@ loaders-image = ["pillow (>=10.2.0,<11.0.0)"]
|
|
1058 |
loaders-pdf = ["pypdf (>=3.9,<4.0)"]
|
1059 |
loaders-sql = ["sqlalchemy (>=2.0.31,<3.0.0)"]
|
1060 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1061 |
[[package]]
|
1062 |
name = "h11"
|
1063 |
version = "0.14.0"
|
@@ -3331,4 +3336,4 @@ multidict = ">=4.0"
|
|
3331 |
[metadata]
|
3332 |
lock-version = "2.0"
|
3333 |
python-versions = "^3.11"
|
3334 |
-
content-hash = "
|
|
|
212 |
|
213 |
[[package]]
|
214 |
name = "attrs"
|
215 |
+
version = "24.2.0"
|
216 |
description = "Classes Without Boilerplate"
|
217 |
optional = false
|
218 |
python-versions = ">=3.7"
|
219 |
files = [
|
220 |
+
{file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
|
221 |
+
{file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
|
222 |
]
|
223 |
|
224 |
[package.extras]
|
225 |
+
benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
226 |
+
cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
227 |
+
dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
228 |
+
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
229 |
+
tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
230 |
+
tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
|
231 |
|
232 |
[[package]]
|
233 |
name = "azure-core"
|
|
|
982 |
|
983 |
[[package]]
|
984 |
name = "griptape"
|
985 |
+
version = "0.30.1"
|
986 |
description = "Modular Python framework for LLM workflows, tools, memory, and data."
|
987 |
optional = false
|
988 |
+
python-versions = "^3.9"
|
989 |
+
files = []
|
990 |
+
develop = false
|
|
|
|
|
991 |
|
992 |
[package.dependencies]
|
993 |
+
anthropic = {version = "^0.29.0", optional = true}
|
994 |
+
attrs = "^24.2.0"
|
995 |
+
docker = "^7.1.0"
|
996 |
+
jinja2 = "^3.1.4"
|
997 |
+
marshmallow = "^3.21.3"
|
998 |
+
marshmallow-enum = "^1.5.1"
|
999 |
+
numpy = "^1.26.4"
|
1000 |
+
openai = "^1.1.1"
|
1001 |
+
pyyaml = "^6.0.1"
|
1002 |
+
requests = "^2.32.0"
|
1003 |
+
rich = "^13.7.1"
|
1004 |
+
schema = "^0.7.7"
|
1005 |
+
stringcase = "^1.2.0"
|
1006 |
+
tenacity = "^8.5.0"
|
1007 |
+
tiktoken = "^0.7"
|
1008 |
+
voyageai = {version = "^0.2.1", optional = true}
|
1009 |
|
1010 |
[package.extras]
|
1011 |
+
all = ["accelerate (>=0.32.1,<0.33.0)", "anthropic (>=0.29.0,<0.30.0)", "astrapy (>=1.4,<2.0)", "beautifulsoup4 (>=4.12.3,<5.0.0)", "boto3 (>=1.34.119,<2.0.0)", "cohere (>=5.5.4,<6.0.0)", "diffusers (>=0.29.1,<0.30.0)", "duckduckgo-search (>=6.1.12,<7.0.0)", "elevenlabs (>=1.1.2,<2.0.0)", "filetype (>=1.2,<2.0)", "google-generativeai (>=0.7.2,<0.8.0)", "mail-parser (>=3.15.0,<4.0.0)", "markdownify (>=0.11.6,<0.12.0)", "marqo (>=3.7.0,<4.0.0)", "ollama (>=0.3.0,<0.4.0)", "opensearch-py (>=2.3.1,<3.0.0)", "opentelemetry-api (>=1.25.0,<2.0.0)", "opentelemetry-exporter-otlp-proto-http (>=1.25.0,<2.0.0)", "opentelemetry-instrumentation (>=0.46b0,<0.47)", "opentelemetry-instrumentation-threading (>=0.46b0,<0.47)", "opentelemetry-sdk (>=1.25.0,<2.0.0)", "pandas (>=1.3,<2.0)", "pgvector (>=0.2.3,<0.3.0)", "pillow (>=10.2.0,<11.0.0)", "pinecone-client (>=3,<4)", "playwright (>=1.42,<2.0)", "psycopg2-binary (>=2.9.9,<3.0.0)", "pusher (>=3.3.2,<4.0.0)", "pymongo (>=4.8.0,<5.0.0)", "pypdf (>=3.9,<4.0)", "qdrant-client (>=1.10.1,<2.0.0)", "redis (>=4.6.0,<5.0.0)", "sentencepiece (>=0.2.0,<0.3.0)", "snowflake-sqlalchemy (>=1.6.1,<2.0.0)", "sqlalchemy (>=2.0.31,<3.0.0)", "torch (>=2.3.1,<3.0.0)", "trafilatura (>=1.6,<2.0)", "transformers[torch] (>=4.41.1,<5.0.0)", "voyageai (>=0.2.1,<0.3.0)"]
|
1012 |
drivers-embedding-amazon-bedrock = ["boto3 (>=1.34.119,<2.0.0)"]
|
1013 |
drivers-embedding-amazon-sagemaker = ["boto3 (>=1.34.119,<2.0.0)"]
|
1014 |
drivers-embedding-cohere = ["cohere (>=5.5.4,<6.0.0)"]
|
|
|
1039 |
drivers-sql-snowflake = ["snowflake-sqlalchemy (>=1.6.1,<2.0.0)", "sqlalchemy (>=2.0.31,<3.0.0)"]
|
1040 |
drivers-text-to-speech-elevenlabs = ["elevenlabs (>=1.1.2,<2.0.0)"]
|
1041 |
drivers-vector-amazon-opensearch = ["boto3 (>=1.34.119,<2.0.0)", "opensearch-py (>=2.3.1,<3.0.0)"]
|
1042 |
+
drivers-vector-astra-db = ["astrapy (>=1.4,<2.0)"]
|
1043 |
drivers-vector-marqo = ["marqo (>=3.7.0,<4.0.0)"]
|
1044 |
drivers-vector-mongodb = ["pymongo (>=4.8.0,<5.0.0)"]
|
1045 |
drivers-vector-opensearch = ["opensearch-py (>=2.3.1,<3.0.0)"]
|
|
|
1057 |
loaders-pdf = ["pypdf (>=3.9,<4.0)"]
|
1058 |
loaders-sql = ["sqlalchemy (>=2.0.31,<3.0.0)"]
|
1059 |
|
1060 |
+
[package.source]
|
1061 |
+
type = "git"
|
1062 |
+
url = "https://github.com/griptape-ai/griptape"
|
1063 |
+
reference = "dev"
|
1064 |
+
resolved_reference = "489453eddb0bfeb026a754278b5d3cde546427bb"
|
1065 |
+
|
1066 |
[[package]]
|
1067 |
name = "h11"
|
1068 |
version = "0.14.0"
|
|
|
3336 |
[metadata]
|
3337 |
lock-version = "2.0"
|
3338 |
python-versions = "^3.11"
|
3339 |
+
content-hash = "8d3d5c66554c9d6f0095463ce6653da9aaa439f8637871c474489ac050ee9c49"
|
pyproject.toml
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
[tool.poetry]
|
2 |
-
name = "griptape-
|
3 |
version = "0.1.0"
|
4 |
description = "Chat demo using the Griptape Framework and Gradio."
|
5 |
authors = ["Griptape <[email protected]>"]
|
@@ -12,8 +12,8 @@ package-mode = false
|
|
12 |
python = "^3.11"
|
13 |
python-dotenv = "^1.0.0"
|
14 |
gradio = "^4.37.1"
|
15 |
-
griptape = {extras
|
16 |
-
attrs = "^
|
17 |
pymupdf = "^1.24.7"
|
18 |
argparse = "^1.4.0"
|
19 |
azure-identity = "^1.17.1"
|
|
|
1 |
[tool.poetry]
|
2 |
+
name = "griptape-test"
|
3 |
version = "0.1.0"
|
4 |
description = "Chat demo using the Griptape Framework and Gradio."
|
5 |
authors = ["Griptape <[email protected]>"]
|
|
|
12 |
python = "^3.11"
|
13 |
python-dotenv = "^1.0.0"
|
14 |
gradio = "^4.37.1"
|
15 |
+
griptape = {git="https://github.com/griptape-ai/griptape",branch="dev", extras=["drivers-embedding-voyageai","drivers-prompt-anthropic"]}
|
16 |
+
attrs = "^24.2.0"
|
17 |
pymupdf = "^1.24.7"
|
18 |
argparse = "^1.4.0"
|
19 |
azure-identity = "^1.17.1"
|