示例#1
0
 async def mi(self, ctx, *, args):
     '''No point in doing this, can be made better, but will be like this for the moment'''
     cl_key = self.cleverbot_Key
     cl_load = CleverWrap("{}".format(cl_key))
     cl_resp = cl_load.say("{}".format(args))
     await ctx.send(content=cl_resp)
     cl_load.reset()
示例#2
0
async def on_message(client, message):
    print('[DEBUG: Cleverbot] in on_message')
    if (message.content.startswith(CLEVERBOT_COMMAND)):
        cw = CleverWrap("CC1cx7eaidCi0tvh7RfyC7eoYkA")
        clvrbot_msg_cnt = message.content.split(CLEVERBOT_COMMAND)[1]
        print("[DEBUG: Cleverbot] Calling Cleverbot with " + clvrbot_msg_cnt +
              "...")
        answer = cw.say(clvrbot_msg_cnt)
        print("[DEBUG: Cleverbot] " + answer)
        await client.send_message(destination=message.channel, content=answer)
        #"Hello Human."
        cw.reset()  # resets the conversation ID and conversation state.
示例#3
0
def test_say(mock_requests):
    mock_requests.add(
        mock_requests.GET,
        'https://www.cleverbot.com/getreply?input=Hello&key=API_KEY&cs=&conversation_id=&wrapper=CleverWrap.py',
        match_querystring=True,
        json={
            'cs': 'AAAABBCCDD',
            'output': 'Hello.',
            'interaction_count': "2",
            'conversation_id': "foobar",
            'time_taken': "15",
            'time_elapsed': "13",
        },
    )
    cw = CleverWrap("API_KEY")

    assert cw.say("Hello") == "Hello."

    assert cw.default_conversation.convo_id

    cw.reset()

    assert not cw.default_conversation.convo_id
示例#4
0
class Clever(object):
    def __init__(self, client: commands.Bot):
        self.clever = CleverWrap(basewrapper.Base().get_config_vars("CLEVER"))
        self.client = client
        client.clever_response = self.clever_response

    async def clever_response(self, message):
        response = self.clever.say(message)
        msg = response
        self.clever.reset()
        return msg

    @commands.command(pass_context=True)
    async def clever(self, ctx: commands.Context, *, message: str):
        await self.client.send_typing(ctx.message.channel)
        response = await self.clever_response(message)
        await self.client.say(f"{ctx.message.author.mention} {response}")

    @commands.command(pass_context=True)
    async def convo(self, ctx: commands.Context, *, msg: str):
        await self.client.send_typing(ctx.message.channel)
        response = await self.clever_response(message)
        await self.client.say(f"{ctx.message.author.mention} {response}")
import random
import time
from cleverwrap import CleverWrap

API_KEY_1 = "CC22xhxFPYAVVMo9i7hPn8bZxpw"
API_KEY_2 = "CC232J2D3dL0YQjF2i8HkPRj92w"

jas = CleverWrap(API_KEY_1)
malgosia = CleverWrap(API_KEY_2)

ans = input("Reset speach ID? [Y/N]: ")
if ans.lower() == 'y':
    jas.reset()
    malgosia.reset()
    print("Done...")
malgosia_talk = "Hi"
for i in range(500):
    jas_talk = jas.say(malgosia_talk)
    print("[jas] >> ", jas_talk)
    malgosia_talk = malgosia.say(jas_talk)
    print("[{}][malgosia_talk] >> ".format(i), malgosia_talk)
    time.sleep(1)

# response = []
# with open('questions.txt', 'r', encoding='utf8') as f:
#     response = f.read().splitlines()
#
# for i in range(100):
#     talk = random.choice(response)
#     print(talk)
#     response.append(jas.say(talk))
示例#6
0
class speak:
    def __init__(self, google_apikey, cleverbot_apikey):
        self.cleverbot_apikey = cleverbot_apikey
        self.google_apikey = google_apikey  # apikey failinimi
        self.gui = Tk()  # tkinteri init
        self.record_btn_text = StringVar()
        self.wait_var = IntVar()
        self.running = True

    def Main(self):
        self.gui.title("Action")
        self.gui.geometry("500x500")
        self.wait_var = IntVar()
        start_btn = ttk.Button(self.gui,
                               text="Start",
                               command=lambda: self.wait_var.set(1))
        start_btn.grid(row=0, ipadx=210)
        exit_button = ttk.Button(self.gui, text='Exit', command=self.shutdown)
        exit_button.grid(row=1, column=0, ipadx=210)
        start_btn.wait_variable(
            self.wait_var)  # ootab et start nuppu vajutataks
        empty_line = Label(self.gui, text='')  # tühi rida vahele
        empty_line.grid(row=2)
        speech_array = []
        while self.running:  # mainloop() asenduseks et GUI püsiks
            self.record_btn_text.set('Start listening')
            record_btn = ttk.Button(self.gui,
                                    textvariable=self.record_btn_text,
                                    command=self.wait)
            record_btn.grid(row=0, ipadx=210)
            record_btn.wait_variable(self.wait_var)
            if self.running:
                speech = self.recognize()
            else:
                exit(0)
            if speech == 'exit ':
                exit(0)
            response = self.cleverbot(speech)
            if speech is None:
                continue
            speech = 'You: ' + speech
            response = 'Cleverbot: ' + response
            speech_array.append(Label(self.gui, text=speech))
            speech_array.append(Label(self.gui, text=response))
            if len(speech_array) > 20:
                speech_array.pop(0).destroy()
                speech_array.pop(0).destroy()
            for i in range(3, len(speech_array) + 3):
                speech_array[i - 3].grid(row=i)
            self.gui.update_idletasks()
            self.gui.update()

    def recognize(self):
        # aktiveerib mikrofoni ja kuulab kuni on vaikus
        r = sr.Recognizer()
        r.dynamic_energy_threshold = True
        with sr.Microphone() as source:
            print('Started listening.')
            audio = r.listen(source, phrase_time_limit=5)
        print("Stopped listening.")
        self.record_btn_text.set('Stopped listening')
        self.gui.update()

        try:
            credentials = open(self.google_apikey).read()
        except FileNotFoundError:
            print(self.google_apikey, 'file not found')
            exit(1)
        try:
            speech_to_text = r.recognize_google_cloud(
                audio, credentials_json=credentials)
        except sr.UnknownValueError:
            print("Google Cloud Speech could not understand audio")
            return None
        except sr.RequestError as e:
            print(
                "Could not request results from Google Cloud Speech service; {0}"
                .format(e))
            raise FileNotFoundError
        return speech_to_text

    def cleverbot(self, speech):
        self.record_btn_text.set('Waiting for cleverbot response...')
        self.gui.update()
        try:
            self.cw = CleverWrap(open(self.cleverbot_apikey).read())
        except FileNotFoundError:
            print(self.cleverbot_apikey, 'file was not found')
            raise FileNotFoundError
        vastus = self.cw.say(speech)
        return vastus

    def wait(self):
        self.record_btn_text.set('Listening now')
        self.wait_var.set(1)
        self.gui.update()

    def shutdown(self):
        self.running = False
        self.cw.reset()
        self.wait_var.set(2)
示例#7
0
class CleverbotFallback(FallbackSkill):
    def __init__(self):
        super(CleverbotFallback, self).__init__()
        self.chat_mode = False
        self.parser = None

    def initialize(self):
        #self.parser = IntentParser(self.emitter)
        self.register_fallback(self.handle_fallback, 90)
        off_intent = IntentBuilder("CleverbotOffIntent"). \
            require("StopKeyword").require("CleverbotKeyword").build()
        on_intent = IntentBuilder("CleverbotOnIntent"). \
            require("StartKeyword").require("CleverbotKeyword").build()
        ask_intent = IntentBuilder("askCleverbotIntent"). \
            require("chatbotQuery").build()
        demo_intent = IntentBuilder("CleverbotdemoIntent"). \
            require("ChatBotDemo").require("CleverbotKeyword").build()
        # register intents
        #self.register_intent(off_intent, self.handle_chat_stop_intent)
        #self.register_intent(on_intent, self.handle_chat_start_intent)
        self.register_intent(ask_intent, self.handle_ask_Cleverbot_intent)
        self.register_intent(demo_intent, self.handle_talk_to_Cleverbot_intent)

        if "api_key" not in self.settings:
            self.speak("you need an api key for cleverbot")
            raise AttributeError("No cleverbot api key provided")

        self.cleverbot = CleverWrap(self.settings["api_key"])

    def handle_ask_Cleverbot_intent(self, message):
        query = message.data.get("chatbotQuery")
        self.speak(self.ask_cleverbot(query))

    def handle_talk_to_Cleverbot_intent(self, message):
        text = random.choice["Hello", "Do you believe in god", "lets chat",
                             "lets play a game", "are you a terminator",
                             "are you human", "are you alive",
                             "do you love me", "are you evil"]
        for i in range(0, 100):
            text = self.ask_cleverbot(text)
            self.speak(text)

    def handle_chat_start_intent(self, message):
        self.chat_mode = True
        self.speak_dialog("chatbotON")

    def handle_chat_stop_intent(self, message):
        self.chat_mode = False
        self.speak_dialog("chatbotOFF")

    def ask_cleverbot(self, utterance):
        response = self.cleverbot.say(utterance)
        return response

    def handle_fallback(self, message):
        utterance = message.data.get("utterance")
        self.context = self.get_context(message.context)
        answer = self.ask_cleverbot(utterance)
        if answer != "":
            self.speak(answer)
            return True
        return False

# def converse(self, utterances, lang="en-us"):
#     # chat flag over-rides all skills
#     if self.chat_mode:
#         intent, id = self.parser.determine_intent(utterances[0])
#         if id == self.skill_id:
#             # some intent from this skill will trigger
#             return False
#         self.speak(self.ask_cleverbot(utterances[0]), expect_response=True)
#         return True
#     return False

    def stop(self):
        self.cleverbot.reset()
        if self.chat_mode:
            self.chat_mode = False
            self.speak_dialog("chatbotOFF")
示例#8
0
#!/usr/bin/python3
from cleverwrap import CleverWrap
import pyttsx
import os
os.environ["HTTPS_PROXY"] = "http://*****:*****@proxy:port"

cw = CleverWrap("API_KEY")

a = 'y'
engine = pyttsx.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[4].id)
rate = engine.getProperty('rate')
engine.setProperty('rate', rate - 30)
engine.say('Hellllllo there. I\'m scarlett')
engine.runAndWait()
while a is not 'n':

    ans = cw.say(raw_input('You: '))
    print 'Kiara: ' + ans
    engine.say(ans)
    engine.runAndWait()

    #a=raw_input('wanna chat more(y/n): ')

cw.reset()