-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Impossible to make this skill work now #2
Comments
what's the problem? everything seems to be working following the step-by-step tutorial |
Good morning. I'll send some screenshots to show what's going on.
https://github.com/kalishcode/alexa-gpt
Following the step by step tutorial...
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
1.
In the "Build" section, navigate to the "JSON Editor" tab.
2.
1.
Replace the existing JSON content with the provided JSON content
<https://github.com/kalishcode/alexa-gpt/blob/main/json_editor.json>:
2. [image: image.png]
Changed in Editor Json.
3.
1.
Save the model and click on "Build Model".
2.
Go to "Code" section and add "openai" to requirements.txt. Your
requirements.txt should look like this:
ask-sdk-core==1.11.0
openai
4.
[image: image.png]
5.
1.
Create an OpenAI API key by signing up
<https://beta.openai.com/signup/> and clicking in "+ Create new secret
key" in the API keys page
<https://platform.openai.com/account/api-keys>.
2.
Replace your lambda_functions.py file with the provided
lambda_functions.py
<https://github.com/kalishcode/alexa-gpt/blob/main/lambda/lambda_functions.py>.
Remember to put your OpenAI API key:
import logging
import ask_sdk_core.utils as ask_utils
import openai
from ask_sdk_core.skill_builder import SkillBuilder
from ask_sdk_core.dispatch_components import AbstractRequestHandler
from ask_sdk_core.dispatch_components import AbstractExceptionHandler
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_model import Response
# Set your OpenAI API key
openai.api_key = "PUT YOUR OPENAI API KEY HERE"
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
class LaunchRequestHandler(AbstractRequestHandler):
"""Handler for Skill Launch."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return ask_utils.is_request_type("LaunchRequest")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
speak_output = "Chat G.P.T. mode activated"
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)
class GptQueryIntentHandler(AbstractRequestHandler):
"""Handler for Gpt Query Intent."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return ask_utils.is_intent_name("GptQueryIntent")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
query =
handler_input.request_envelope.request.intent.slots["query"].value
response = generate_gpt_response(query)
return (
handler_input.response_builder
.speak(response)
.ask("Any other questions?")
.response
)
class CatchAllExceptionHandler(AbstractExceptionHandler):
"""Generic error handling to capture any syntax or routing errors."""
def can_handle(self, handler_input, exception):
# type: (HandlerInput, Exception) -> bool
return True
def handle(self, handler_input, exception):
# type: (HandlerInput, Exception) -> Response
logger.error(exception, exc_info=True)
speak_output = "Sorry, I had trouble doing what you
asked. Please try again."
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)
class CancelOrStopIntentHandler(AbstractRequestHandler):
"""Single handler for Cancel and Stop Intent."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return
(ask_utils.is_intent_name("AMAZON.CancelIntent")(handler_input) or
ask_utils.is_intent_name("AMAZON.StopIntent")(handler_input))
def handle(self, handler_input):
# type: (HandlerInput) -> Response
speak_output = "Leaving Chat G.P.T. mode"
return (
handler_input.response_builder
.speak(speak_output)
.response
)
def generate_gpt_response(query):
try:
messages = [{"role": "system", "content": "You are a
helpful assistant."},
{"role": "user", "content": query}]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=100,
n=1,
stop=None,
temperature=0.5
)
return response['choices'][0]['message']['content'].strip()
except Exception as e:
return f"Error generating response: {str(e)}"
sb = SkillBuilder()
sb.add_request_handler(LaunchRequestHandler())
sb.add_request_handler(GptQueryIntentHandler())
sb.add_request_handler(CancelOrStopIntentHandler())
sb.add_exception_handler(CatchAllExceptionHandler())
lambda_handler = sb.lambda_handler()
6.
The key was placed
7.
1. Save and deploy. Go to "Test" section and enable "Skill
testing" in "Development".
[image: image.png]
3.
4.
1. [image: image.png]
Following the tutorial's detailed step-by-step we arrived at
this error.
Before the code worked very well.
Now it stops there and I don't know what it could be.
I would appreciate it if you can help me please.
Em ter., 9 de mai. de 2023 às 06:15, kalish ***@***.***>
escreveu:
what's the problem? everything seems to be working following the
step-by-step tutorial
—
Reply to this email directly, view it on GitHub
<#2 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHEB7ECMYLYYLVZ7DPDLVGTXFIDMLANCNFSM6AAAAAAXZ6HRF4>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
Utterance Conflicts ...
Based on your last successful build, you have 1 Utterance Conflicts in your Skill Model.
UTTERANCE CONFLICT .... hush
<html>
SAMPLE UTTERANCES INTENTS CURRENT BEHAVIOR
(built-in utterance) AMAZON.StopIntent Alexa will ignore built-in intents
{query} GptQueryIntent not resolved.
These are the conflicts found by the Alexa dev console.
Kindly help me with this problem, please.
|
[image: image.png]
Em ter., 9 de mai. de 2023 às 07:29, Emilio Terol Fortuny <
***@***.***> escreveu:
Good morning. I'll send some screenshots to show what's going on.
https://github.com/kalishcode/alexa-gpt
Following the step by step tutorial...
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
[image: image.png]
1.
In the "Build" section, navigate to the "JSON Editor" tab.
2.
1.
Replace the existing JSON content with the provided JSON content
<https://github.com/kalishcode/alexa-gpt/blob/main/json_editor.json>
:
2. [image: image.png]
Changed in Editor Json.
3.
1.
Save the model and click on "Build Model".
2.
Go to "Code" section and add "openai" to requirements.txt. Your
requirements.txt should look like this:
ask-sdk-core==1.11.0
openai
4.
[image: image.png]
5.
1.
Create an OpenAI API key by signing up <https://beta.openai.com/signup/> and clicking in "+ Create new secret key" in the API keys page <https://platform.openai.com/account/api-keys>.
2.
Replace your lambda_functions.py file with the provided lambda_functions.py <https://github.com/kalishcode/alexa-gpt/blob/main/lambda/lambda_functions.py>. Remember to put your OpenAI API key:
import logging
import ask_sdk_core.utils as ask_utils
import openai
from ask_sdk_core.skill_builder import SkillBuilder
from ask_sdk_core.dispatch_components import AbstractRequestHandler
from ask_sdk_core.dispatch_components import AbstractExceptionHandler
from ask_sdk_core.handler_input import HandlerInput
from ask_sdk_model import Response
# Set your OpenAI API key
openai.api_key = "PUT YOUR OPENAI API KEY HERE"
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
class LaunchRequestHandler(AbstractRequestHandler):
"""Handler for Skill Launch."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return ask_utils.is_request_type("LaunchRequest")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
speak_output = "Chat G.P.T. mode activated"
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)
class GptQueryIntentHandler(AbstractRequestHandler):
"""Handler for Gpt Query Intent."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return ask_utils.is_intent_name("GptQueryIntent")(handler_input)
def handle(self, handler_input):
# type: (HandlerInput) -> Response
query = handler_input.request_envelope.request.intent.slots["query"].value
response = generate_gpt_response(query)
return (
handler_input.response_builder
.speak(response)
.ask("Any other questions?")
.response
)
class CatchAllExceptionHandler(AbstractExceptionHandler):
"""Generic error handling to capture any syntax or routing errors."""
def can_handle(self, handler_input, exception):
# type: (HandlerInput, Exception) -> bool
return True
def handle(self, handler_input, exception):
# type: (HandlerInput, Exception) -> Response
logger.error(exception, exc_info=True)
speak_output = "Sorry, I had trouble doing what you asked. Please try again."
return (
handler_input.response_builder
.speak(speak_output)
.ask(speak_output)
.response
)
class CancelOrStopIntentHandler(AbstractRequestHandler):
"""Single handler for Cancel and Stop Intent."""
def can_handle(self, handler_input):
# type: (HandlerInput) -> bool
return (ask_utils.is_intent_name("AMAZON.CancelIntent")(handler_input) or
ask_utils.is_intent_name("AMAZON.StopIntent")(handler_input))
def handle(self, handler_input):
# type: (HandlerInput) -> Response
speak_output = "Leaving Chat G.P.T. mode"
return (
handler_input.response_builder
.speak(speak_output)
.response
)
def generate_gpt_response(query):
try:
messages = [{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": query}]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
max_tokens=100,
n=1,
stop=None,
temperature=0.5
)
return response['choices'][0]['message']['content'].strip()
except Exception as e:
return f"Error generating response: {str(e)}"
sb = SkillBuilder()
sb.add_request_handler(LaunchRequestHandler())
sb.add_request_handler(GptQueryIntentHandler())
sb.add_request_handler(CancelOrStopIntentHandler())
sb.add_exception_handler(CatchAllExceptionHandler())
lambda_handler = sb.lambda_handler()
6.
The key was placed
7.
1. Save and deploy. Go to "Test" section and enable "Skill testing" in "Development".
[image: image.png]
3.
4.
1. [image: image.png]
Following the tutorial's detailed step-by-step we arrived at
this error.
Before the code worked very well.
Now it stops there and I don't know what it could be.
I would appreciate it if you can help me please.
Em ter., 9 de mai. de 2023 às 06:15, kalish ***@***.***>
escreveu:
> what's the problem? everything seems to be working following the
> step-by-step tutorial
>
> —
> Reply to this email directly, view it on GitHub
> <#2 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AHEB7ECMYLYYLVZ7DPDLVGTXFIDMLANCNFSM6AAAAAAXZ6HRF4>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>
|
Looks like the stop intent is conflicting with the gpt intent. These conflicts will no longer be available from May 17, 2023. You can edit JSON Editor to AMAZON.SearchQuery (the way it was before) {
"interactionModel": {
"languageModel": {
"invocationName": "chat",
"intents": [
{
"name": "GptQueryIntent",
"slots": [
{
"name": "query",
"type": "AMAZON.SearchQuery"
}
],
"samples": [
"chat {query}"
]
},
{
"name": "AMAZON.CancelIntent",
"samples": []
},
{
"name": "AMAZON.HelpIntent",
"samples": []
},
{
"name": "AMAZON.StopIntent",
"samples": []
},
{
"name": "AMAZON.NavigateHomeIntent",
"samples": []
}
],
"types": []
}
}
} The downside of this is that you will need to say "chat" before each interaction. |
I will see it now |
still not working. If .... These conflicts will no longer be available from May 17, 2023 ... |
Good morning. Note: Invocation name in Alexa must be a minimum of two words. I'm doing ALL what your manual says, step by step. Alexa's response: There was a problem with the requested skill's response |
Fixed in the issue #3 |
Good morning. Before it worked fine. Still the same problem in Alexa. Impossible to make this skill work now.
I'm sorry because before it was perfect
The text was updated successfully, but these errors were encountered: