Spaces:
Runtime error
Runtime error
File size: 15,431 Bytes
0b9e99a a9442f2 1fc962a a9442f2 0b9e99a a9442f2 0b9e99a a9442f2 0b9e99a 27fd04a 0b9e99a 5b50c97 f6b3153 d2d37d9 f6b3153 d2d37d9 f6b3153 a9442f2 0b9e99a f6b3153 d2d37d9 a9442f2 f6b3153 e6bcf99 a9442f2 d2d37d9 a9442f2 e6bcf99 d2d37d9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
import base64
import gradio as gr
import requests
import google.generativeai as palm
import json
import os
oapi_key= os.getenv("openaiapi")
palm.configure(api_key=os.getenv("palmapi"))
model = 'models/text-bison-001'
temperature = 0.5
candidate_count = 1
top_k = 40
top_p = 0.95
max_output_tokens = 1024
text_b64 = 'WW91IGFyZSBhIFJpY2UgUGFkZHkgQWdyaWN1bHR1cmFsIFNjaWVudGlzdCAsIFlvdSB3aWxsIGJlIGdpdmVuIHRoZSBzdGF0ZSBvZiB0aGUgcGFkZHkoYSBwaWN0dXJlIGRlc2NyaXB0aW9uICkgYW5kIHlvdSB3aWxsIGhhdmUgdG8gYWR2aWNlIG9uIHRoZSBjb3JyZWN0IHJlbWVkeUlucHV0IC0gU2hlYXRoIFllcyBNZWFuaW5nIC0gIFRoZSBGYXJtZXIgaGFzIHNob3duIHlvdSBhIHBpY3R1cmUgb2YgU2hlYXRoIHBhcnQgb2YgdGhlIHBhZGR5IGFuZCBpdCBpcyBzdWZmZXJpbmcgZnJvbSBTaGVhdGggUm90ICwgYWR2aWNlIHRoZSBmYXJtZXIgb24gaG93IHRvIGZpeCB0aGlzSW5wdXQgLSBTaGVhdGggTm8gTWVhbmluZyAtIFRoZSBGYXJtZXIgaGFzIHNob3duIHlvdSBhIHBpY3R1cmUgb2YgU2hlYXRoIHBhcnQgb2YgdGhlIHBhZGR5IGFuZCBpdCBpcyBoZWFsdGh5ICxjb25ncmF0dWxhdGUgYW5kIGFkdmljZSBmYXJtZXIgb24gaG93IHRvIG1haW50YWluIGl0SW5wdXQgLSBMZWFmIFllcyBObyBObyBNZWFuaW5nIC0gVGhlIEZhcm1lciBoYXMgc2hvd24geW91IGEgcGljdHVyZSBvZiBMZWFmIHBhcnQgb2YgdGhlIHBhZGR5IGFuZCBpdCBpcyBoZWFsdGh5ICwgY29uZ3JhdHVsYXRlIHRoZSBmYXJtZXIgYW5kIGFkdmljZSB0aGUgZmFybWVyIG9uIGhvdyB0byBtYWludGFpbiBpdCBJbnB1dCAtIExlYWYgTm8gWWVzIE5vIE1lYW5pbmcgLSBUaGUgRmFybWVyIGhhcyBzaG93biB5b3UgYSBwaWN0dXJlIG9mIExlYWYgcGFydCBvZiB0aGUgcGFkZHkgYW5kIGl0IGhhcyBicm93biBzcG90cyBkaXNlYXNlICAsICBhZHZpY2UgdGhlIGZhcm1lciBvbiBob3cgdG8gcmVtZWR5IGl0IElucHV0IC0gTGVhZiBObyBZZXMgWWVzTWVhbmluZyAtIFRoZSBGYXJtZXIgaGFzIHNob3duIHlvdSBhIHBpY3R1cmUgb2YgTGVhZiBwYXJ0IG9mIHRoZSBwYWRkeSBhbmQgaXQgaGFzIGJyb3duIHNwb3RzIGRpc2Vhc2UgYW5kIEJsaWdodCBEaXNlYXNlICAsICBhZHZpY2UgdGhlIGZhcm1lciBvbiBob3cgdG8gcmVtZWR5IGl0IElucHV0IC0gTGVhZiBObyBObyBZZXNNZWFuaW5nIC0gVGhlIEZhcm1lciBoYXMgc2hvd24geW91IGEgcGljdHVyZSBvZiBMZWFmIHBhcnQgb2YgdGhlIHBhZGR5IGFuZCBpdCBoYXMgQmxpZ2h0IGRpc2Vhc2UgICwgIGFkdmljZSB0aGUgZmFybWVyIG9uIGhvdyB0byByZW1lZHkgaXQgSW5wdXQgLSBMZWFmIFllcyBObyBZZXMgTWVhbmluZyAtIFRoZSBGYXJtZXIgaGFzIHNob3duIHlvdSBhIHBpY3R1cmUgb2YgTGVhZiBwYXJ0IG9mIHRoZSBwYWRkeSBhbmQgaXQgbG9va3MgaGVhbHRoeSBidXQgaXQgaGFzIHllbGxvd2lzaCAgZWRnZXMgdGhhdCBtaWdodCBpbmRpY2F0ZSBibGlnaHQgLCAgYWR2aWNlIHRoZSBmYXJtZXIgb24gaG93IHRvIHJlbWVkeSBpdCBJbnB1dCAtIExlYWYgWWVzIFllcyBObyBNZWFuaW5nIC0gVGhlIEZhcm1lciBoYXMgc2hvd24geW91IGEgcGljdHVyZSBvZiBMZWFmIHBhcnQgb2YgdGhlIHBhZGR5IGFuZCBpdCBoYXMgYnJvd24gc3BvdHMgZGlzZWFzZSBidXQgYWxzbyBpcyBxdWl0ZSBncmVlbiBzbyBpdCBtaWdodCBiZSBoZWFsdGh5IGFuZCBqdXN0IGdvdCB0aGUgYnJvd24gc3BvdCBkaXNlYXNlICAsICBhZHZpY2UgdGhlIGZhcm1lciBvbiBob3cgdG8gcmVtZWR5IGl0IAppbnB1dDogU2hlYXRoIFllcwpvdXRwdXQ6IFRoZSBwYWRkeSBpcyBzdWZmZXJpbmcgZnJvbSBzaGVhdGggcm90LiAKVGhlIG1hbmFnZW1lbnQgcmVjb21tZW5kYXRpb25zIHByb3ZpZGVkIGZvciBzaGVhdGggcm90IGFyZSBhcyBmb2xsb3dzOgotU3ByYXkgTmVlbSBPaWw6IEFwcGx5IG5lZW0gb2lsIGF0IGEgY29uY2VudHJhdGlvbiBvZiA2MCBFQyAzJSB0byBoZWxwIG1hbmFnZSBzaGVhdGggcm90LgotU29pbCBBcHBsaWNhdGlvbiBvZiBHeXBzdW06IEFwcGx5IGd5cHN1bSBhdCBhIHJhdGUgb2YgMjAwIGtnL2FjcmUgaW4gdHdvIHNwbGl0cyB0byB0aGUgc29pbCwgYXMgdGhpcyBjYW4gaGVscCBpbiBtYW5hZ2luZyB0aGUgZGlzZWFzZS4KLVNwcmF5IE5TS0UgKE5lZW0sIFNvYXAsIGFuZCBLYXJhbmphIEVtdWxzaW9uKTogQXBwbHkgTlNLRSBhdCBhIGNvbmNlbnRyYXRpb24gb2YgNSUgdG8gaGVscCBjb250cm9sIHRoZSBzcHJlYWQgb2Ygc2hlYXRoIHJvdC4KLVNwcmF5IEhleGFjb25hem9sZTogQXBwbHkgSGV4YWNvbmF6b2xlIGF0IGEgY29uY2VudHJhdGlvbiBvZiA0MDAgbWwvYWNyZS4gVGhlIGZpcnN0IHNwcmF5IHNob3VsZCBiZSBkb25lIGF0IHRoZSBib290IGxlYWYgc3RhZ2UsIHdpdGggdGhlIHNlY29uZCBzcHJheSAxNSBkYXlzIGxhdGVyLgppbnB1dDogU2hlYXRoIE5vCm91dHB1dDogR3JlYXQgbmV3cyB0aGF0IHRoZSBzaGVhdGggaXMgaGVhbHRoeSEgVG8gbWFpbnRhaW4gdGhlIGhlYWx0aCBvZiB0aGUgc2hlYXRoIGFuZCBwcmV2ZW50IGZ1dHVyZSBpc3N1ZXMsIGl0J3MgZXNzZW50aWFsIGZvciB0aGUgZmFybWVyIHRvIGNvbnRpbnVlIHByYWN0aWNpbmcgZ29vZCBhZ3JpY3VsdHVyYWwgbWFuYWdlbWVudC4gVGhpcyBpbmNsdWRlcyBwcm9wZXIgZHJhaW5hZ2UgdG8gYXZvaWQgd2F0ZXJsb2dnaW5nLCBhZGVxdWF0ZSBzcGFjaW5nIGJldHdlZW4gcGxhbnRzLCBhbmQgcmVndWxhciBtb25pdG9yaW5nIGZvciBzaWducyBvZiBkaXNlYXNlLiBBZGRpdGlvbmFsbHksIGltcGxlbWVudGluZyBhIGJhbGFuY2VkIGZlcnRpbGl6YXRpb24gc2NoZWR1bGUgYW5kIGVuc3VyaW5nIHByb3BlciBpcnJpZ2F0aW9uIGNhbiBjb250cmlidXRlIHRvIHRoZSBvdmVyYWxsIGhlYWx0aCBvZiB0aGUgcGFkZHkgc2hlYXRoLiBSZWd1bGFyIHNjb3V0aW5nIGZvciBwZXN0cyBhbmQgZGlzZWFzZXMgaXMgYWxzbyByZWNvbW1lbmRlZCB0byBjYXRjaCBhbnkgaXNzdWVzIGVhcmx5IGFuZCB0YWtlIGFwcHJvcHJpYXRlIGFjdGlvbi4KaW5wdXQ6IExlYWYgWWVzIE5vIE5vCm91dHB1dDogSXQncyBncmVhdCB0byBzZWUgdGhhdCB0aGUgcGFkZHkgbGVhdmVzIGFyZSBoZWFsdGh5LiBUbyBtYWludGFpbiB0aGVpciBoZWFsdGgsIHRoZSBmYXJtZXIgc2hvdWxkIGNvbnRpbnVlIHByYWN0aWNpbmcgZ29vZCBhZ3JpY3VsdHVyYWwgbWFuYWdlbWVudDoKLVByb3BlciBXYXRlciBNYW5hZ2VtZW50OiBFbnN1cmUgdGhlIHBhZGR5IGZpZWxkcyBoYXZlIHByb3BlciBkcmFpbmFnZSB0byBhdm9pZCB3YXRlcmxvZ2dpbmcsIGFuZCBtb25pdG9yIGlycmlnYXRpb24gdG8gcHJldmVudCBvdmVyd2F0ZXJpbmcuCi1CYWxhbmNlZCBGZXJ0aWxpemF0aW9uOiBJbXBsZW1lbnQgYSBiYWxhbmNlZCBmZXJ0aWxpemF0aW9uIHNjaGVkdWxlIHRvIHByb3ZpZGUgdGhlIG5lY2Vzc2FyeSBudXRyaWVudHMgZm9yIGhlYWx0aHkgbGVhZiBkZXZlbG9wbWVudC4KLVJlZ3VsYXIgTW9uaXRvcmluZzogQ29udGludWUgdG8gbW9uaXRvciB0aGUgcGFkZHkgZmllbGRzIHJlZ3VsYXJseSBmb3IgYW55IHNpZ25zIG9mIHBlc3RzIG9yIGRpc2Vhc2VzLCBhcyBlYXJseSBkZXRlY3Rpb24gY2FuIGhlbHAgaW4gcHJldmVudGluZyBpc3N1ZXMgZnJvbSBzcHJlYWRpbmcuCi1DdWx0dXJhbCBQcmFjdGljZXM6IFByYWN0aWNlIGdvb2QgYWdyaWN1bHR1cmFsIHRlY2huaXF1ZXMgc3VjaCBhcyBwcm9wZXIgc3BhY2luZyBhbmQgdGltZWx5IGlycmlnYXRpb24gdG8gbWFpbnRhaW4gdGhlIGhlYWx0aCBvZiB0aGUgcGFkZHkgbGVhdmVzLgoKaW5wdXQ6IExlYWYgTm8gWWVzIFllcyAKb3V0cHV0OiBUaGUgcGFkZHkgbGVhdmVzIHNlZW0gdG8gYmUgYWZmZWN0ZWQgYnkgYm90aCBicm93biBzcG90IGRpc2Vhc2UgYW5kIGJhY3RlcmlhbCBsZWFmIGJsaWdodC4gSGVyZSBhcmUgdGhlIG1hbmFnZW1lbnQgcmVjb21tZW5kYXRpb25zIHByb3ZpZGVkIGZvciB0aGVzZSBkaXNlYXNlczoKCkJyb3duIFNwb3QgRGlzZWFzZToKLU1ham9yIFN5bXB0b21zOiBDeWxpbmRyaWNhbCBvdmFsIGRhcmsgYnJvd24gc3BvdHMgd2l0aCBhIHllbGxvdyBoYWxvLiBJbiBhZHZhbmNlZCBjYXNlcywgdGhlIHNwb3RzIGNvYWxlc2NlIHRvZ2V0aGVyIGFuZCBkcnkuCl9NYW5hZ2VtZW50OiBSZWNvbW1lbmRlZCBmdW5naWNpZGVzIGluY2x1ZGUgRWRpZmVucGhvcyAoMjAwbWwvYWNyZSksIE1hbmNvemViICg1MDBnL2FjcmUpLCBvciBQcm9waW5lYiAoODAwZy9hY3JlKS4KCkJhY3RlcmlhbCBMZWFmIEJsaWdodCAoQkxCKToKLU1ham9yIFN5bXB0b21zOiBZZWxsb3ctY29sb3JlZCB3YXZ5IG1hcmdpbiB3aXRoIGEgemlnemFnIGFwcGVhcmFuY2Ugb24gdGhlIGxlYXZlcy4KLU1hbmFnZW1lbnQ6IFNwcmF5IDIwJSBmcmVzaCBjb3cgZHVuZyBleHRyYWN0IHR3aWNlLCBzdGFydGluZyBmcm9tIHRoZSBpbml0aWFsIGFwcGVhcmFuY2Ugb2YgdGhlIGRpc2Vhc2UgYW5kIHRoZW4gYXQgYSBmb3J0bmlnaHRseSBpbnRlcnZhbC4KCmlucHV0OiBMZWFmIE5vIFllcyBObyAKb3V0cHV0OiBUaGUgcGFkZHkgbGVhdmVzIHNlZW0gdG8gYmUgYWZmZWN0ZWQgYnkgYm90aCBicm93biBzcG90IGRpc2Vhc2UgSGVyZSBhcmUgdGhlIG1hbmFnZW1lbnQgcmVjb21tZW5kYXRpb25zIHByb3ZpZGVkIGZvciB0aGlzIGRpc2Vhc2U6ClJlY29tbWVuZGF0aW9ucyBmb3IgbWFuYWdpbmcgYnJvd24gc3BvdCBkaXNlYXNlIGluIHBhZGR5IGxlYXZlczoKRnVuZ2ljaWRlIEFwcGxpY2F0aW9uOiBBcHBseSBhcHByb3ByaWF0ZSBmdW5naWNpZGVzIHRvIGNvbnRyb2wgdGhlIHNwcmVhZCBvZiBicm93biBzcG90IGRpc2Vhc2UuIENvbW1vbmx5IHVzZWQgZnVuZ2ljaWRlcyBmb3IgYnJvd24gc3BvdCBkaXNlYXNlIGluY2x1ZGUgRWRpZmVucGhvcywgTWFuY296ZWIsIG9yIFByb3BpbmViLgpQcm9wZXIgV2F0ZXIgTWFuYWdlbWVudDogRW5zdXJlIHByb3BlciBkcmFpbmFnZSB0byBhdm9pZCB3YXRlcmxvZ2dpbmcsIGFzIGV4Y2Vzc2l2ZSBtb2lzdHVyZSBjYW4gY29udHJpYnV0ZSB0byB0aGUgZGV2ZWxvcG1lbnQgYW5kIHNwcmVhZCBvZiBicm93biBzcG90IGRpc2Vhc2UKRmllbGQgU2FuaXRhdGlvbjogUmVtb3ZlIGFuZCBkZXN0cm95IGluZmVjdGVkIHBsYW50IGRlYnJpcyB0byBtaW5pbWl6ZSB0aGUgc291cmNlIG9mIHRoZSBkaXNlYXNlLgoKaW5wdXQ6IExlYWYgTm8gTm8gWWVzCm91dHB1dDogVGhlIHBhZGR5IGxlYXZlcyBzZWVtIHRvIGJlIGFmZmVjdGVkIGJ5IGJhY3RlcmlhbCBsZWFmIGJsaWdodC4gSGVyZSBhcmUgdGhlIG1hbmFnZW1lbnQgcmVjb21tZW5kYXRpb25zIHByb3ZpZGVkIGZvciB0aGlzIGRpc2Vhc2VzOgoKQmFjdGVyaWFsIExlYWYgQmxpZ2h0IChCTEIpOgotTWFqb3IgU3ltcHRvbXM6IFllbGxvdy1jb2xvcmVkIHdhdnkgbWFyZ2luIHdpdGggYSB6aWd6YWcgYXBwZWFyYW5jZSBvbiB0aGUgbGVhdmVzLgotTWFuYWdlbWVudDogU3ByYXkgMjAlIGZyZXNoIGNvdyBkdW5nIGV4dHJhY3QgdHdpY2UsIHN0YXJ0aW5nIGZyb20gdGhlIGluaXRpYWwgYXBwZWFyYW5jZSBvZiB0aGUgZGlzZWFzZSBhbmQgdGhlbiBhdCBhIGZvcnRuaWdodGx5IGludGVydmFsLgoKCmlucHV0OiBMZWFmIFllcyBZZXMgTm8Kb3V0cHV0OiBJdCdzIGdyZWF0IHRvIGhlYXIgdGhhdCB0aGUgcGFkZHkgbGVhdmVzIGFyZSBoZWFsdGh5LiBIb3dldmVyLCBzaW5jZSB0aGVyZSBhcmUgc29tZSBpbmRpY2F0aW9ucyBvZiBhIHBvdGVudGlhbCBpc3N1ZSB3aXRoIHllbGxvd2lzaCBlZGdlcyB0aGF0IG1pZ2h0IGluZGljYXRlIGJsaWdodCwgaXQncyBpbXBvcnRhbnQgZm9yIHRoZSBmYXJtZXIgdG8gc3RheSB2aWdpbGFudCBhbmQgY29uc2lkZXIgcHJldmVudGl2ZSBtZWFzdXJlcyB0byBtYWludGFpbiB0aGUgaGVhbHRoIG9mIHRoZSBwYWRkeSBsZWF2ZXMuR2l2ZW4gdGhlIGNvbWJpbmF0aW9uIG9mIGhlYWx0aHkgYXBwZWFyYW5jZSBhbmQgdGhlIHByZXNlbmNlIG9mIHBvdGVudGlhbCB5ZWxsb3dpc2ggZWRnZXMgdGhhdCBtYXkgaW5kaWNhdGUgYmxpZ2h0LCBpdCdzIGFkdmlzYWJsZSBmb3IgdGhlIGZhcm1lciB0bzoKCk1vbml0b3IgY2xvc2VseSBmb3IgYW55IGZ1cnRoZXIgZGV2ZWxvcG1lbnQgb2YgYmxpZ2h0IHN5bXB0b21zLCBzdWNoIGFzIHRoZSB5ZWxsb3dpc2ggZWRnZXMsIGFuZCB0YWtlIHByZXZlbnRpdmUgYWN0aW9uIGlmIHRoZSBzeW1wdG9tcyBwcm9ncmVzcy4KCkltcGxlbWVudCBwcmV2ZW50aXZlIG1lYXN1cmVzIHN1Y2ggYXMgcHJvcGVyIHdhdGVyIG1hbmFnZW1lbnQsIGJhbGFuY2VkIGZlcnRpbGl6YXRpb24sIGFuZCByZWd1bGFyIGZpZWxkIG1vbml0b3JpbmcgdG8gcHJldmVudCBibGlnaHQgZGlzZWFzZS4KaW5wdXQ6IExlYWYgWWVzIE5vIFllcwpvdXRwdXQ6IEl0IHNlZW1zIHRoYXQgdGhlIHBhZGR5IGxlYXZlcyBhcmUgaGVhbHRoeSBidXQgYXJlIHNob3dpbmcgc2lnbnMgb2YgYmxpZ2h0IGRpc2Vhc2UuIFRvIGFkZHJlc3MgdGhpcyBpc3N1ZSwgdGhlIGZhcm1lciBzaG91bGQgY29uc2lkZXIgdGhlIGZvbGxvd2luZyByZW1lZGllczoKCkZ1bmdpY2lkZSBBcHBsaWNhdGlvbjogQXBwbHkgYXBwcm9wcmlhdGUgZnVuZ2ljaWRlcyB0byBjb250cm9sIHRoZSBzcHJlYWQgb2YgYmxpZ2h0IGRpc2Vhc2UuIFRoZSBkb2N1bWVudCByZWNvbW1lbmRzIHRoZSB1c2Ugb2Ygc3BlY2lmaWMgZnVuZ2ljaWRlcywgc3VjaCBhcyBDYXJiZW5kYXppbSBvciBNYW5jb3plYiwgdG8gbWFuYWdlIGJsaWdodCBkaXNlYXNlIGVmZmVjdGl2ZWx5LgpQcm9wZXIgV2F0ZXIgTWFuYWdlbWVudDogRW5zdXJlIHByb3BlciBkcmFpbmFnZSB0byBhdm9pZCB3YXRlcmxvZ2dpbmcsIGFzIGV4Y2Vzc2l2ZSBtb2lzdHVyZSBjYW4gY29udHJpYnV0ZSB0byB0aGUgZGV2ZWxvcG1lbnQgYW5kIHNwcmVhZCBvZiBibGlnaHQgZGlzZWFzZS4KRmllbGQgU2FuaXRhdGlvbjogUmVtb3ZlIGFuZCBkZXN0cm95IGluZmVjdGVkIHBsYW50IGRlYnJpcyB0byBtaW5pbWl6ZSB0aGUgc291cmNlIG9mIHRoZSBkaXNlYXNlLgppbnB1dDogTGVhZiBZZXMgWWVzIFllcyAKb3V0cHV0OiBQbGVhc2UgcHJvdmlkZSBUaGUgYXBwIHdpdGggYW5vdGhlciBwaWN0dXJlIHRha2VuIGZyb20gcG9zc2libHkgYSBkaWZmZXJlbnQgYW5nbGUgb3Igd2l0aCBiZXR0ZXIgbGlnaHRpbmcgLCBvciB1c2UgYSBkaWZmZXJlbnQgc2FtcGxlIGxlYWYKaW5wdXQ6' # @param {isTemplate: true}
stop_sequences_b64 = 'W10='
safety_settings_b64 = 'W3siY2F0ZWdvcnkiOiJIQVJNX0NBVEVHT1JZX0RFUk9HQVRPUlkiLCJ0aHJlc2hvbGQiOiJCTE9DS19MT1dfQU5EX0FCT1ZFIn0seyJjYXRlZ29yeSI6IkhBUk1fQ0FURUdPUllfVE9YSUNJVFkiLCJ0aHJlc2hvbGQiOiJCTE9DS19MT1dfQU5EX0FCT1ZFIn0seyJjYXRlZ29yeSI6IkhBUk1fQ0FURUdPUllfVklPTEVOQ0UiLCJ0aHJlc2hvbGQiOiJCTE9DS19NRURJVU1fQU5EX0FCT1ZFIn0seyJjYXRlZ29yeSI6IkhBUk1fQ0FURUdPUllfU0VYVUFMIiwidGhyZXNob2xkIjoiQkxPQ0tfTUVESVVNX0FORF9BQk9WRSJ9LHsiY2F0ZWdvcnkiOiJIQVJNX0NBVEVHT1JZX01FRElDQUwiLCJ0aHJlc2hvbGQiOiJCTE9DS19NRURJVU1fQU5EX0FCT1ZFIn0seyJjYXRlZ29yeSI6IkhBUk1fQ0FURUdPUllfREFOR0VST1VTIiwidGhyZXNob2xkIjoiQkxPQ0tfTUVESVVNX0FORF9BQk9WRSJ9XQ==' # @param {isTemplate: true}
# Convert the prompt text param from a bae64 string to a string.
text = base64.b64decode(text_b64).decode("utf-8")
# Convert the stop_sequences and safety_settings params from base64 strings to lists.
stop_sequences = json.loads(base64.b64decode(stop_sequences_b64).decode("utf-8"))
safety_settings = json.loads(base64.b64decode(safety_settings_b64).decode("utf-8"))
defaults = {
'model': model,
'temperature': temperature,
'candidate_count': candidate_count,
'top_k': top_k,
'top_p': top_p,
'max_output_tokens': max_output_tokens,
'stop_sequences': stop_sequences,
'safety_settings': safety_settings,
}
def encode_image(image_file):
with open(image_file.name, "rb") as img_file:
return base64.b64encode(img_file.read()).decode('utf-8')
def send_to_openai(image_file):
base64_image = encode_image(image_file)
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {oapi_key}"
}
payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Answer in only one of the following options - Leaf , Sheath , Question - You are given a picture of Rice Paddy which part of the Paddy Crop is prominently visible , Leaf should be the whole leaf , and Sheath Can be a little part of the Leaf and Should Show the Stem and Maybe Grains "
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
"max_tokens": 300
}
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
# Extract words from the assistant's response
assistant_response = response.json()['choices'][0]['message']['content']
words = assistant_response.split('\n')
checkresponse_lower = [word.lower() for word in words]
if "leaf" in checkresponse_lower:
payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Answer in three words only, does the image uploaded have a healthy rice leaf - Yes or No , does the image uploaded have a rice leaf with Major (not small) circular spots - Yes or No , does the image uploaded have a rice leaf have a major yellowish discoloration in some areas (ignore spots) - Yes or No , DO NOT RESPOND IN MORE THAN THREE WORDS and ANSWER WITH COMMA IN THE MIDDLE OF THE WORDS WITH NO FULLSTOP "
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
"max_tokens": 300
}
elif "sheath" in checkresponse_lower:
payload = {
"model": "gpt-4-vision-preview",
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "ANSWER IN ONLY ONE WORD , does the sheath part of the paddy in the image have sheath rot ANSWER IN YES OR NO , NO FULLSTOP "
},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
"max_tokens": 300
}
response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)
assistant_response = response.json()['choices'][0]['message']['content']
recognition = assistant_response.split('\n')
result_string = ' '.join(words + recognition)
response = palm.generate_text(
**defaults,
prompt=text + result_string
)
output_text = response.candidates[0]['output']
return output_text[8:]
iface = gr.Interface(
fn=send_to_openai,
inputs=["file"],
outputs=["text"],
title="Rice Leaf Disease Detection Demo Using GPT-4V(ision) + PaLM 2",
description="Made By Akash Mondal - https://github.com/akash-mondal | GPT-4Vision Paper - https://cdn.openai.com/papers/GPTV_System_Card.pdf | PaLM2 Paper - https://arxiv.org/pdf/2305.10403.pdf "
)
iface.launch(debug=True)
|