CoolFace
Apppublic

ssboost/4g3gf

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py161 linesDownload Raw Back to root
1import gradio as gr2from gradio_client import Client3import os4 5# 각 모듈에서 함수 import (PDF 함수 제거)6from info_blog import generate_outline_1, generate_blog_post_17from travel_blog import generate_outline_2, generate_blog_post_28from product_review_blog import generate_outline_3, generate_blog_post_39from feature_focus_blog import generate_outline_4, generate_blog_post_410from visit_review_blog import generate_outline_5, generate_blog_post_511 12# 기존 API 함수 정의 (정보성)13def generate_outline_1_api(category, style, ref1, ref2, ref3):14    result = generate_outline_1(category, style, ref1, ref2, ref3)15    return result16 17def generate_blog_post_1_api(category, style, ref1, ref2, ref3, outline_input):18    result = generate_blog_post_1(category, style, ref1, ref2, ref3, outline_input)19    return result20 21# 기존 API 함수 정의 (여행)22def generate_outline_2_api(category, style, ref1, ref2, ref3):23    result = generate_outline_2(category, style, ref1, ref2, ref3)24    return result25 26def generate_blog_post_2_api(category, style, ref1, ref2, ref3, outline_input):27    result = generate_blog_post_2(category, style, ref1, ref2, ref3, outline_input)28    return result29 30# 기존 API 함수 정의 (상품후기)31def generate_outline_3_api(category, style, ref1, ref2, ref3):32    result = generate_outline_3(category, style, ref1, ref2, ref3)33    return result34 35def generate_blog_post_3_api(category, style, ref1, ref2, ref3, outline_input):36    result = generate_blog_post_3(category, style, ref1, ref2, ref3, outline_input)37    return result38 39# 새로운 API 함수 정의 (핵심기능집중형)40def generate_outline_4_api(category, style, ref1, ref2, ref3):41    result = generate_outline_4(category, style, ref1, ref2, ref3)42    return result43 44def generate_blog_post_4_api(category, style, ref1, ref2, ref3, selected_feature):45    result = generate_blog_post_4(category, style, ref1, ref2, ref3, selected_feature)46    return result47 48# 새로운 API 함수 정의 (방문후기형)49def generate_outline_5_api(category, style, ref1, ref2, ref3, photo_recommendations):50    result = generate_outline_5(category, style, ref1, ref2, ref3, photo_recommendations)51    return result52 53def generate_blog_post_5_api(category, style, ref1, ref2, ref3, outline_input, photo_recommendations):54    result = generate_blog_post_5(category, style, ref1, ref2, ref3, outline_input, photo_recommendations)55    return result56 57# Gradio 인터페이스 설계 (Gradio 5.0 이상)58def interface():59    with gr.Blocks() as demo:60        gr.Markdown("# 블로그 포스팅")61 62        # 첫 번째 탭: 정보성63        with gr.Tab("정보성"):64            category_1 = gr.Radio(choices=['일반', '생활건강'], label="포스팅 카테고리", value="일반")65            style_1 = gr.Radio(choices=['친근한', '일반', '전문적인'], label="포스팅 스타일", value="친근한")66            ref1_1 = gr.Textbox(label="참고 글 1", placeholder="참고할 글을 입력하세요")67            ref2_1 = gr.Textbox(label="참고 글 2", placeholder="참고할 글을 입력하세요")68            ref3_1 = gr.Textbox(label="참고 글 3", placeholder="참고할 글을 입력하세요")69            outline_button_1 = gr.Button("아웃라인 생성")70            outline_output_1 = gr.Textbox(label="생성된 아웃라인")71 72            outline_1 = gr.Textbox(label="작성할 아웃라인", placeholder="생성된 아웃라인을 입력하세요")73            blog_button_1 = gr.Button("블로그 글 생성")74            blog_output_1 = gr.HTML(label="생성된 블로그 글 (HTML 형식)")75 76            outline_button_1.click(generate_outline_1_api, inputs=[category_1, style_1, ref1_1, ref2_1, ref3_1], outputs=outline_output_1)77            blog_button_1.click(generate_blog_post_1_api, inputs=[category_1, style_1, ref1_1, ref2_1, ref3_1, outline_1], outputs=blog_output_1)78 79        # 두 번째 탭: 여행80        with gr.Tab("여행"):81            category_2 = gr.Radio(choices=['여행 단일', '여행 코스'], label="포스팅 카테고리", value="여행 단일")82            style_2 = gr.Radio(choices=['친근한', '일반', '전문적인'], label="포스팅 스타일", value="친근한")83            ref1_2 = gr.Textbox(label="참고 글 1", placeholder="참고할 글을 입력하세요")84            ref2_2 = gr.Textbox(label="참고 글 2", placeholder="참고할 글을 입력하세요")85            ref3_2 = gr.Textbox(label="참고 글 3", placeholder="참고할 글을 입력하세요")86            outline_button_2 = gr.Button("아웃라인 생성")87            outline_output_2 = gr.Textbox(label="생성된 아웃라인")88 89            outline_2 = gr.Textbox(label="작성할 아웃라인", placeholder="생성된 아웃라인을 입력하세요")90            blog_button_2 = gr.Button("블로그 글 생성")91            blog_output_2 = gr.HTML(label="생성된 블로그 글 (HTML 형식)")92 93            outline_button_2.click(generate_outline_2_api, inputs=[category_2, style_2, ref1_2, ref2_2, ref3_2], outputs=outline_output_2)94            blog_button_2.click(generate_blog_post_2_api, inputs=[category_2, style_2, ref1_2, ref2_2, ref3_2, outline_2], outputs=blog_output_2)95 96        # 세 번째 탭: 상품후기97        with gr.Tab("상품후기"):98            category_3 = gr.Radio(choices=['일반', '기능집중형', '고객반응형'], label="포스팅 카테고리", value="일반")99            style_3 = gr.Radio(choices=['친근한', '일반', '전문적인'], label="포스팅 스타일", value="친근한")100            ref1_3 = gr.Textbox(label="참고 글 1", placeholder="참고할 글을 입력하세요")101            ref2_3 = gr.Textbox(label="참고 글 2", placeholder="참고할 글을 입력하세요")102            ref3_3 = gr.Textbox(label="참고 글 3", placeholder="참고할 글을 입력하세요")103            outline_button_3 = gr.Button("아웃라인 생성")104            outline_output_3 = gr.Textbox(label="생성된 아웃라인")105 106            outline_3 = gr.Textbox(label="작성할 아웃라인", placeholder="생성된 아웃라인을 입력하세요")107            blog_button_3 = gr.Button("블로그 글 생성")108            blog_output_3 = gr.HTML(label="생성된 블로그 글 (HTML 형식)")109 110            outline_button_3.click(generate_outline_3_api, inputs=[category_3, style_3, ref1_3, ref2_3, ref3_3], outputs=outline_output_3)111            blog_button_3.click(generate_blog_post_3_api, inputs=[category_3, style_3, ref1_3, ref2_3, ref3_3, outline_3], outputs=blog_output_3)112 113        # 네 번째 탭: 핵심기능집중형114        with gr.Tab("핵심기능집중형"):115            category_4 = gr.Radio(choices=['핵심기능집중형'], label="포스팅 카테고리", value="핵심기능집중형")116            style_4 = gr.Radio(choices=['친근한', '일반', '전문적인'], label="포스팅 스타일", value="친근한")117            ref1_4 = gr.Textbox(label="참고 글 1", placeholder="참고할 글을 입력하세요")118            ref2_4 = gr.Textbox(label="참고 글 2", placeholder="참고할 글을 입력하세요")119            ref3_4 = gr.Textbox(label="참고 글 3", placeholder="참고할 글을 입력하세요")120            outline_button_4 = gr.Button("핵심기능 선정하기")121            outline_result1 = gr.Textbox(label="핵심기능 1")122            outline_result2 = gr.Textbox(label="핵심기능 2")123            outline_result3 = gr.Textbox(label="핵심기능 3")124            outline_4 = gr.Textbox(label="작성할 핵심기능 주제 중에 1개만 입력해주세요", placeholder="핵심기능 1개만 입력하세요")125            blog_button_4 = gr.Button("블로그 글 생성")126            blog_output_4 = gr.HTML(label="생성된 블로그 글 (HTML 형식)")127 128            outline_button_4.click(generate_outline_4_api, inputs=[category_4, style_4, ref1_4, ref2_4, ref3_4], outputs=[outline_result1, outline_result2, outline_result3])129            blog_button_4.click(generate_blog_post_4_api, inputs=[category_4, style_4, ref1_4, ref2_4, ref3_4, outline_4], outputs=blog_output_4)130 131        # 다섯 번째 탭: 방문후기형132        with gr.Tab("방문후기형"):133            category_5 = gr.Radio(choices=['방문후기형'], label="포스팅 카테고리", value="방문후기형")134            style_5 = gr.Radio(choices=['친근한', '일반', '전문적인'], label="포스팅 스타일", value="친근한")135            ref1_5 = gr.Textbox(label="참고 글 1", placeholder="참고할 글을 입력하세요")136            ref2_5 = gr.Textbox(label="참고 글 2", placeholder="참고할 글을 입력하세요")137            ref3_5 = gr.Textbox(label="참고 글 3", placeholder="참고할 글을 입력하세요")138            photo_recommendations_5 = gr.Textbox(label="사진 형태 키워드", placeholder="사진 추천 키워드를 입력하세요")139            outline_button_5 = gr.Button("아웃라인 생성")140            outline_output_5 = gr.Textbox(label="생성된 아웃라인")141 142            outline_5 = gr.Textbox(label="작성할 아웃라인", placeholder="생성된 아웃라인을 입력하세요")143            blog_button_5 = gr.Button("블로그 글 생성")144            blog_output_5 = gr.HTML(label="생성된 블로그 글 (HTML 형식)")145 146            outline_button_5.click(147                generate_outline_5_api,148                inputs=[category_5, style_5, ref1_5, ref2_5, ref3_5, photo_recommendations_5],149                outputs=outline_output_5150            )151            blog_button_5.click(152                generate_blog_post_5_api,153                inputs=[category_5, style_5, ref1_5, ref2_5, ref3_5, outline_5, photo_recommendations_5],154                outputs=blog_output_5155            )156 157    return demo158 159# 인터페이스 실행160if __name__ == "__main__":161    interface().launch(share=True)