File size: 1,208 Bytes
79eae90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from .base_model import BaseLLMModel
import google.generativeai as palm


class Google_PaLM_Client(BaseLLMModel):
    def __init__(self, model_name, api_key, user_name="") -> None:
        super().__init__(model_name=model_name, user=user_name)
        self.api_key = api_key

    def _get_palm_style_input(self):
        new_history = []
        for item in self.history:
            if item["role"] == "user":
                new_history.append({'author': '1', 'content': item["content"]})
            else:
                new_history.append({'author': '0', 'content': item["content"]})
        return new_history

    def get_answer_at_once(self):
        palm.configure(api_key=self.api_key)
        messages = self._get_palm_style_input()
        response = palm.chat(context=self.system_prompt, messages=messages,
                             temperature=self.temperature, top_p=self.top_p)
        if response.last is not None:
            return response.last, len(response.last)
        else:
            reasons = '\n\n'.join(
                reason['reason'].name for reason in response.filters)
            return "由于下面的原因,Google 拒绝返回 PaLM 的回答:\n\n" + reasons, 0