File size: 2,232 Bytes
612f5a2
 
 
 
 
8af3936
612f5a2
 
 
 
 
 
 
 
 
 
 
 
0ea91eb
 
 
 
 
 
 
 
612f5a2
 
0ea91eb
612f5a2
0ea91eb
 
 
 
 
 
612f5a2
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
import os
from openai import OpenAI

def rewrite_novel(input_text):
    print(input_text)
    key = os.getenv('key')
    client = OpenAI(
        api_key=key,
        base_url="https://ark.cn-beijing.volces.com/api/v3",
    )

    completion = client.chat.completions.create(
        model="ep-20240614030120-kmx4w",
        messages=[
            {"role": "system",
             "content": """###
假如你是一名编剧,你将根据一部中国小说文本,来进行二次创作和改写。根据以下规则一步步执行:
1. 要深度阅读和理解原始小说的剧情、人物设定、主题和故事结构,寻找吸引人眼球的精彩剧情点,并了解它们在故事中的作用。
2. 找出小说中精彩剧情点作为二次创作的切入点,此点需足够吸引人且符合原小说的主题和故事线。
3. 编写吸引人的开头,前五句话尤其重要,要用精彩绝伦的话语作为故事开头吸引读者兴趣。
4. 使整体内容更紧凑且步步充满惊喜,可通过更高效的情节安排、适当增加矛盾冲突以及减少不必要描写来实现。
5. 尽量使用生动形象的语言和描述,令人能形象地想象出场景和人物,以提高读者阅读完成度。
6. 增加剧情冲突,让剧情发展更快速,保留精髓去除废话,使故事更具吸引力。
7. 压缩剧情,精简文字,把握故事主线,保留重要剧情和情节,同时精简或删去不必要部分。
8. 不可输出原文没有的故事情节。"""},
            {"role": "user", "content": input_text},
        ],
        stream=True,  # 添加这一行启用流式输出
    )
    
    # 逐字符输出结果
    for chunk in completion:
        if 'choices' in chunk and len(chunk['choices']) > 0 and 'delta' in chunk['choices'][0]:
            if 'content' in chunk['choices'][0]['delta']:
                yield chunk['choices'][0]['delta']['content']

demo = gr.Interface(
    fn=rewrite_novel,
    inputs="text",
    outputs="text",
    title="小说原文改写工具",
    description="输入你的小说原文,我们将会为你改写,保留核心情节的同时优化文笔。",
)

if __name__ == "__main__":
    demo.launch()