-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
openai老板(openai老板是馬斯克)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于openai老板的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內免費在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
本文目錄:
一、馬斯克躋身全球第四大富豪,旗下都有哪些公司?
1、SpaceX
2020 年 5 月 30 日,有史以來第一次,一家私人商業(yè)航空航天公司將宇航員送入地球太空軌道。將 NASA 宇航員 Robert Behnken 和 Douglas Hurley 送入太空的火箭就是馬斯克旗下的 spaceX 的獵鷹 9 號,搭載宇航員的"龍"飛船也是出自 spaceX。這是馬斯克火星殖民野心的一部分。
2、The Boring Company
該公司的最終目標是在主要城市建立隧道網絡,以緩解地面交通。該公司在其網站上辯稱,隧道是城市的一個很好的解決方案。
3、Neuralink
你能想象有一天,電影《黑客帝國》中的腦接口儀器會實現,馬斯克曾宣稱,腦鏈接口可以讓人的大腦類似電腦硬件一樣,擴展人的神經系統。
4、OpenAI
OpenAI 是特斯拉自動駕駛系統,以及腦鏈接口的擴展。
5、特斯拉
特斯拉甚至超過了豐田,成為市值最大的汽車制造公司,也是新世紀以來成長最快的制造業(yè)公司;也許特斯拉在中國上海、德國柏林等都已經有新的超級工廠的規(guī)劃,旗下電動汽車也成為了世界各地的明星汽車產品。
二、喜當爹!馬斯克劈腿女下屬,又生雙胞胎,女方背景曝光
根據知情人爆料,全球首富、特斯拉執(zhí)行長馬斯克(Elon Musk)被爆與36歲的女下屬企業(yè)高層齊莉絲(Shivon Zilis)有染,并且 對方去年還為他產下了一對雙胞胎 !夸張的是,這對雙胞胎出生前的幾個月,馬斯克剛剛才和前女友 萊姆絲(Grimes) 通過代孕生下他們的第二個孩子,也就是說,馬斯克到目前為止,一共有9個已知的孩子了!難道老外也流行“ 龍生九子 ”?!
而且 雙胞胎的生母也遭到起底!36歲的齊莉絲外型亮眼、褐發(fā)藍眼,生于加拿大,畢業(yè)于耶魯大學,還曾入選了2015年《 福布斯 》雜志「30歲以下精英榜」;據領英(LinkedIn)顯示,齊莉絲曾在馬斯克旗下多家公司擔任高階職務,也曾擔任特斯拉的人工智慧總監(jiān),不過與老板馬斯克的淵源,起于非營利的人工智慧研究組織OpenAI,并且成為董事會成員,目前同時任職于馬斯克聯合創(chuàng)辦的腦植晶片公司Neuralink營運總監(jiān)。
馬斯克現在已知擁有9個子女,馬斯克與首任妻子、加拿大作家詹妮弗(Jennifer Justine Wilson)擁有6名子女,其中1名小孩不幸夭折,與第二任妻子、英國女演員妲露拉(Talulah Riley)二結二離,但都沒生子。
馬斯克與強尼戴普(Johnny Depp)前妻安柏赫德(Amber Heard)短暫交往,也無子嗣,之后與加拿大歌手格萊姆斯(Grimes)交往,2020年生下一個兒子,2021年12月又透過代孕生下了一個女兒,女兒出生后,馬斯克和34歲的格萊姆斯正式宣布分手,但也意味著,馬斯克在和格里姆斯交往期間與自己的女下屬有染并生下了孩子。
不得不說,馬斯克的人生真是傳奇??! 馬斯克一直提倡多生孩子, 以后是不是每個孩子都可以繼承其中一家呢? 不過,雖然馬斯克現在是9個孩子的父親;最近他的第一個孩子卻宣布和這位首富父親斷絕關系。 這樣的人生,寶寶們羨慕了嗎?
三、基于wechaty的定時消息推送(可以哄女朋友)、智能聊天和私人助理
---
title: "基于wechaty的定時消息推送(可以哄女朋友)、智能聊天和私人助理"
author: jasonlovesharon
email: 54027901@163.com
tags:
- nodejs
- wechaty
- wechaty-puppet-padplus
---
## 前言
- 自從2017年微信web端API限制以后,itchat等一大批bot歇菜了,一直都在找一款合適的替品
- 目前來看,大部分都是針對windows微信客戶端,基于HOOK的dll注入實現對微信的操控,有一定的封號風險,只能用固定的版本,部署在linux服務器端比較困難,意味著只能一直開著電- -wechaty,支持IPAD,,MAC等多種協議,不用去調用WEB網頁API,并且可以布署在服務器,滿足我所有需求。[項目地址](https://github.com/wechaty/wechaty)
- 看完官方文檔后([token官方介紹](https://github.com/juzibot/welcome/wiki/everything-about-wechaty)), 發(fā)現需要申請Token,并且python版本的Token是要付費的,但沒有學過typescript,有點想放棄,瀏覽了一下ding-dong-bot的Example,似乎可以看懂,那就邊學習邊摸索吧。(ps:后來偶然見發(fā)現了另一篇可以使用將token轉變一下實現python版wechaty,但此時已經基本用TS寫完了,如果想用Python等其他語言可以參考[官方文檔](https://github.com/wechaty/wechaty/issues/1985)。)
## 具備功能
### 1. 關鍵詞觸發(fā)功能
1.1 關鍵詞"介紹一下自己"、 "自我介紹一下"、 "你是誰"觸發(fā)自我介紹
1.2 地名+天氣 觸發(fā)天氣查詢
### 2. 智能聊天功能
2.1群外直接聊天
2.2群內成員皆有聊天權限“@bot” 聊天
2.3不會回復 @其他群成員 的消息
## 實現過程
Talk is cheap,show your code
### 1. 主程序
```typescript
import { Wechaty, Message, UrlLink,log,} from 'wechaty'
import { PuppetPadplus } from 'wechaty-puppet-padplus'
import { EventLogger, QRCodeTerminal } from 'wechaty-plugin-contrib'
import { WechatyWeixinOpenAI, } from 'wechaty-weixin-openai'
import { setSchedule, } from './schedule/index'
import { getDay, formatDate,} from './utils/index'
import { getOne, getTXweather, getSweetWord,} from './superagent/index'
// 創(chuàng)建微信每日說定時任務
async function initDay() {
console.log(`已經設定每日說任務`);
setSchedule('0 40 0 * * *', async () => {
console.log('你的貼心小助理開始工作啦!')
let logMsg
let contact =
(await bot.Contact.find({ name: 'Jason' })) ||
(await bot.Contact.find({ alias: 'boss' })) // 獲取你要發(fā)送的聯系人
let one = await getOne() //獲取每日一句
let weather = await getTXweather() //獲取天氣信息
let today = await formatDate(new Date()) //獲取今天的日期
let memorialDay = getDay('2009/08/07') //獲取紀念日天數
let sweetWord = await getSweetWord()
let str = `${today}\n我們相愛的第${memorialDay}天\n\n元氣滿滿的一天開始啦,要開心噢^_^\n\n今日天氣\n${weather.weatherTips}\n${
weather.todayWeather
}\n每日一句:<br>${one}<br><br>每日土味情話:<br>${sweetWord}<br><br>————————最愛你的我`
try {
logMsg = str
await delay(2000)
await contact.say(str) // 發(fā)送消息
} catch (e) {
logMsg = e.message
}
console.log(logMsg)
})
}
const padplusToken = '你自己的TOKEN'
const puppet = new PuppetPadplus({
token: padplusToken,
})
const bot = new Wechaty({
name: 'jason-assistant',
puppet,
})
bot.use(EventLogger())
bot.use(QRCodeTerminal({ small: true }))
//在Wechaty里面引用和配置插件
const openAIToken = '你自己的機器人TOKEN' //需要在微信對話開放平臺申請,點擊機器人設置》綁定應用》在頁面最下方即可看到
const openAIEncodingAESKey = '你自己的EncodingAESKey' //微信對話開放平臺申請,點擊機器人設置》綁定應用》在頁面最下方即可看到
const preAnswerHook = async (message: Message) => {
const isCommonMaterial = await processCommonMaterial(message)
if (isCommonMaterial) {
return false
}
}
/**
* 獲得boss聯系名片,當機器人找不到問題答案時,將BOSS的名片推送過去
*/
const getBoss = async () => {
const contact = bot.Contact.load('boss微信ID')
await contact.sync()
return contact
}
const noAnswerHook = async (message: Message) => {
const room = message.room()
const from = message.from()
if (!room) {
const boss = await getBoss()
await message.say('你的問題我不會回答,你可以聯系我的老板')
await message.say(boss)
return;
}
const members = await room.memberAll()
const bossInRoom = members.find(m => m.id === 'boss微信id')
if (bossInRoom) {
await room.say`${bossInRoom},${from}問的問題我不知道,你幫我回答一下吧。`
} else {
const boss = await getBoss()
await room.say`${from},你的問題我不會回答,你可以聯系我的老板`
await room.say(boss)
}
}
/**
* 用wechaty-weixin-openai可以實現快速接入微信對話平臺
*/
bot.use(WechatyWeixinOpenAI({
token: openAIToken,
encodingAESKey: openAIEncodingAESKey,
noAnswerHook, //在機器人無法回答時,推送設定的回答
preAnswerHook, //判斷是否是關鍵字,如果是關鍵字,觸發(fā)關鍵字回答而不接入微信開放平臺
}))
const processCommonMaterial = async (message: Message) => {
const room = message.room()
// const from = message.from()
const mentionSelf = await message.mentionSelf()
const text = message.text()
let intro = 'Jason,愛好廣泛,廣交天下豪杰,上得了九天摘月,下得了五洋捉鱉,俗話說的好,不會烘培的飛行員不是好戶外人,不會玩音樂的水族愛好者不是好廚師,不會畫畫的極限愛好者不是好程序員,這就是我的老板Jason,吼吼吼~~'
if (room !== null && mentionSelf) {
if (/jason|你老板|你上司/.test(text)) {
await room.say(intro)
await room.say(new UrlLink({
description: '戶外賤客 & Fighting,fighting,finghting and finghting,讀萬卷書,行萬里路,學習AND吃,喝,玩,樂',
thumbnailUrl: '',
title: 'Jason',
url: 'http://mp.weixin.qq.com/s?__biz=MzkxODE3MjAyNQ==&mid=100000001&idx=1&sn=d05de320c6fbe6c9f9149a09a4da81ec&chksm=41b4391776c3b001c143ac2c284c58ac8b08de41d95cab682aa5a07022e32096567f5780d5be#rd',
}))
return true
} else if (/戶外賤客/.test(text)) {
await room.say(new UrlLink({
description: '戶外賤客 & Fighting,fighting,finghting and finghting,讀萬卷書,行萬里路,學習AND吃,喝,玩,樂',
thumbnailUrl: '',
title: 'Jason',
url: 'http://mp.weixin.qq.com/s?__biz=MzkxODE3MjAyNQ==&mid=100000001&idx=1&sn=d05de320c6fbe6c9f9149a09a4da81ec&chksm=41b4391776c3b001c143ac2c284c58ac8b08de41d95cab682aa5a07022e32096567f5780d5be#rd',
}))
return true
}
}
return false
}
// 登錄
async function onLogin(user) {
console.log(`貼心小助理${user}登錄了`)
// 登陸后創(chuàng)建定時任務
await initDay()
}
bot.on('login', onLogin)
bot.start()
.then(() => log.info('StarterBot', 'Starter Bot Started.'))
.catch(e => log.error('StarterBot', e))
```
### 2.創(chuàng)建schedule定時函數
```typescript
import { schedule } from 'node-schedule'
// date 參數
//其他規(guī)則見 https://www.npmjs.com/package/node-schedule
// 規(guī)則參數講解 *代表通配符
//
// * * * * * *
// ┬ ┬ ┬ ┬ ┬ ┬
// │ │ │ │ │ |
// │ │ │ │ │ └ day of week (0 - 7) (0 or 7 is Sun)
// │ │ │ │ └───── month (1 - 12)
// │ │ │ └────────── day of month (1 - 31)
// │ │ └─────────────── hour (0 - 23)
// │ └──────────────────── minute (0 - 59)
// └───────────────────────── second (0 - 59, OPTIONAL)
// 每分鐘的第30秒觸發(fā): '30 * * * * *'
//
// 每小時的1分30秒觸發(fā) :'30 1 * * * *'
//
// 每天的凌晨1點1分30秒觸發(fā) :'30 1 1 * * *'
//
// 每月的1日1點1分30秒觸發(fā) :'30 1 1 1 * *'
//
// 每周1的1點1分30秒觸發(fā) :'30 1 1 * * 1'
function setSchedule(date,callback) {
schedule.scheduleJob(date, callback)
}
export function setSchedule()
```
### 3.創(chuàng)建幾個功能函數,爬取ONE網站的每日一句,提取通過API獲取的消息
```typescript
import * as cheerio from 'cheerio'
import * as superagent from 'superagent'
const ONE = 'http://wufazhuce.com/' // ONE的web版網站
const TXHOST = 'http://api.tianapi.com/txapi/' // 天行host
function req(url,method, params, data, cookies) {
return new Promise(function (resolve,reject) {
superagent(method, url)
.query(params)
.send(data)
.set('Content-Type','application/x-www-form-urlencoded')
.end(function (err, response) {
if (err) {
reject(err)
}
resolve(response)
})
})
}
async function getOne() {
// 獲取每日一句
try {
let res = await req(ONE, 'GET')
let $ = cheerio.load(res.text)
let todayOneList = $('#carousel-one .carousel-inner .item')
let todayOne = $(todayOneList[0])
.find('.fp-one-cita')
.text()
.replace(/(^\s*)|(\s*$)/g, '')
return todayOne
} catch (err) {
console.log('錯誤', err)
return err
}
}
async function getTXweather() {
// 獲取天行天氣
let url = TXHOST + 'tianqi/'
try {
let res = await req(url, 'GET', {
key: '你自己的KEY',//需要自己去天行申請,地址https://www.tianapi.com/signup.html?source=474284281
city: 'Arlington'
})
let content = JSON.parse(res.text)
if (content.code === 200) {
let todayInfo = content.newslist[0]
let obj = {
weatherTips: todayInfo.tips,
todayWeather:`阿林頓今天${todayInfo.weather}\n溫度:${todayInfo.lowest}/${todayInfo.highest}
\n${todayInfo.wind}風: ${todayInfo.windspeed}\n紫外線指數:${todayInfo.uv_index}\n濕度
${todayInfo.humidity}`
};
console.log('獲取天行天氣成功', obj)
return obj
} else {
console.log('獲取接口失敗', content.code)
}
} catch (err) {
console.log('獲取接口失敗', err)
}
}
async function getSweetWord() {
// 獲取土味情話
let url = TXHOST + 'saylove/'
try {
let res = await req(url, 'GET', { key: '' })
let content = JSON.parse(res.text)
if (content.code === 200) {
let sweet = content.newslist[0].content
let str = sweet.replace('\r\n', '<br>')
return str
} else {
console.log('獲取接口失敗', content.msg)
}
} catch (err) {
console.log('獲取接口失敗', err)
}
}
export { getOne, getTXweather, getSweetWord, }
```
### 計算距離某日(生日,結婚紀念日等)還有多少天
```typescript
function getDay(date) {
var date2 = new Date()
var date1 = new Date(date)
var iDays = parseInt(
Math.abs(date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24
)
return iDays
}
function formatDate(date) {
var tempDate = new Date(date)
var year = tempDate.getFullYear()
var month = tempDate.getMonth() + 1
var day = tempDate.getDate()
var hour = tempDate.getHours()
var min = tempDate.getMinutes()
var second = tempDate.getSeconds()
var week = tempDate.getDay()
var str = ''
if (week === 0) {
str = '星期日'
} else if (week === 1) {
str = '星期一'
} else if (week === 2) {
str = '星期二'
} else if (week === 3) {
str = '星期三'
} else if (week === 4) {
str = '星期四'
} else if (week === 5) {
str = '星期五'
} else if (week === 6) {
str = '星期六'
}
if (hour < 10) {
hour = '0' + hour
}
if (min < 10) {
min = '0' + min
}
if (second < 10) {
second = '0' + second
}
return year + '-' + month + '-' + day + '日 ' + hour + ':' + min + ' ' + str
}
export { getDay, formatDate }
```
![關鍵字觸發(fā)消息](https://wechaty.js.org/assets/2020/daily-message-and-chatbot/keyword-push.png)
![無法回答推送名片](https://wechaty.js.org/assets/2020/daily-message-and-chatbot/push-contact.png)
![定時推送消息](https://wechaty.js.org/assets/2020/daily-message-and-chatbot/daily-message.png)
![智能聊天](https://wechaty.js.org/assets/2020/daily-message-and-chatbot/talk-to-bot.png)
## 后記
到此已經實現了私人人助理和定時推送消息的功能([項目地址](https://github.com/jasonlovesharon/my_bot)),由于對Typescript不熟,很多功能都是借鑒很多大神的輪子實現的,還是對Python熟悉點,下步準備用Python來實現以上功能,并進一步拓展更多有趣的功能。
四、求職時企業(yè)只要單身是否合理?
不合理,公司在求職時只接受單身人士是不合理的。 這種做法可能會違反反歧視法,也不符合工作場所普遍接受的平等和非歧視原則。
在許多國家/地區(qū),根據求職者的婚姻狀況、家庭狀況或任何其他與其工作能力無關的個人特征歧視求職者是違法的。 這種歧視可以有多種形式,包括:
1.歧視性的雇傭行為 2.不平等的報酬 3.不利的工作條件。
歧視性的招聘做法,如只接受單身人士,也會對工作場所的多樣性和包容性以及公司吸引和留住最優(yōu)秀人才的能力產生負面影響。 重視和尊重多樣性和包容性的工作場所更有可能具有創(chuàng)新性、生產力和成功性。
簡而言之,公司在求職時只接受單身人士是不合理的,因為這可能違反反歧視法,并對多元化、包容性和公司的成功產生負面影響。
此外,值得注意的是,一個人的婚姻狀況或家庭狀況會對他們的個人和財務狀況產生重大影響。 例如,已婚或有孩子的人可能有額外的責任和經濟義務,影響他們的工作與生活平衡。 但是,不應將這些因素用作招聘過程或工作場所歧視的依據。
相反,公司應該專注于聘用最適合這份工作的人選,而不考慮他們的婚姻狀況或家庭狀況。 這需要關注以績效為基礎的招聘實踐,例如根據求職者的資歷、經驗和執(zhí)行工作的能力來評估求職者。 公司還可以通過提供靈活的工作安排和其他福利來支持員工,幫助員工平衡工作和個人生活。
綜上所述,公司在應聘時只接受單身人士是不合理的。 這種做法可能違反反歧視法,對工作場所的多樣性和包容性產生負面影響,并損害員工及其家人的福祉。 公司應重點聘用最適合該職位的人選,無論其婚姻狀況或家庭狀況如何,并提供支持和福利,幫助員工平衡工作和個人生活。
另外這樣做違反《勞動法》嗎?
是的,在許多國家/地區(qū),根據婚姻狀況歧視求職者是違反勞動法的。 此類歧視可被視為非法就業(yè)歧視的一種形式,受影響的個人可能會受到法律處罰和賠償。
在許多國家,同工同酬法、民權法和就業(yè)年齡歧視法等法律禁止就業(yè)歧視。 這些法律普遍禁止基于各種個人特征的歧視,包括種族、膚色、國籍、性別、年齡、宗教和婚姻狀況。
雇主了解這些法律并確保他們的招聘行為符合法律是很重要的。 違反反歧視法的雇主可能面臨嚴重的法律處罰,包括罰款、受影響個人的賠償以及名譽受損。
總之,在許多國家/地區(qū),基于婚姻狀況歧視求職者是違反勞動法的。 雇主應了解這些法律,并確保其招聘行為符合法律規(guī)定,以避免受到法律處罰,并保護求職者和雇員的權利。
以上就是關于openai老板相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
openal創(chuàng)始人(open的創(chuàng)始人是誰)
openai和chatGPT什么關系(openai和chatGPT什么關系)