File size: 2,508 Bytes
4aab576
8ef46cb
4aab576
 
 
 
 
8ef46cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4aab576
8ef46cb
 
4aab576
 
8ef46cb
 
 
 
4aab576
 
 
 
 
8ef46cb
4aab576
 
8ef46cb
4aab576
 
8ef46cb
4aab576
 
8ef46cb
 
4aab576
 
8ef46cb
4aab576
 
 
 
 
 
 
8ef46cb
4aab576
8ef46cb
 
 
 
 
4aab576
 
 
8ef46cb
4aab576
 
8ef46cb
 
4aab576
bbb3ad7
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
from openai import OpenAI

base_url = "http://localhost:8000/v1/"
client = OpenAI(api_key="EMPTY", base_url=base_url)
import time
import pandas as pd

P2 = """你是一个情景猜谜游戏的主持人。游戏规则如下:

1. 参与者会得到一个谜面,谜面会描述一个简单又难以理解的事件。
2. 主持人知道谜底,谜底是谜面的答案。
3. 参与者可以询问任何封闭式问题来找寻事件的真相。
4. 对于每个问题,主持人将根据实际情况回答以下五个选项之一:是、不是、不重要、回答正确、问法错误。各回答的判断标准如下:
   - 若谜面和谜底能找到问题的答案,回答:是或者不是
   - 若谜面和谜底不能直接或者间接推断出问题的答案,回答:不重要
   - 若参与者提问不是一个封闭式问题或者问题难以理解,回答:问法错误
   - 若参与者提问基本还原了谜底真相,回答:回答正确
5. 回答中不能添加任何其它信息,也不能省略选项中的任何一个字。例如,不可以把“不是”省略成“不”。

请严格按照这些规则回答参与者提出的问题。

**谜面:** {}

**谜底:** {}

**参与者提出的问题:** {}
"""


test_a = pd.read_csv("test_a.csv")


def simple_chat(sys_content, usr_content, use_stream=False):
    messages = [
        {
            "role": "system",
            "content": sys_content,
        },
        {"role": "user", "content": usr_content},
    ]
    response = client.chat.completions.create(
        model="internlm-2_5",
        messages=messages,
        stream=use_stream,
        max_tokens=4096,
        temperature=0.1,
        presence_penalty=1.1,
        top_p=0.8,
    )
    if response:
        if use_stream:
            stream_list = []
            for chunk in response:
                stream_list.append(chunk.choices[0].delta.content)
            return stream_list
        else:
            content = response.choices[0].message.content
            return content
    else:
        return f"Error:, {response.status_code}"


def prompt1(x, y, z):
    sys_prom = ""
    usr_prom = P2.format(x, y, z)
    res = simple_chat(sys_content=sys_prom, usr_content=usr_prom)

    return res


t1 = time.time()
print(f"now: {t1}")
test_a["answer"] = test_a.apply(lambda x: prompt1(x.puzzle, x.truth, x.text), axis=1)
print(f"cost: {time.time() - t1}")
test_a_baseline_pre = test_a
test_a_baseline_pre.to_csv("predict_result.csv", index=False)