| from g4f import Provider,ChatCompletion |
| import g4f |
|
|
| |
| provider_auth_settings = { |
| 'Bard':{ |
| 'cookie':"" |
| } |
| } |
|
|
|
|
| def send_chat(selected_model, selected_provider, context_history): |
| if selected_provider is not None: |
| prov = getattr(g4f.Provider, selected_provider) |
| prov.working = True |
| auth = None |
| if prov.needs_auth: |
| auth=provider_auth_settings['Bard'] |
| else: |
| auth=None |
| prov=None |
|
|
| print(f'Using Model {selected_model} provided by {selected_provider}') |
|
|
| try: |
| result = g4f.ChatCompletion.create(model=selected_model, stream=False, provider=prov, |
| messages=context_history,auth=auth) |
| context_history.append({'role': 'assistant', 'content': str(result)}) |
| except Exception as e: |
| print(e) |
| result = '' |
| context_history = [] |
| return result, context_history |
|
|
|
|
|
|
| def get_all_models(): |
| allmodels = [] |
| for m in g4f.models.ModelUtils.convert: |
| allmodels.append(m) |
| allmodels.sort() |
| return allmodels |
|
|
| def get_providers_for_model(m): |
| providers = [] |
| model = g4f.models.ModelUtils.convert[m] |
| if model.best_provider is not None: |
| if hasattr(model.best_provider, 'providers'): |
| for p in model.best_provider.providers: |
| providers.append(p.__name__) |
| else: |
| prov = model.best_provider |
| providers.append(prov.__name__) |
| |
| |
| |
|
|
| providers.sort() |
| return providers |
| |
| def get_provider_info(provider): |
| if provider is None: |
| return '' |
| |
| prov = getattr(g4f.Provider, provider) |
| auth_str = 'π' if prov.needs_auth else 'π' |
| working = 'β
' if prov.working else 'β' |
| info = f'## {prov.url} {working} {auth_str}\n{prov.params}' |
| return info |
|
|
|
|
|
|
|
|
|
|
|
|