aliceblue11 commited on
Commit
028a953
·
verified ·
1 Parent(s): 7c0c866

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -58
app.py CHANGED
@@ -1,69 +1,35 @@
1
- import gradio as gr
2
- import random
3
- import os
4
  import pandas as pd
5
- from huggingface_hub import InferenceClient
6
 
7
- # 하드코딩된 언어 모델 설정
8
- MODEL_NAME = "Cohere Command R+"
9
- MODEL_PATH = "CohereForAI/c4ai-command-r-plus"
10
 
11
- def create_client(model_name):
12
- return InferenceClient(model_name, token=os.getenv("HF_TOKEN"))
13
 
14
- def call_api(content, system_message, max_tokens, temperature, top_p):
15
- client = create_client(MODEL_PATH) # 모델을 하드코딩된 값으로 설정
16
- messages = [{"role": "system", "content": system_message}, {"role": "user", "content": content}]
17
- random_seed = random.randint(0, 1000000)
18
- response = client.chat_completion(messages=messages, max_tokens=max_tokens, temperature=temperature, top_p=top_p, seed=random_seed)
19
- return response.choices[0].message.content
20
 
21
- def generate_text(user_message, system_message, max_tokens, temperature, top_p):
22
- return call_api(user_message, system_message, max_tokens, temperature, top_p)
23
 
24
- def upload_excel(file):
25
- df = pd.read_excel(file.name)
26
- return df.head().to_string()
27
 
28
- title = "AI 텍스트 생성기"
 
29
 
30
- with gr.Blocks() as demo:
31
- gr.Markdown(f"# {title}")
32
-
33
- # 엑셀 업로드 기능을 가장 위로 위치
34
- excel_input = gr.File(label="엑셀 파일 업로드", file_types=[".xls", ".xlsx"])
35
- excel_output = gr.Textbox(label="엑셀 내용 미리보기", lines=10)
36
-
37
- # 사용자 메시지의 명칭을 '긍정리뷰 10개'로 설정
38
- user_message = gr.Textbox(label="긍정리뷰 10개", lines=5)
39
-
40
- # 입력창 1의 명칭을 '부정리뷰 10개'로 설정
41
- input1 = gr.Textbox(label="부정리뷰 10개", lines=5)
42
-
43
- # 시스템 메시지(프롬프트)의 명칭을 '긍정 프롬프트'로 설정
44
- system_message = gr.Textbox(label="긍정 프롬프트", lines=10)
45
 
46
- # 입력창 2의 명칭을 '부정 프롬프트'로 설정
47
- input2 = gr.Textbox(label="부정 프롬프트")
48
-
49
- # 출력창 1의 명칭을 '긍정리뷰분석'으로 설정
50
- output1 = gr.Textbox(label="긍정리뷰분석", lines=10)
51
-
52
- # 출력창 2의 명칭을 '부정리뷰분석'으로 설정
53
- output2 = gr.Textbox(label="부정리뷰분석", lines=10)
54
 
55
- with gr.Accordion("고급 설정", open=False):
56
- max_tokens = gr.Slider(label="Max Tokens", minimum=0, maximum=4000, value=500, step=100)
57
- temperature = gr.Slider(label="Temperature", minimum=0.1, maximum=1.0, value=0.75, step=0.05)
58
- top_p = gr.Slider(label="Top P", minimum=0.1, maximum=1.0, value=0.95, step=0.05)
59
-
60
- # 실행 버튼 추가
61
- generate_btn = gr.Button("텍스트 생성하기")
62
-
63
- generate_btn.click(fn=generate_text,
64
- inputs=[user_message, system_message, max_tokens, temperature, top_p],
65
- outputs=[output1, output2])
66
-
67
- excel_input.upload(upload_excel, inputs=[excel_input], outputs=[excel_output])
68
 
69
- demo.launch()
 
 
 
 
 
 
1
  import pandas as pd
 
2
 
3
+ # 엑셀 파일을 읽어옴
4
+ df = pd.read_excel('파일경로.xlsx')
 
5
 
6
+ # 1. g1셀에 "글자수"를 입력
7
+ df.loc[0, 'G'] = "글자수"
8
 
9
+ # 2. G2셀부터 G열에 D열의 글자수를 입력
10
+ df['G'] = df['D'].apply(lambda x: len(str(x)) if pd.notnull(x) else 0)
 
 
 
 
11
 
12
+ # 3. G열 기준으로 내림차순 정렬
13
+ df = df.sort_values(by='G', ascending=False)
14
 
15
+ # 4. E열의 데이터가 5, 4점인 항목에서 G열이 500자 이하인 항목 중 10개를 긍정리뷰 10개로 선택
16
+ positive_reviews = df[(df['E'].isin([5, 4])) & (df['G'] <= 500)].head(10)
 
17
 
18
+ # 5. E열의 데이터가 1, 2점인 항목에서 G열이 500자 이하인 항목 중 10개를 부정리뷰 10개로 선택
19
+ negative_reviews = df[(df['E'].isin([1, 2])) & (df['G'] <= 500)].head(10)
20
 
21
+ # 6. 긍정리뷰, 부정리뷰의 리뷰날짜, 옵션, 리뷰내용을 모두 가져옴
22
+ positive_reviews_data = positive_reviews[['리뷰날짜', '옵션', 'D']] # D열이 리뷰내용
23
+ negative_reviews_data = negative_reviews[['리뷰날짜', '옵션', 'D']]
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
+ # 긍정리뷰 10개 출력
26
+ print("긍정리뷰 10개:")
27
+ print(positive_reviews_data)
 
 
 
 
 
28
 
29
+ # 부정리뷰 10개 출력
30
+ print("부정리뷰 10개:")
31
+ print(negative_reviews_data)
 
 
 
 
 
 
 
 
 
 
32
 
33
+ # 필요시 결과를 새로운 엑셀 파일로 저장
34
+ positive_reviews_data.to_excel('긍정리뷰_10개.xlsx', index=False)
35
+ negative_reviews_data.to_excel('부정리뷰_10개.xlsx', index=False)