File size: 1,318 Bytes
fe124ca
 
 
 
 
 
 
 
b4cd98c
fe124ca
b5fbd5a
fe124ca
 
 
b4cd98c
0e6afde
fe124ca
 
 
 
 
 
 
 
 
 
 
 
 
b4cd98c
fe124ca
4f6cc6b
b4cd98c
 
3ea73d7
b4cd98c
fe124ca
b4cd98c
fe124ca
b4cd98c
fe124ca
b4cd98c
 
fe124ca
 
b4cd98c
fe124ca
 
b4cd98c
 
 
 
 
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
from functools import cache
import requests
import os
from typing import Any
from pgsoft.pgdate.date_utils import beijing
import json


def post_to_pgai_helper(command: str, game: str) -> Any:
    myobj = {
        "token": os.getenv("pgai_code"),
        "command": command,
    }

    header = {"accept": "application/json", "Content-Type": "application/json"}
    url_base = f"https://pgtrain.playgo.ai/games/{game}/nlp"
    url_read = f"{url_base}/r"

    try:
        res = requests.post(url_read, headers=header, json=myobj)
        if res.status_code == 200:
            print(res.text)
            return res.text
        else:
            print(res.text)
            return None
    except Exception as e:
        print(e)
        return None


from_cache = True


# @cache
def call_pgai(nlp_command, game):
    calling_start = beijing()
    print(f"[{calling_start}] calling ai starts")
    try:
        res = post_to_pgai_helper(nlp_command, game)
    except Exception as e:
        return f"{type(e)}: {str(e)}."

    calling_end = beijing()
    timecost = calling_end.timestamp() - calling_start.timestamp()
    print(f"[{calling_end}] calling ai ends, costs {timecost:.2f}s")
    global from_cache
    from_cache = False
    if res is None:
        return res
    outp = json.loads(res)
    return outp