LoginSignup
1
3

More than 5 years have passed since last update.

IBM BluemixでWatsonのREST APIをPythonからたたく

Posted at

執筆途中。未完成

登録

IBM BlueMixに登録する

スペースの作成 dev
http://www.creationline.com/lab/8055
ここではCLIでやってますが,GUIで普通に出来たと思います.

Dashboardにいく
メニューからカタログを選ぶ
Pythonを選ぶ このとき指定した名前が既存のものとかぶってると,追加できない.
ダッシュボードで追加したやつを選ぶ
サービスの追加でWatson Question & Answerのサービスを追加する.
追加した時点で,APIを使うためのURLとID,パスワードが発行されています.

ダッシュボードの追加されたサービスにQ&Aがある.
ここの資格情報の表示とすると,url, id, passwordを確認できます.
また,資格情報の表示の右にドキュメントへのリンクもあるので見てみる.
documentationのapi referenceをみてみると,すべてREST APIである.
REST APIは,今回の場合はurlでアクセスすると,なにかJSON形式の応答を返してくれるというような認識でいいのではないかと思います.
Q&AのAPIにpingを飛ばすにはv1/pingと書いてある.
試しにブラウザでアクセスして確認してみる.http requestの応答としては200を返すのですが,ブラウザ上では空のJSONが見えます{}
試しにterminalからアクセスしてみると..

curl -X GET -H "Accept: application/json" -u d1447bde-bb6f-4db9-b073-eb8faadcf96d:6aX7RxuNFtJp https://gateway.watsonplatform.net/question-and-answer-beta/api/v1/ping
{}
https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Virtualization/3.0/html/REST_API_Guide/appe-REST_API_Guide-cURL_Integration.html

curl -u d1447bde-bb6f-4db9-b073-eb8faadcf96d:6aX7RxuNFtJp -LI https://gateway.watsonplatform.net/question-and-answer-beta/api/v1/ping -o /dev/null -w '%{http_code}\n' -s
200

Djangoを使用してWebアプリケーション開発
http://www.ibm.com/developerworks/jp/cloud/library/cl-worldbank-charting-app/
ここのステップ1,2だけやってみる.
It worksと表示されます.

cf のインストール & push

次にこれをデプロイしてみます.
ダッシュボードからアプリの選択
コーディングの開始を選択
CF コマンド・ライン・インターフェースを選択すると説明がでてくるので,その通りにします.

http://www.ibm.com/developerworks/jp/cloud/library/cl-worldbank-charting-app/
のステップ4をして,DjangoのプロジェクトをBlueMix上にアップしてみます.
requirement.txtに環境情報を書くだけでサーバ上に環境が構築されるいまどきの未来を感じるあれ

Django

git clone https://hub.jazz.net/git/mamtasharma/trendsapp001
してソースダウンロード

manifest.yml
nameを一意の名前に変える
buildの行を削除

とりあえずなんとなくDjango動かしたいので細かい点は虫
cf push --no-start
cf create-service mongodb 100 mongodb001
cf bind-service trendsapp001 mongodb001
cf start trendsapp001

url/trendsにアクセス
動きました.

Q&A加える

ダッシュボードに行って,アプリのページ行く
サービスの追加で

https://developer.ibm.com/answers/questions/181645/question-validation-failed-error-when-making-post.html
できない!Python Script

request.py
import requests
import json

qt = "How deep is grand canyon?"
url = "https://gateway.watsonplatform.net/question-and-answer-beta/api/v1/question/travel"
r = requests.post(url,
                  data=json.dumps({"question": {"questionText": qt}}),
                  headers={"Content-Type": "application/json", "X-SyncTimeout": 30},
                  auth=("0b46d272-3d88-47c7-afa5-9127919e83a6", "yhxjoHEq3dmP"))
print r.text

Django 1.7から新しい機能使いされたりしてるので,
過去のあまり参考にならない.
http://a-records.info/2014/09/29/18/

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3