Spaces:
Build error
Build error
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,12 +1,13 @@
|
|
| 1 |
-
#
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
# 导入库
|
| 5 |
from datasets import load_dataset
|
| 6 |
import numpy as np
|
| 7 |
from sentence_transformers import SentenceTransformer, util
|
| 8 |
from transformers import pipeline
|
| 9 |
|
|
|
|
|
|
|
|
|
|
| 10 |
# 加载数据集
|
| 11 |
dataset = load_dataset("Pradeep016/career-guidance-qa-dataset", split="train")
|
| 12 |
# 过滤无效数据(确保question和answer非空)
|
|
@@ -31,6 +32,7 @@ embedder = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
|
|
| 31 |
# 预计算知识库嵌入向量
|
| 32 |
knowledge_embeddings = embedder.encode(knowledge_base, convert_to_tensor=True)
|
| 33 |
|
|
|
|
| 34 |
def career_qa(user_input):
|
| 35 |
# 1. 语义搜索匹配相关职位
|
| 36 |
input_embedding = embedder.encode(user_input, convert_to_tensor=True)
|
|
@@ -55,13 +57,18 @@ def career_qa(user_input):
|
|
| 55 |
})
|
| 56 |
return results
|
| 57 |
|
| 58 |
-
#
|
| 59 |
-
|
| 60 |
-
results = career_qa(
|
|
|
|
|
|
|
| 61 |
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
|
|
|
| 67 |
|
|
|
|
|
|
|
|
|
| 1 |
+
# 导入必要的库
|
| 2 |
+
import gradio as gr
|
|
|
|
|
|
|
| 3 |
from datasets import load_dataset
|
| 4 |
import numpy as np
|
| 5 |
from sentence_transformers import SentenceTransformer, util
|
| 6 |
from transformers import pipeline
|
| 7 |
|
| 8 |
+
# 安装依赖(在Hugging Face Spaces中可省略,若空间环境未预装相关库可保留)
|
| 9 |
+
#!pip install datasets sentence-transformers transformers torch
|
| 10 |
+
|
| 11 |
# 加载数据集
|
| 12 |
dataset = load_dataset("Pradeep016/career-guidance-qa-dataset", split="train")
|
| 13 |
# 过滤无效数据(确保question和answer非空)
|
|
|
|
| 32 |
# 预计算知识库嵌入向量
|
| 33 |
knowledge_embeddings = embedder.encode(knowledge_base, convert_to_tensor=True)
|
| 34 |
|
| 35 |
+
# 智能问答函数
|
| 36 |
def career_qa(user_input):
|
| 37 |
# 1. 语义搜索匹配相关职位
|
| 38 |
input_embedding = embedder.encode(user_input, convert_to_tensor=True)
|
|
|
|
| 57 |
})
|
| 58 |
return results
|
| 59 |
|
| 60 |
+
# Gradio界面定义
|
| 61 |
+
def demo(user_input):
|
| 62 |
+
results = career_qa(user_input)
|
| 63 |
+
output = "\n".join([f"📌 {res['职位名称']}\n{res['简介']}\n" for res in results])
|
| 64 |
+
return output
|
| 65 |
|
| 66 |
+
iface = gr.Interface(
|
| 67 |
+
fn=demo,
|
| 68 |
+
inputs=gr.Textbox(label="输入职业关键词(如:零售经理)"),
|
| 69 |
+
outputs=gr.Textbox(label="职位介绍"),
|
| 70 |
+
title="职业咨询智能问答",
|
| 71 |
+
)
|
| 72 |
|
| 73 |
+
if __name__ == "__main__":
|
| 74 |
+
iface.launch()
|