mirror of
https://github.com/MODSetter/SurfSense.git
synced 2025-09-02 10:39:13 +00:00
Merge pull request #34 from Adamsmith6300/add-hot-reloading
Add hot reloading + minor UX updates
This commit is contained in:
commit
02fc295812
3 changed files with 49 additions and 41 deletions
|
@ -78,7 +78,7 @@ Make sure pgvector extension is installed on your machine. Setup Guide https://g
|
|||
For File uploading you need Unstructured.io API key. You can get it at http://platform.unstructured.io/
|
||||
|
||||
#### Auth
|
||||
SurfSense now only works with Google OAuth. Make sure to set your OAuth Client at https://developers.google.com/identity/protocols/oauth2 . We need client id and client secret for backend.
|
||||
SurfSense now only works with Google OAuth. Make sure to set your OAuth Client at https://developers.google.com/identity/protocols/oauth2 . We need client id and client secret for backend. Make sure to enable people api and add the required scopes under data access (openid, userinfo.email, userinfo.profile)
|
||||
|
||||

|
||||
|
||||
|
@ -130,7 +130,7 @@ You can also integrate any LLM just follow this https://docs.litellm.ai/docs/pro
|
|||
Now once you have everything let's proceed to run SurfSense.
|
||||
1. Install `uv` : https://docs.astral.sh/uv/getting-started/installation/
|
||||
2. Now just run this command to install dependencies i.e `uv sync`
|
||||
3. That's it. Now just run the `main.py` file using `uv run main.py`.
|
||||
3. That's it. Now just run the `main.py` file using `uv run main.py`. You can also optionally pass `--reload` as an argument to enable hot reloading.
|
||||
4. If everything worked fine you should see screen like this.
|
||||
|
||||

|
||||
|
|
|
@ -1,4 +1,15 @@
|
|||
import uvicorn
|
||||
import argparse
|
||||
|
||||
if __name__ == "__main__":
|
||||
uvicorn.run("app.app:app", host="0.0.0.0", log_level="info", loop="asyncio")
|
||||
parser = argparse.ArgumentParser(description='Run the SurfSense application')
|
||||
parser.add_argument('--reload', action='store_true', help='Enable hot reloading')
|
||||
args = parser.parse_args()
|
||||
|
||||
uvicorn.run(
|
||||
"app.app:app",
|
||||
host="0.0.0.0",
|
||||
log_level="info",
|
||||
reload=args.reload,
|
||||
reload_dirs=["app"]
|
||||
)
|
||||
|
|
|
@ -211,6 +211,7 @@ const DashboardPage = () => {
|
|||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
|
||||
{searchSpaces && searchSpaces.map((space) => (
|
||||
<Link href={`/dashboard/${space.id}/documents`}>
|
||||
<motion.div
|
||||
key={space.id}
|
||||
variants={itemVariants}
|
||||
|
@ -244,20 +245,14 @@ const DashboardPage = () => {
|
|||
className="h-full w-full object-cover grayscale duration-700 group-hover:grayscale-0"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-background/80 to-transparent" />
|
||||
<div className="absolute bottom-2 left-3 flex items-center gap-2">
|
||||
<Link href={`/dashboard/${space.id}/documents`}>
|
||||
<span className="flex h-8 w-8 items-center justify-center rounded-full bg-blue-100/80 dark:bg-blue-950/80">
|
||||
<Search className="h-4 w-4 text-blue-500" />
|
||||
</span>
|
||||
</Link>
|
||||
</div>
|
||||
<div className="absolute top-2 right-2">
|
||||
<div onClick={(e) => e.preventDefault()}>
|
||||
<AlertDialog>
|
||||
<AlertDialogTrigger asChild>
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
className="h-8 w-8 rounded-full bg-background/50 backdrop-blur-sm hover:bg-destructive/90 hover:text-destructive-foreground"
|
||||
className="h-8 w-8 rounded-full bg-background/50 backdrop-blur-sm hover:bg-destructive/90 cursor-pointer"
|
||||
>
|
||||
<Trash2 className="h-4 w-4" />
|
||||
</Button>
|
||||
|
@ -266,7 +261,7 @@ const DashboardPage = () => {
|
|||
<AlertDialogHeader>
|
||||
<AlertDialogTitle>Delete Search Space</AlertDialogTitle>
|
||||
<AlertDialogDescription>
|
||||
Are you sure you want to delete "{space.name}"? This action cannot be undone.
|
||||
Are you sure you want to delete "{space.name}"? This action cannot be undone.
|
||||
All documents, chats, and podcasts in this search space will be permanently deleted.
|
||||
</AlertDialogDescription>
|
||||
</AlertDialogHeader>
|
||||
|
@ -283,6 +278,7 @@ const DashboardPage = () => {
|
|||
</AlertDialog>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-1 flex-col justify-between p-4">
|
||||
<div>
|
||||
|
@ -298,6 +294,7 @@ const DashboardPage = () => {
|
|||
</Tilt>
|
||||
|
||||
</motion.div>
|
||||
</Link>
|
||||
))}
|
||||
|
||||
{searchSpaces.length === 0 && (
|
||||
|
|
Loading…
Add table
Reference in a new issue