| import numpy as np | |
| import openai | |
| import os | |
| import random | |
| import string | |
| def is_climate_change_related(sentence: str, classifier) -> bool: | |
| """_summary_ | |
| Args: | |
| sentence (str): your sentence to classify | |
| classifier (_type_): zero shot hugging face pipeline classifier | |
| Returns: | |
| bool: is_climate_change_related or not | |
| """ | |
| results = classifier( | |
| sequences=sentence, | |
| candidate_labels=["climate change related", "non climate change related"], | |
| ) | |
| print(f" ## Result from is climate change related {results}") | |
| return results["labels"][np.argmax(results["scores"])] == "climate change related" | |
| def make_pairs(lst): | |
| """From a list of even lenght, make tupple pairs | |
| Args: | |
| lst (list): a list of even lenght | |
| Returns: | |
| list: the list as tupple pairs | |
| """ | |
| assert not (l := len(lst) % 2), f"your list is of lenght {l} which is not even" | |
| return [(lst[i], lst[i + 1]) for i in range(0, len(lst), 2)] | |
| def set_openai_api_key(text): | |
| """Set the api key and return chain.If no api_key, then None is returned. | |
| To do : add raise error & Warning message | |
| Args: | |
| text (str): openai api key | |
| Returns: | |
| str: Result of connection | |
| """ | |
| openai.api_key = os.environ["api_key"] | |
| if text.startswith("sk-") and len(text) > 10: | |
| openai.api_key = text | |
| return f"You're all set: this is your api key: {openai.api_key}" | |
| def create_user_id(length): | |
| """Create user_id | |
| Args: | |
| length (int): length of user id | |
| Returns: | |
| str: String to id user | |
| """ | |
| letters = string.ascii_lowercase | |
| user_id = "".join(random.choice(letters) for i in range(length)) | |
| return user_id | |
| def to_completion(messages): | |
| s = [] | |
| for message in messages: | |
| s.append(f"<|im_start|>{message['role']}\n{message['content']}<|im_end|>") | |
| s.append("<|im_start|>assistant\n") | |
| return "\n".join(s) | |