key和openai
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
import os import openai from openai import OpenAI, AzureOpenAI from selenium.webdriver.chrome.service import Service import json import requests from selenium import webdriver from selenium.webdriver.common.by import By from dl_dbutil import insert_db_with_sql, select_db from datetime import datetime import ast
def chat_with_gpt(input_text, model="GPT-3"):
if model == "GPT-3":
openai.api_base = "https://datalearner.openai.azure.com/"
openai.api_version = "2023-07-01-preview"
openai.api_key = "6a4212a4cd854071963b5a1526697b7e"
engine = "datalearner_gpt_35"
elif model == "GPT-35-Instruct":
openai.api_base = "https://datalearner.openai.azure.com/"
openai.api_version = "2023-07-01-preview"
openai.api_key = "6a4212a4cd854071963b5a1526697b7e"
engine = "DataLearner-GPT-35-Instruct"
elif model == "GPT-4-Turbo":
openai = AzureOpenAI(
api_key="59a2d85d52d848d7ad8ceb52a4fb286c",
api_version="2023-07-01-preview",
azure_endpoint ="https://datalearner-gpt4.openai.azure.com/"
)
engine = "GPT-4-Turbo"
elif model == "GPT-4":
openai.api_base = "https://datalearner-gpt4.openai.azure.com/"
openai.api_version = "2023-08-01-preview"
openai.api_key = "59a2d85d52d848d7ad8ceb52a4fb286c"
engine = "GPT-4"
elif model == "GPT-4-0314":
response = json.loads(requests.post(
url="https://openrouter.ai/api/v1/chat/completions",
headers={
"Authorization": "Bearer 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",
"HTTP-Referer": "http://localhost:3000", # To identify your app. Can be set to e.g. http://localhost:3000 for testing
"X-Title": "datalearner", # Optional. Shows on openrouter.ai
},
data=json.dumps({
"model": "openai/gpt-4-0314", # Optional
"messages": [
{
"role": "user",
"content": f"{input_text}"
}
]
})
).content)
return response
response = openai.chat.completions.create(
model=engine,
messages=[
{
"role": "user",
"content": f"{input_text}"
}
],
temperature=0.45,
max_tokens=4096,
top_p=0.95,
frequency_penalty=0,
presence_penalty=0,
stop=None)
return response
def login_dl(_browser):
# 打开某个页面
_browser.get('https://www.datalearner.com/signin')
# 查找按钮并点击
# 这里是一个简单的例子,它会查找页面上的第一个按钮并点击它。
# 实际上,您可能需要使用更具体的选择器,例如通过ID、类名或其他属性来定位特定按钮。
# 在ID为username的input中输入用户名
username_input = _browser.find_element(By.ID, "username")
username_input.send_keys("小木")
# 在ID为password的input中输入密码
password_input = _browser.find_element(By.ID, "password")
password_input.send_keys("123456")
submit_button = _browser.find_element(By.CSS_SELECTOR, "button[type='submit']")
submit_button.click()
def update_all_blogs(_browser):
_browser.get('https://www.datalearner.com/admin/llm-tech-blogs')
links = _browser.find_elements(By.CLASS_NAME, "blog-modify-button")
# 获取所有超链接地址
hrefs = [link.get_attribute("href") for link in links]
# 打印所有超链接地址
for href in hrefs:
_browser.get(href)
submit_button = _browser.find_element(By.ID, "pub-blog-button")
submit_button.click()
def update_blog(_browser, blog_id): _browser.get(f"https://www.datalearner.com/admin/llm-tech-blogs/modify/{blog_id}") submit_button = _browser.find_element(By.ID, "pub-blog-button") submit_button.click()
def get_res_from_gpt(input_prompt, user_input):
# 路径到你的WebDriver(这里是ChromeDriver的例子)
driver_path = 'F:\\OneDrive\\Programs\\chromedriver.exe'
if not os.path.exists(driver_path):
driver_path = 'D:\\OneDrive\\Programs\\chromedriver.exe'
service = Service(driver_path)
browser = webdriver.Chrome(service=service)
login_dl(browser)
res = chat_with_gpt(input_prompt.format(user_input), model="GPT-4-Turbo")
data = res.choices[0].message.content.encode('utf-8').decode('utf-8')
if data.startswith("```json"):
data = data[7:-3]
data = ast.literal_eval(data)
insert_blog = """
INSERT INTO LLM_TECH_BLOG(BLOG_CODE, BLOG_TITLE, BLOG_TAGS, BLOG_ABSTRACT, PUBLISH_TIME, UPDATE_TIME)
VALUES(%s, %s, %s, %s, %s, %s)
"""
param = (data["title_for_path"], data["title"], ','.join(
data["tags"]), data["abstract"], datetime.now(), datetime.now())
blog_id = insert_db_with_sql(insert_blog, param)
if data["blog_content"].startswith("MD:"):
data["blog_content"] = data["blog_content"][3:]
insert_blog_content = """
INSERT INTO LLM_TECH_BLOG_CONTENT(BLOG_ID, BLOG_CONTENT_MD)
VALUES(%s, %s)
"""
param = (int(blog_id), data["blog_content"])
insert_db_with_sql(insert_blog_content, param)
update_blog(browser, blog_id)
browser.close()
