File size: 1,478 Bytes
b0d689c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6baca14
b0d689c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import google.generativeai as genai
import time
from Contents import Topics
from Chunks import Questions
from Knowledge import Ask
from AnkiExport import Convert

contents = []
topics = []
count = 0

# gemini出題
def geminiQA(pdf_path: str, model: None) :
    global contents, topics
    if not contents:
        contents, topics = Topics(pdf_path, model)
    csv_name = Questions(pdf_path, contents, topics, model)
    return csv_name

# 使用者出題
def userQA(pdf_path: str, question:str, model: None, api: str):
    global contents, topics
    if not contents:
        contents, topics = Topics(pdf_path, model)
    csv_name = Ask(pdf_path, question, contents, api)
    return csv_name

# 整合題目
def pdf2anki(question: None, api: str, pdf: None, apkg_name: str) -> str:
    global count
    pdf_path = pdf.name
    model = input_API(api)
    if count == 0:
        csv_name = geminiQA(pdf_path, model)
        count += 1
    if question != "":
        csv_name = userQA(pdf_path, question, model, api)
    apkg_path = Convert(csv_name, apkg_name)
    return apkg_path

def input_API(api):
    genai.configure(api_key=api)
    model = genai.GenerativeModel('gemini-pro')
    while(True):
        try:
            model.generate_content(
            "test",
            )
            print("Set Gemini API sucessfully!!")
            return model
        except:
            print("There seems to be something wrong with your Gemini API.")
            time.sleep(5)