tregu0458 commited on
Commit
6ef3c36
·
verified ·
1 Parent(s): 8087eb1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -8
app.py CHANGED
@@ -1,12 +1,21 @@
1
  import os
2
  import requests
3
- from fastapi import FastAPI, HTTPException
 
4
  from langchain_community.document_loaders import YoutubeLoader, UnstructuredPDFLoader, WebBaseLoader
5
  from langchain_community.document_loaders import OnlinePDFLoader
6
 
7
  app = FastAPI()
8
 
9
- @app.post("/extract_text", tags=["Text Extraction"])
 
 
 
 
 
 
 
 
10
  def extract_text(url: str, language: str = "ja", length: int = 150000):
11
  try:
12
  if "youtube.com" in url or "youtu.be" in url:
@@ -20,15 +29,9 @@ def extract_text(url: str, language: str = "ja", length: int = 150000):
20
  text_content = str(docs)
21
  elif url.endswith(".pdf"):
22
  # PDFの場合
23
- # response = requests.get(url)
24
- # pdf_file_path = os.path.join("/app/downloads", os.path.basename(url))
25
- # with open(pdf_file_path, "wb") as pdf_file:
26
- # pdf_file.write(response.content)
27
- # loader = UnstructuredPDFLoader(pdf_file_path)
28
  loader = OnlinePDFLoader(url)
29
  docs = loader.load()
30
  text_content = docs[0].page_content
31
- # text_content = pdf_file_path
32
  else:
33
  # それ以外の場合
34
  loader = WebBaseLoader(url)
 
1
  import os
2
  import requests
3
+ from fastapi import FastAPI, HTTPException, Depends
4
+ from fastapi.security import OAuth2PasswordBearer
5
  from langchain_community.document_loaders import YoutubeLoader, UnstructuredPDFLoader, WebBaseLoader
6
  from langchain_community.document_loaders import OnlinePDFLoader
7
 
8
  app = FastAPI()
9
 
10
+ API_KEY = "your-secret-api-key"
11
+
12
+ oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")
13
+
14
+ async def validate_token(token: str = Depends(oauth2_scheme)):
15
+ if token != API_KEY:
16
+ raise HTTPException(status_code=401, detail="Invalid API Key")
17
+
18
+ @app.post("/extract_text", tags=["Text Extraction"], dependencies=[Depends(validate_token)])
19
  def extract_text(url: str, language: str = "ja", length: int = 150000):
20
  try:
21
  if "youtube.com" in url or "youtu.be" in url:
 
29
  text_content = str(docs)
30
  elif url.endswith(".pdf"):
31
  # PDFの場合
 
 
 
 
 
32
  loader = OnlinePDFLoader(url)
33
  docs = loader.load()
34
  text_content = docs[0].page_content
 
35
  else:
36
  # それ以外の場合
37
  loader = WebBaseLoader(url)