This commit is contained in:
parent
70fe51058a
commit
91a32aa8ab
9
.woodpecker.yml
Normal file
9
.woodpecker.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
pipeline:
|
||||||
|
build-image:
|
||||||
|
image: docker
|
||||||
|
commands:
|
||||||
|
- docker login -u guillem -p $GITEA_API_KEY
|
||||||
|
- docker build . -t git.guillemborrell.es/guillem/hellocomputer:0.1
|
||||||
|
- docker push git.guillemborrell.es/guillem/hellocomputer:0.1
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
19
Dockerfile
Normal file
19
Dockerfile
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# Use an official Python runtime as a parent image
|
||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
# Set the working directory in the container to /app
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Add the current directory contents into the container at /app
|
||||||
|
ADD . /app
|
||||||
|
|
||||||
|
# Install any needed packages specified in requirements.txt
|
||||||
|
RUN pip install uv
|
||||||
|
RUN uv pip install -r requirements.txt
|
||||||
|
RUN uv pip install -e .
|
||||||
|
|
||||||
|
# Make port 80 available to the world outside this container
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
# Run the command to start uvicorn
|
||||||
|
CMD ["uvicorn", "hellocomputer.main:app", "--host", "0.0.0.0", "--port", "80"]
|
213
requirements.txt
Normal file
213
requirements.txt
Normal file
|
@ -0,0 +1,213 @@
|
||||||
|
# This file was autogenerated by uv via the following command:
|
||||||
|
# uv pip compile requirements.in
|
||||||
|
aiobotocore==2.13.0
|
||||||
|
# via s3fs
|
||||||
|
aiofiles==23.2.1
|
||||||
|
aiohttp==3.9.5
|
||||||
|
# via
|
||||||
|
# aiobotocore
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# s3fs
|
||||||
|
aioitertools==0.11.0
|
||||||
|
# via aiobotocore
|
||||||
|
aiosignal==1.3.1
|
||||||
|
# via aiohttp
|
||||||
|
annotated-types==0.7.0
|
||||||
|
# via pydantic
|
||||||
|
anyio==4.3.0
|
||||||
|
# via
|
||||||
|
# httpx
|
||||||
|
# openai
|
||||||
|
# starlette
|
||||||
|
# watchfiles
|
||||||
|
attrs==23.2.0
|
||||||
|
# via aiohttp
|
||||||
|
botocore==1.34.106
|
||||||
|
# via aiobotocore
|
||||||
|
certifi==2024.2.2
|
||||||
|
# via
|
||||||
|
# httpcore
|
||||||
|
# httpx
|
||||||
|
# requests
|
||||||
|
charset-normalizer==3.3.2
|
||||||
|
# via requests
|
||||||
|
click==8.1.7
|
||||||
|
# via
|
||||||
|
# typer
|
||||||
|
# uvicorn
|
||||||
|
dataclasses-json==0.6.6
|
||||||
|
# via langchain-community
|
||||||
|
distro==1.9.0
|
||||||
|
# via openai
|
||||||
|
dnspython==2.6.1
|
||||||
|
# via email-validator
|
||||||
|
duckdb==0.10.3
|
||||||
|
email-validator==2.1.1
|
||||||
|
# via fastapi
|
||||||
|
fastapi==0.111.0
|
||||||
|
fastapi-cli==0.0.4
|
||||||
|
# via fastapi
|
||||||
|
frozenlist==1.4.1
|
||||||
|
# via
|
||||||
|
# aiohttp
|
||||||
|
# aiosignal
|
||||||
|
fsspec==2024.5.0
|
||||||
|
# via s3fs
|
||||||
|
h11==0.14.0
|
||||||
|
# via
|
||||||
|
# httpcore
|
||||||
|
# uvicorn
|
||||||
|
httpcore==1.0.5
|
||||||
|
# via httpx
|
||||||
|
httptools==0.6.1
|
||||||
|
# via uvicorn
|
||||||
|
httpx==0.27.0
|
||||||
|
# via
|
||||||
|
# fastapi
|
||||||
|
# openai
|
||||||
|
idna==3.7
|
||||||
|
# via
|
||||||
|
# anyio
|
||||||
|
# email-validator
|
||||||
|
# httpx
|
||||||
|
# requests
|
||||||
|
# yarl
|
||||||
|
jinja2==3.1.4
|
||||||
|
# via fastapi
|
||||||
|
jmespath==1.0.1
|
||||||
|
# via botocore
|
||||||
|
jsonpatch==1.33
|
||||||
|
# via langchain-core
|
||||||
|
jsonpointer==2.4
|
||||||
|
# via jsonpatch
|
||||||
|
langchain==0.2.1
|
||||||
|
# via langchain-community
|
||||||
|
langchain-community==0.2.1
|
||||||
|
langchain-core==0.2.1
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# langchain-text-splitters
|
||||||
|
langchain-text-splitters==0.2.0
|
||||||
|
# via langchain
|
||||||
|
langsmith==0.1.63
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# langchain-core
|
||||||
|
markdown-it-py==3.0.0
|
||||||
|
# via rich
|
||||||
|
markupsafe==2.1.5
|
||||||
|
# via jinja2
|
||||||
|
marshmallow==3.21.2
|
||||||
|
# via dataclasses-json
|
||||||
|
mdurl==0.1.2
|
||||||
|
# via markdown-it-py
|
||||||
|
multidict==6.0.5
|
||||||
|
# via
|
||||||
|
# aiohttp
|
||||||
|
# yarl
|
||||||
|
mypy-extensions==1.0.0
|
||||||
|
# via typing-inspect
|
||||||
|
numpy==1.26.4
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
openai==1.30.3
|
||||||
|
orjson==3.10.3
|
||||||
|
# via
|
||||||
|
# fastapi
|
||||||
|
# langsmith
|
||||||
|
packaging==23.2
|
||||||
|
# via
|
||||||
|
# langchain-core
|
||||||
|
# marshmallow
|
||||||
|
pydantic==2.7.1
|
||||||
|
# via
|
||||||
|
# fastapi
|
||||||
|
# langchain
|
||||||
|
# langchain-core
|
||||||
|
# langsmith
|
||||||
|
# openai
|
||||||
|
# pydantic-settings
|
||||||
|
pydantic-core==2.18.2
|
||||||
|
# via pydantic
|
||||||
|
pydantic-settings==2.2.1
|
||||||
|
pygments==2.18.0
|
||||||
|
# via rich
|
||||||
|
python-dateutil==2.9.0.post0
|
||||||
|
# via botocore
|
||||||
|
python-dotenv==1.0.1
|
||||||
|
# via
|
||||||
|
# pydantic-settings
|
||||||
|
# uvicorn
|
||||||
|
python-multipart==0.0.9
|
||||||
|
# via fastapi
|
||||||
|
pyyaml==6.0.1
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# langchain-core
|
||||||
|
# uvicorn
|
||||||
|
requests==2.32.2
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# langsmith
|
||||||
|
rich==13.7.1
|
||||||
|
# via typer
|
||||||
|
s3fs==2024.5.0
|
||||||
|
shellingham==1.5.4
|
||||||
|
# via typer
|
||||||
|
six==1.16.0
|
||||||
|
# via python-dateutil
|
||||||
|
sniffio==1.3.1
|
||||||
|
# via
|
||||||
|
# anyio
|
||||||
|
# httpx
|
||||||
|
# openai
|
||||||
|
sqlalchemy==2.0.30
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
starlette==0.37.2
|
||||||
|
# via fastapi
|
||||||
|
tenacity==8.3.0
|
||||||
|
# via
|
||||||
|
# langchain
|
||||||
|
# langchain-community
|
||||||
|
# langchain-core
|
||||||
|
tqdm==4.66.4
|
||||||
|
# via openai
|
||||||
|
typer==0.12.3
|
||||||
|
# via fastapi-cli
|
||||||
|
typing-extensions==4.12.0
|
||||||
|
# via
|
||||||
|
# fastapi
|
||||||
|
# openai
|
||||||
|
# pydantic
|
||||||
|
# pydantic-core
|
||||||
|
# sqlalchemy
|
||||||
|
# typer
|
||||||
|
# typing-inspect
|
||||||
|
typing-inspect==0.9.0
|
||||||
|
# via dataclasses-json
|
||||||
|
ujson==5.10.0
|
||||||
|
# via fastapi
|
||||||
|
urllib3==2.2.1
|
||||||
|
# via
|
||||||
|
# botocore
|
||||||
|
# requests
|
||||||
|
uvicorn==0.29.0
|
||||||
|
# via fastapi
|
||||||
|
uvloop==0.19.0
|
||||||
|
# via uvicorn
|
||||||
|
watchfiles==0.21.0
|
||||||
|
# via uvicorn
|
||||||
|
websockets==12.0
|
||||||
|
# via uvicorn
|
||||||
|
wrapt==1.16.0
|
||||||
|
# via aiobotocore
|
||||||
|
yarl==1.9.4
|
||||||
|
# via aiohttp
|
|
@ -45,6 +45,6 @@ app.include_router(files.router)
|
||||||
app.include_router(analysis.router)
|
app.include_router(analysis.router)
|
||||||
app.mount(
|
app.mount(
|
||||||
"/",
|
"/",
|
||||||
StaticFiles(directory=static_path, html=True, packages=["bootstrap4"]),
|
StaticFiles(directory=static_path, html=True),
|
||||||
name="static",
|
name="static",
|
||||||
)
|
)
|
||||||
|
|
|
@ -48,17 +48,29 @@
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal"
|
<button type="button" class="btn-close" data-bs-dismiss="modal"
|
||||||
aria-label="Close"></button>
|
aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<form id="fileInputForm">
|
||||||
<input type="file" class="custom-file-input" id="inputGroupFile01">
|
<div class="modal-body">
|
||||||
</div>
|
<label for="datasetLabel" class="form-label">Sesson name</label>
|
||||||
<div class="modal-body" id="uploadButtonDiv">
|
<input type="text" class="form-control" id="datasetLabel"
|
||||||
<button type="button" class="btn btn-primary" id="uploadButton">Upload</button>
|
aria-describedby="labelHelp">
|
||||||
</div>
|
<div id="labelHelp" class="form-text">You'll be able to recover this file in the
|
||||||
<div class="modal-body" id="uploadResultDiv">
|
future
|
||||||
</div>
|
with this name
|
||||||
<div class="modal-footer">
|
</div>
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
</div>
|
||||||
</div>
|
<div class="modal-body">
|
||||||
|
<input type="file" class="custom-file-input" id="inputGroupFile01">
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" id="uploadButtonDiv">
|
||||||
|
<button type="button" class="btn btn-primary" id="uploadButton">Upload</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" id="uploadResultDiv">
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal"
|
||||||
|
onclick="document.getElementById('fileInputForm').reset()">Close</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue