pvanand commited on
Commit
b0bc62e
·
1 Parent(s): 6a1e40c

Update actions/actions.py

Browse files
Files changed (1) hide show
  1. actions/actions.py +43 -20
actions/actions.py CHANGED
@@ -31,27 +31,37 @@ secret_value_0 = os.environ.get("openai")
31
  openai.api_key = secret_value_0
32
  # Provide your OpenAI API key
33
 
34
- def generate_openai_response(query, model_engine="text-davinci-003", max_tokens=124, temperature=0.8):
35
- """Generate a response using the OpenAI API."""
36
 
37
- # Run the main function from search_content.py and store the results in a variable
38
- results = main_search(query)
39
-
 
 
 
40
  # Create context from the results
41
  context = "".join([f"#{str(i)}" for i in results])[:2014] # Trim the context to 2014 characters - Modify as necessory
42
- prompt_template = f"Relevant context: {context}\n\n Answer the question in detail: {query}"
43
-
44
- # Generate a response using the OpenAI API
45
- response = openai.Completion.create(
46
- engine=model_engine,
47
- prompt=prompt_template,
48
- max_tokens=max_tokens,
49
- temperature=temperature,
50
- n=1,
51
- stop=None,
 
 
 
 
 
 
 
 
52
  )
53
-
54
- return response.choices[0].text.strip()
55
 
56
  class GetOpenAIResponse(Action):
57
 
@@ -63,12 +73,25 @@ class GetOpenAIResponse(Action):
63
  tracker: Tracker,
64
  domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
65
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  # Use OpenAI API to generate a response
67
- query = tracker.latest_message.get('text')
68
- response = generate_openai_response(query)
69
 
70
  # Output the generated response to user
71
- dispatcher.utter_message(text=response)
 
72
 
73
  class GeneralHelp(Action):
74
  def name(self) -> Text:
 
31
  openai.api_key = secret_value_0
32
  # Provide your OpenAI API key
33
 
34
+ def generate_openai_response(user_queries, model_engine="gpt-3.5-turbo", max_tokens=100, temperature=0.5):
35
+ """Generate a response using the OpenAI API."""
36
 
37
+ # Send last two user queries for vector search
38
+ if len(user_queries) >= 2:
39
+ results = main_search(user_queries[-1]+user_queries[-2])
40
+ else:
41
+ results = main_search(user_queries[-1])
42
+
43
  # Create context from the results
44
  context = "".join([f"#{str(i)}" for i in results])[:2014] # Trim the context to 2014 characters - Modify as necessory
45
+
46
+ messages=[
47
+ {"role": "system", "content": f"You are a helpful assistant tasked to answer user queries using the following context: {context}"}
48
+ ]
49
+ max_user_queries_to_include = min(1,len(user_queries))
50
+ # The latest query is at the end of the list
51
+ for i in range(len(user_queries)):
52
+ if i<max_user_queries_to_include:
53
+ messages.append({"role": "user", "content": user_queries[-max_user_queries_to_include+i]})
54
+
55
+ response = openai.ChatCompletion.create(
56
+ model="gpt-3.5-turbo",
57
+ messages= messages,
58
+ max_tokens=124,
59
+ temperature=0,
60
+ top_p=1,
61
+ frequency_penalty=0,
62
+ presence_penalty=0
63
  )
64
+ return response.choices[0]['message']['content'].strip()#+"Debug Info: Openai-input_1: "+str(messages_1)+" Openai_input_0"+str( messages_0)+" user_queries: "+str(user_queries)
 
65
 
66
  class GetOpenAIResponse(Action):
67
 
 
73
  tracker: Tracker,
74
  domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
75
 
76
+ # Extract conversation data
77
+ conversation_history = tracker.events
78
+
79
+ user_queries = []
80
+ bot_responses = []
81
+
82
+ for event in conversation_history:
83
+ if event.get("event") == "user":
84
+ user_queries.append(event.get("text"))
85
+ elif event.get("event") == "bot":
86
+ bot_responses.append(event.get("text"))
87
+
88
  # Use OpenAI API to generate a response
89
+ #query = tracker.latest_message.get('text')
90
+ response = generate_openai_response(user_queries)
91
 
92
  # Output the generated response to user
93
+ dispatcher.utter_message(text=str(response))
94
+
95
 
96
  class GeneralHelp(Action):
97
  def name(self) -> Text: