Skip to content

Commit 27456b9

Browse files
authored
Merge pull request #453 from l3vels/fix/datasource
Fix/datasource
2 parents 2eeb0a2 + 4e71efd commit 27456b9

File tree

11 files changed

+76
-35
lines changed

11 files changed

+76
-35
lines changed

apps/server/controllers/configuration.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,19 @@ def index_documents(value: str, datasource_id: UUID, account: AccountOutput):
5656
similarity_top_k,
5757
)
5858
retriever.index_documents(file_urls)
59-
6059
datasource.status = DatasourceStatus.READY.value
6160
datasource.error = None
61+
6262
except Exception as err:
63-
print(err)
64-
sentry_sdk.capture_exception(err)
6563
datasource.status = DatasourceStatus.FAILED.value
66-
datasource.error = str(err)
64+
try:
65+
error_body = json.loads(err.body)
66+
error_message = error_body.get("error", {}).get("message", "")
67+
print("HERE: ", error_message)
68+
datasource.error = str(error_message)
69+
except (AttributeError, json.JSONDecodeError):
70+
sentry_sdk.capture_exception(err)
71+
datasource.error = str(err)
6772

6873
session.add(datasource)
6974
session.commit()

apps/server/datasources/file/file_retriever.py

+16-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from uuid import UUID, uuid4
66

77
import s3fs
8+
from fastapi import HTTPException
89
from llama_index.core import (ServiceContext, Settings, SimpleDirectoryReader,
910
StorageContext, SummaryIndex, TreeIndex,
1011
VectorStoreIndex, load_index_from_storage)
@@ -15,6 +16,7 @@
1516
from llama_index.vector_stores.pinecone import PineconeVectorStore
1617
from llama_index.vector_stores.weaviate import WeaviateVectorStore
1718
from llama_index.vector_stores.zep import ZepVectorStore
19+
from pinecone import Pinecone, ServerlessSpec
1820

1921
from config import Config
2022
from services.aws_s3 import AWSS3Service
@@ -93,20 +95,28 @@ def get_vector_store(self, is_retriever: bool = False):
9395
embedding_dimensions=1536,
9496
)
9597
elif self.vector_store == VectorStoreProvider.PINECONE.value:
96-
import pinecone
97-
9898
# Pinecone only supports alphanumeric characters. Max length 40
9999
index_name = UUID(self.datasource_id).hex
100100

101-
pinecone.init(
101+
# pinecone.init(
102+
# api_key=self.settings.pinecone_api_key,
103+
# environment=self.settings.pinecone_environment,
104+
# )
105+
106+
pc = Pinecone(
102107
api_key=self.settings.pinecone_api_key,
103108
environment=self.settings.pinecone_environment,
104109
)
105110

106111
if not is_retriever:
107-
pinecone.create_index(index_name, dimension=1536, metric="cosine")
108-
109-
pinecone_index = pinecone.Index(index_name)
112+
pc.create_index(
113+
index_name,
114+
dimension=1536,
115+
metric="cosine",
116+
spec=ServerlessSpec(cloud="aws", region="us-west-2"),
117+
)
118+
119+
pinecone_index = pc.Index(index_name)
110120

111121
vector_store = PineconeVectorStore(
112122
pinecone_index=pinecone_index,

apps/ui/src/components/UploadedFile/UploadedFile.tsx

+17-6
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,25 @@ import IconButton from 'share-ui/components/IconButton/IconButton'
77
import Close from 'share-ui/components/Icon/Icons/components/Close'
88

99
type UploadedFileProps = {
10-
onClick: (id?: string) => void
11-
id?: string
10+
onClick?: () => void
1211
name: string
13-
hasDeleteIcon?: boolean
12+
onDeleteClick?: () => void
1413
}
1514

16-
const UploadedFile = ({ id, name, onClick, hasDeleteIcon = false }: UploadedFileProps) => {
15+
const UploadedFile = ({ name, onClick, onDeleteClick }: UploadedFileProps) => {
16+
const handleDelete = (event: any) => {
17+
event.stopPropagation()
18+
if (onDeleteClick) {
19+
onDeleteClick()
20+
}
21+
}
22+
1723
return (
18-
<StyledUploadedFile onClick={() => onClick(id)}>
24+
<StyledUploadedFile
25+
onClick={() => {
26+
if (onClick) onClick()
27+
}}
28+
>
1929
<StyledIconWrapper>
2030
<StyledDocIcon />
2131
</StyledIconWrapper>
@@ -27,8 +37,9 @@ const UploadedFile = ({ id, name, onClick, hasDeleteIcon = false }: UploadedFile
2737
customColor={'#000'}
2838
/>
2939
</StyledTextWrapper>
30-
{hasDeleteIcon && (
40+
{handleDelete && (
3141
<IconButton
42+
onClick={handleDelete}
3243
size={IconButton.sizes?.XS}
3344
icon={() => <StyledCloseIcon size='22' />}
3445
kind={IconButton.kinds?.TERTIARY}

apps/ui/src/modals/AIChatModal/components/ChatV2.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ const ChatV2 = ({ chatSessionId }: { chatSessionId?: string }) => {
430430
{uploadedFileObject && (
431431
<StyledFileWrapper>
432432
<UploadedFile
433-
onClick={() => setUploadedFileObject(null)}
433+
onDeleteClick={() => setUploadedFileObject(null)}
434434
name={uploadedFileObject.fileName}
435435
/>
436436
</StyledFileWrapper>

apps/ui/src/modals/AIChatModal/fileTypes.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,13 @@ export const FILE_TYPES = [
1212
'application/epub+zip',
1313
'application/mbox',
1414
'application/x-ipynb+json',
15-
'audio/mpeg',
16-
'video/mp4',
17-
'text/plain',
15+
// 'audio/mpeg',
16+
// 'video/mp4',
17+
// 'text/plain',
1818
]
1919

2020
export const SUPPORTED_FILE_EXTENSIONS = [
21-
'txt',
21+
// 'txt',
2222
'pdf',
2323
'csv',
2424
'json',
@@ -31,6 +31,6 @@ export const SUPPORTED_FILE_EXTENSIONS = [
3131
'epub',
3232
'mbox',
3333
'ipynb',
34-
'mp3',
35-
'mp4',
34+
// 'mp3',
35+
// 'mp4',
3636
]

apps/ui/src/pages/Datasource/Datasource.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ const Datasource = () => {
4848

4949
const navigate = useNavigate()
5050

51-
useEffect(() => {
52-
if (datasources?.length > 0) navigate(`/datasources/${datasources?.[0].id}/edit-datasource`)
53-
else if (groups?.length > 0) navigate(`/datasources/${groups?.[0].id}/edit-group`)
54-
}, [datasources])
51+
// useEffect(() => {
52+
// if (datasources?.length > 0) navigate(`/datasources/${datasources?.[0].id}/edit-datasource`)
53+
// else if (groups?.length > 0) navigate(`/datasources/${groups?.[0].id}/edit-group`)
54+
// }, [datasources])
5555

5656
return (
5757
<>

apps/ui/src/pages/Datasource/DatasourceForm/DatasourceForm.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -112,10 +112,10 @@ const DatasourceForm = ({ formik, isLoading, isEdit = false, type }: DatasourceF
112112
files.map((file: any) => (
113113
<UploadedFile
114114
key={file.url}
115-
id={file.url}
116-
hasDeleteIcon
117-
onClick={id => {
118-
const filteredFiles = files.filter((file: any) => file.url !== id)
115+
onDeleteClick={() => {
116+
const filteredFiles = files.filter(
117+
(files: any) => files.url !== file.url,
118+
)
119119
setFieldValue('files', filteredFiles)
120120
}}
121121
name={file.name}

apps/ui/src/pages/Datasource/DatasourceForm/useDatasourceForm.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1+
import { ToastContext } from 'contexts'
12
import useUploadFile from 'hooks/useUploadFile'
2-
import { ChangeEvent, useState } from 'react'
3+
import { ChangeEvent, useContext, useState } from 'react'
34
import { useDataLoadersService } from 'services/datasource/useDataLoadersService'
45

56
export const useDatasourceForm = (formik: any) => {
7+
const { setToast } = useContext(ToastContext)
8+
69
const { data: dataLoaders } = useDataLoadersService()
710

811
const { setFieldValue, values } = formik
@@ -26,6 +29,16 @@ export const useDatasourceForm = (formik: any) => {
2629
const promises = []
2730

2831
for (const file of files) {
32+
if (file.type.startsWith('video/')) {
33+
setToast({
34+
message: 'Cant upload video!',
35+
type: 'warning',
36+
open: true,
37+
})
38+
39+
continue
40+
}
41+
2942
promises.push(
3043
uploadFile(
3144
{

apps/ui/src/pages/Datasource/useEditDatasource.ts

-2
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,6 @@ export const useEditDatasource = ({ incomingDatasourceId }: { incomingDatasource
125125
await Promise.all(promises)
126126
await Promise.all([refetchDatasources(), refetchConfigs()])
127127

128-
if (!incomingDatasourceId) navigate('/datasources')
129-
130128
setToast({
131129
message: 'Datasource was updated!',
132130
type: 'positive',

apps/ui/src/pages/TeamOfAgents/TeamOfAgentsForm/TeamOfAgentsForm.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ const TeamOfAgentsForm = ({ formik, isLoading }: TeamOfAgentsFormProps) => {
126126

127127
{config_value && (
128128
<UploadedFile
129-
onClick={() => setFieldValue('config_value', null)}
129+
onDeleteClick={() => setFieldValue('config_value', null)}
130130
name={'file'}
131131
/>
132132
)}

apps/ui/src/share-ui/components/IconButton/IconButton.tsx

+4
Original file line numberDiff line numberDiff line change
@@ -217,4 +217,8 @@ export default IconButton
217217

218218
const StyledIconButtonWrapper = styled.div`
219219
max-height: 36px;
220+
221+
display: flex;
222+
justify-content: center;
223+
align-items: center;
220224
`

0 commit comments

Comments
 (0)