Spaces:
Running
Running
error control
Browse files
app.py
CHANGED
@@ -20,43 +20,47 @@ vectorstore = FAISS.load_local(save_path, embedding_model, allow_dangerous_deser
|
|
20 |
|
21 |
def chatbot(input_question, eng_trans=True, num_ref=3):
|
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 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
|
|
|
|
|
|
|
|
60 |
# Gradio Blocks λ μ΄μμμΌλ‘ κΎΈλ―Ό λ²μ
|
61 |
with gr.Blocks() as demo:
|
62 |
# μλ¨ μ΄λ―Έμ§
|
|
|
20 |
|
21 |
def chatbot(input_question, eng_trans=True, num_ref=3):
|
22 |
"""μ±λ΄ ν¨μ"""
|
23 |
+
try:
|
24 |
+
retriever = vectorstore.as_retriever(search_kwargs={"k": num_ref})
|
25 |
+
|
26 |
+
# νκ΅μ΄λ‘ μ§μ
|
27 |
+
if not eng_trans:
|
28 |
+
basic_docs = retriever.invoke(input_question)
|
29 |
+
# μμ΄λ‘ λ²μ ν μ§μ(μμ΄, νκΈ λ λ€ κ²μ)
|
30 |
+
else:
|
31 |
+
eng = translate_ko_to_en(input_question)
|
32 |
+
basic_docs = retriever.invoke(input_question)
|
33 |
+
eng_docs = retriever.invoke(eng)
|
34 |
+
basic_docs = basic_docs + eng_docs
|
35 |
+
|
36 |
+
context = "\n".join([doc.page_content for doc in basic_docs])
|
37 |
+
|
38 |
+
client = OpenAI(api_key=YOUR_OPENAI_API_KEY)
|
39 |
+
|
40 |
+
# GPT-4 or GPT-4o-mini λ± λͺ¨λΈ μ§μ
|
41 |
+
completion = client.chat.completions.create(
|
42 |
+
model="gpt-4o-mini",
|
43 |
+
messages=[
|
44 |
+
{
|
45 |
+
"role": "user",
|
46 |
+
"content": f"""λΉμ μ λ°λ체μ μ°¨μΈλλ°λ체νκ³Όμ λν΄μ μ€λͺ
νλ Assistantμ
λλ€.
|
47 |
+
μ°¨μΈλλ°λ체νκ³Όλ μμΈμ μ€μλνκ΅ μ°½μICT곡과λνμ μ€λ¦½λ νκ³Όμ
λλ€. νκ³Όμ₯ λ° λ¨μ₯μ μ‘μν κ΅μμ΄λ©° νμ¬ μν¬ν°μ¦ 3κΈ° νμ₯μ μ κ·λ¨ νμμ
λλ€.
|
48 |
+
μ΄ νκ³Όλ μμΈλνκ΅, μ€μλνκ΅, ν¬ν곡과λνκ΅, μμ€λνκ΅, κ°μλνκ΅, λꡬλνκ΅, μ‘°μ μ΄κ³΅λνκ΅κ° νμ κ΅λ₯λ₯Ό ν΅ν΄ μκ°ν μ μλ νκ³Όμ
λλ€.
|
49 |
+
λ€μ λ§₯λ½μ λ§κ² μ§λ¬Έμ νκΈλ‘ λ΅νμΈμ. λ΅μ λͺ¨λ₯΄κ² λ€λ©΄ semicon@cau.ac.kr λλ 02-881-7301 λ‘ λ¬ΈμνλΌκ³ νμΈμ.
|
50 |
+
|
51 |
+
λ§₯λ½: {context}
|
52 |
+
|
53 |
+
μ§λ¬Έ: {input_question}
|
54 |
+
"""
|
55 |
+
}
|
56 |
+
]
|
57 |
+
)
|
58 |
+
|
59 |
+
return completion.choices[0].message.content
|
60 |
+
except openai.error.RateLimitError:
|
61 |
+
return 'API μ¬μ© λΉμ©μ μ΄κ³Όνμ¬ μλ¬κ° λ¬μ΅λλ€. κ΄λ¦¬μμκ² λ¬Έμνμμμ€.'
|
62 |
+
except Exception as e:
|
63 |
+
return f'μ€λ₯ λ°μ: {str(e)}'
|
64 |
# Gradio Blocks λ μ΄μμμΌλ‘ κΎΈλ―Ό λ²μ
|
65 |
with gr.Blocks() as demo:
|
66 |
# μλ¨ μ΄λ―Έμ§
|