File size: 1,577 Bytes
dd486e6
6aaddfa
92cf0ad
 
602e36b
dd486e6
 
 
 
 
 
 
 
602e36b
 
 
 
 
dd486e6
602e36b
dd486e6
 
 
 
 
 
 
 
 
602e36b
dd486e6
602e36b
 
 
dd486e6
 
602e36b
 
 
 
 
 
7851c38
 
602e36b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import os
import json
import requests
import sseclient
import google.generativeai as palm_api

from pingpong import PingPong
from pingpong.pingpong import PPManager
from pingpong.pingpong import PromptFmt
from pingpong.pingpong import UIFmt
from pingpong.gradio import GradioChatUIFmt


palm_api_token = os.getenv("PALM_API_TOKEN")
if palm_api_token is None:
    raise ValueError("PaLM API Token is not set")
else:
    palm_api.configure(api_key=palm_api_token)

class GradioPaLMChatPPManager(PPManager):
    def build_uis(self, from_idx: int=0, to_idx: int=-1, fmt: UIFmt=GradioChatUIFmt):
        if to_idx == -1 or to_idx >= len(self.pingpongs):
            to_idx = len(self.pingpongs)

        results = []

        for pingpong in self.pingpongs[from_idx:to_idx]:
            results.append(fmt.ui(pingpong))

        return results    

def gen_text(
    prompt,
    palm,
    parameters=None
):
    if parameters is None:
        temperature = 0.7
        top_k = 40
        top_p = 0.95
    
        parameters = {
            'model': 'models/text-bison-001',
            'candidate_count': 1,
            'temperature': temperature,
            'top_k': top_k,
            'top_p': top_p,
        }

    if palm is None:
        response = palm_api.chat(messages=[prompt])
    else:
        response = palm.reply(prompt)

    if len(response.filters) > 0 and \
        response.filters[0]['reason'] == 2:
        response_txt = "your request is blocked for some reasons"
    
    else:
        response_txt = response.last
    
    return response, response_txt