Spaces:
Runtime error
Runtime error
Commit
·
1f72e50
1
Parent(s):
2269945
add playwright
Browse files- Dockerfile +3 -0
- app.py +44 -0
- requirements.txt +2 -1
Dockerfile
CHANGED
|
@@ -9,6 +9,9 @@ COPY ./requirements.txt /code/requirements.txt
|
|
| 9 |
|
| 10 |
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
| 11 |
|
|
|
|
|
|
|
|
|
|
| 12 |
RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf - \
|
| 13 |
&& cd openssl-1.1.1u \
|
| 14 |
&& ./config --prefix=/usr/local \
|
|
|
|
| 9 |
|
| 10 |
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt
|
| 11 |
|
| 12 |
+
RUN python -m playwright install-deps
|
| 13 |
+
RUN playwright install webkit
|
| 14 |
+
|
| 15 |
RUN wget -O - https://www.openssl.org/source/openssl-1.1.1u.tar.gz | tar zxf - \
|
| 16 |
&& cd openssl-1.1.1u \
|
| 17 |
&& ./config --prefix=/usr/local \
|
app.py
CHANGED
|
@@ -62,6 +62,48 @@ from langchain.document_loaders import (
|
|
| 62 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 63 |
from langchain.docstore.document import Document
|
| 64 |
import langchain
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
# import playsound
|
| 66 |
|
| 67 |
langchain.debug = True
|
|
@@ -1232,10 +1274,12 @@ if __name__ == '__main__':
|
|
| 1232 |
# QAQuery("what is COFOR ?")
|
| 1233 |
# CreatDb_P()
|
| 1234 |
# QAQuery_p("what is GST ?")
|
|
|
|
| 1235 |
if SysLock == "1":
|
| 1236 |
demo.queue().launch(auth=(username, password), server_name="0.0.0.0", server_port=7860)
|
| 1237 |
else:
|
| 1238 |
demo.queue().launch(server_name="0.0.0.0", server_port=7860)
|
| 1239 |
pass
|
|
|
|
| 1240 |
|
| 1241 |
|
|
|
|
| 62 |
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
| 63 |
from langchain.docstore.document import Document
|
| 64 |
import langchain
|
| 65 |
+
import asyncio
|
| 66 |
+
from playwright.async_api import async_playwright
|
| 67 |
+
|
| 68 |
+
async def start_playwright():
|
| 69 |
+
pw = await async_playwright().start()
|
| 70 |
+
# browser = await pw.chromium.launch(headless=True)
|
| 71 |
+
browser = await pw.webkit.launch(headless=True)
|
| 72 |
+
page = await browser.new_page()
|
| 73 |
+
|
| 74 |
+
# note all methods are async (use the "await" keyword)
|
| 75 |
+
await page.goto("https://basicchatbot.azurewebsites.net/")
|
| 76 |
+
print("Title of Web: ", await page.title())
|
| 77 |
+
await page.wait_for_timeout(200)
|
| 78 |
+
# print("Content of Web: ", await page.content())
|
| 79 |
+
# print("Test content: ", await page.locator("//div[@class='css-zt5igj e1nzilvr3']").inner_html())
|
| 80 |
+
print("Test content: ", await page.locator("//div[@class='css-zt5igj e1nzilvr3']").inner_text())
|
| 81 |
+
|
| 82 |
+
await page.locator("//textarea").fill("when memory is not enough")
|
| 83 |
+
await page.wait_for_timeout(200)
|
| 84 |
+
# print("Content of Web: ", await page.content())
|
| 85 |
+
# await page.locator("//button[@class='css-1wi2cd3 e1d2x3se3']").click()
|
| 86 |
+
await page.locator("//textarea").press("Enter")
|
| 87 |
+
await page.wait_for_timeout(3000)
|
| 88 |
+
# print("Content of Web: ", await page.content())
|
| 89 |
+
# print("output_text 1", await page.locator("//div[@aria-label='Chat message from assistant']").last.inner_text())
|
| 90 |
+
# output_text = await page.locator("//div[@aria-label='Chat message from assistant']").last.inner_text()
|
| 91 |
+
# print("output_text 1", output_text)
|
| 92 |
+
output_history = "NOTHING"
|
| 93 |
+
for i in range(40):
|
| 94 |
+
output_text = await page.locator("//div[@aria-label='Chat message from assistant']").last.inner_text()
|
| 95 |
+
print("output_text... :", output_text)
|
| 96 |
+
if output_text == output_history:
|
| 97 |
+
break
|
| 98 |
+
else:
|
| 99 |
+
await page.wait_for_timeout(1000)
|
| 100 |
+
output_history = output_text
|
| 101 |
+
|
| 102 |
+
print("-------- Final Answer-----------\n", output_text)
|
| 103 |
+
|
| 104 |
+
await browser.close()
|
| 105 |
+
|
| 106 |
+
|
| 107 |
# import playsound
|
| 108 |
|
| 109 |
langchain.debug = True
|
|
|
|
| 1274 |
# QAQuery("what is COFOR ?")
|
| 1275 |
# CreatDb_P()
|
| 1276 |
# QAQuery_p("what is GST ?")
|
| 1277 |
+
asyncio.run(start_playwright())
|
| 1278 |
if SysLock == "1":
|
| 1279 |
demo.queue().launch(auth=(username, password), server_name="0.0.0.0", server_port=7860)
|
| 1280 |
else:
|
| 1281 |
demo.queue().launch(server_name="0.0.0.0", server_port=7860)
|
| 1282 |
pass
|
| 1283 |
+
|
| 1284 |
|
| 1285 |
|
requirements.txt
CHANGED
|
@@ -13,4 +13,5 @@ playsound
|
|
| 13 |
pygame
|
| 14 |
unstructured
|
| 15 |
openpyxl
|
| 16 |
-
python-docx
|
|
|
|
|
|
| 13 |
pygame
|
| 14 |
unstructured
|
| 15 |
openpyxl
|
| 16 |
+
python-docx
|
| 17 |
+
playwright
|