2016-05-22 23 views
-2

我已經用Python編寫了一個非常簡單的聊天機器人。 它的工作原理就好像你寫了一些東西,它完成了基於Python的計算並給出了答案。因爲它也檢查你以前的答案,所以Python腳本需要連續運行。 我希望把聊天機器人在線和:Python腳本在HTML表面上打印結果

  1. 從HTML表面發送輸入回服務器作爲源的raw_input的()
  2. 然後Python的輸出發送回前端作爲回答,並作爲HTML中瀏覽器中聊天的換行符。

我的Python代碼是:

def conversation(question): 
    answer = #... ... ...(doesnt matter right now) 

    print "CHATBOT: " + answer 
    next_question = raw_input("YOU: ") 
    return next_question 

#========================== 
#INTRO & CALLING FUNTCTIONS 
#========================== 
print "Hi, my name is CHATBOT!" 

#Starts with user input. 
question = "" 
question = raw_input("You: ") 

#calling the conversation function 
question = conversation(question) 

的問題是:我怎麼能和我的網站連接到Python腳本?用戶如何在網站上與我的腳本進行交互?

我很確定這很容易,但我不知道從哪裏開始... 謝謝!

回答

0

您需要某種服務器。就你而言,你可以使用WebSockets或HTTP。

對於WebSockets,有Python解決方案,如Autobahn。 WebSocket記住狀態,這對你想做的事很有用。這可能是你應該使用的。

對於HTTP,一個簡單的Python解決方案是Bottle

from bottle import route, run, template 
@route('/hello/<name>') 
def index(name): 
    return template('<b>Hello {{name}}</b>!', name=name) 
run(host='localhost', port=8080) 

但HTTP是無狀態的,所以你不記得的最後一個連接。您需要通過爲每個個人用戶創建Cookie /會話來記住特定用戶的聊天方式。

此外,你仍然需要將它連接到像Nginx這樣的Web服務器。

0

Nice chatbot應用程序!訣竅是保持你的流量控制和你的功能分開。

所以我做了兩次小的改進:

  1. 我把流量控制從conversation和,但在main

  2. 我改變了print聲明conversationreturn語句,因爲你想要保持你的印刷到屏幕和邏輯功能,以及如果你可以:)

除此之外,還有一個很好的開始!w

def conversation(question): 
answer = #... ... ...(doesnt matter right now) 
return "CHATBOT: " + answer 

def main(): 
    while True: 
     next_question = raw_input("YOU: ") 
     print(conversation(next_question)) 

#========================== 
#INTRO & CALLING FUNTCTIONS 
#========================== 

print "Hi, my name is CHATBOT!" 
main()