Token
还没有人认领这个 Issue。
评估
调研方向
该 issue 包含一段使用 GigaChat API 的粘贴 Python 示例,但没有指明任何 gemoji 文件、测试或请求的更改。首先确认这是否是在预期的仓库中提交的,并要求提供具体范围;在报告者说明应更改什么之前,无法定义完成标准。
由索引模型根据 Issue 内容生成。
描述
import requests
import json
def get_token():
url = "https://ngw.devices.sberbank.ru:9443/api/v2/oauth"
payload = 'scope=GIGACHAT_API_PERS'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'RqUID': '<ВАШ Client Secret>',
'Authorization': 'Basic <ВАШИ Данные Авторизации>'
}
response = requests.post(url, headers=headers, data=payload, verify='chain.pem')
return response.json()
Сохраните полученный токен
token = get_token()['access_token']
def get_answer(text, access_token):
url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"
payload = json.dumps({
"model": "GigaChat", # или "GigaChat-Pro" (50k бесплатных токенов)
"messages": [
{
"role": "user",
"content": text # ваш запрос
}
],
"temperature": 1, # креативность ответа (0–1)
"top_p": 0.1, # фильтрация токенов
"n": 1, # число вариантов ответа
"stream": False, # потоковая передача
"max_tokens": 512, # макс. длина ответа
"repetition_penalty": 1 # штраф за повторы
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {access_token}'
}
response = requests.post(url, headers=headers, data=payload, verify='chain.pem')
return response.json()
Пример запроса: сгенерировать функцию на Python
request = "Напиши функцию на Python, которая вычисляет среднее арифметическое списка чисел."
response = get_answer(request, token)
print(response['choices'][0]['message']['content'])
def get_img_info(text, access_token):
url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"
payload = json.dumps({
"model": "GigaChat",
"messages": [
{
"role": "system",
"content": "Ты — Василий Кандинский"
},
{
"role": "user",
"content": text
}
],
"function_call": "auto"
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': f'Bearer {access_token}'
}
response = requests.post(url, headers=headers, data=payload, verify='chain.pem')
return response.json()
def download_image(fileid, access_token):
url = f"https://gigachat.devices.sberbank.ru/api/v1/files/{fileid}/content"
headers = {
'Accept': 'application/jpg',
'Authorization': f'Bearer {access_token}'
}
response = requests.get(url, headers=headers, verify='chain.pem')
return response.content
Пример: сгенерировать изображение
prompt = "Абстрактная композиция в стиле Кандинского: круги, линии, яркие цвета."
img_response = get_img_info(prompt, token)
Извлекаем ID изображения из ответа
import re
from bs4 import BeautifulSoup
content = img_response['choices'][0]['message']['content']
img_tag = re.findall(r'<img.*?>', content)[0]
fileid = BeautifulSoup(img_tag, 'html.parser').find('img')['src']
Сохраняем изображение
with open("generated_image.png", "wb") as f:
f.write(download_image(fileid, token))
{
"choices": [
{
"message": {
"content": "Текст ответа или HTML с ",
"role": "assistant"
},
"index": 0,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 23,
"completion_tokens": 128,
"total_tokens": 151
}
}
- 主要语言
- Ruby
- 星标
- 4.5k
- 派生
- 804
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
github/gemoji 的其他 Issue
-
QR- vpn未关闭
难度 4/5 3-5 天 新手友好度 20/100
-
难度 5/5 一周以上 新手友好度 10/100
-
难度 5/5 一周以上 新手友好度 20/100
-
难度 2/5 1-3 小时 新手友好度 25/100
-
难度 5/5 一周以上 新手友好度 10/100
相似的 Issue
-
难度 2/5 1 小时以内 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
Mend: dependency security vulnerability
难度 2/5 1-3 小时 新手友好度 68/100
维护者通常 1 天内回复
-
Mend: dependency security vulnerability
难度 2/5 1-3 小时 新手友好度 65/100
-
Mend: dependency security vulnerability
难度 1/5 1 小时以内 新手友好度 72/100
ManageIQ/manageiq-rpm_build#737 ·