Skip to content

Latest commit

ย 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

zhilinainovel

GitHub stars License: MIT Python Docker

AI ๅฐ่ฏดๅˆ›ไฝœๅŠฉๆ‰‹ - ๆ™บ่ƒฝๅˆ†ๆž ยท ้ฃŽๆ ผๅ…‹้š† ยท ่‡ชๅŠจๅŒ–ๅˆ›ไฝœ

็Šถๆ€๏ผšๆ ธๅฟƒๅŠŸ่ƒฝๅทฒๅฐฑ็ปช๏ผˆv0.2.0๏ผ‰

โœจ ็Žฐๅœจๅฏไปฅๅšไป€ไนˆ

Web UI๏ผˆๆŽจ่ๆ–ฐๆ‰‹๏ผ‰

cp .env.example .env
# ็ผ–่พ‘ .env ๅกซๅ…ฅ API Key
./start.sh web

API ๆœๅŠกๅ™จ๏ผˆไพ›ๅผ€ๅ‘่€…้›†ๆˆ๏ผ‰

cp .env.example .env
./start.sh api
# ่ฎฟ้—ฎ http://localhost:8080/docs ๆŸฅ็œ‹ API ๆ–‡ๆกฃ

Python ๆจกๅ—๏ผˆไพ›ไปฃ็ ่ฐƒ็”จ๏ผ‰

from src.generator.novel import NovelGenerator
from src.analyzer.gene import GeneAnalyzer
from src.database import save_outline, save_chapter, list_outlines

gen = NovelGenerator()
result = gen.generate_outline(genre="้ƒฝๅธ‚", theme="้€†่ขญ", main_char="ๅผ ๆ˜Ž", length="้•ฟ็ฏ‡")
print(result["outline"])

๐ŸŽฏ ้กน็›ฎ็›ฎๆ ‡

  1. ๅฎšๆœŸๆœ็ดข - ่‡ชๅŠจ้‡‡้›†ๅ„็ฑปๅฐ่ฏดๆŽ’่กŒๆฆœๆ•ฐๆฎ
  2. ๅˆ†ๆžไผ˜็ง€ๅŸบๅ›  - ่งฃๆž็ƒญ้—จๅฐ่ฏด็š„ๆˆๅŠŸ่ฆ็ด ๏ผˆไบบ่ฎพใ€่Š‚ๅฅใ€้‡‘ๅฅใ€็ˆฝ็‚น๏ผ‰
  3. ้ฃŽๆ ผๅ…‹้š† - ๅญฆไน ไธๅŒ้ข˜ๆ็š„ๅ†™ไฝœ้ฃŽๆ ผ๏ผŒๅฝขๆˆๅฏๅค็”จ็š„ๅŸบๅ› ๅบ“
  4. ่พ…ๅŠฉๅˆ›ไฝœ - ไธบ็”จๆˆทๆไพ›ๅˆ›ไฝœ็ตๆ„Ÿใ€็ด ๆใ€้‡‘ๅฅ

๐Ÿ“… ้กน็›ฎๅ‘จๆœŸ

้•ฟๆœŸๆผ”่ฟ›

๐Ÿ—๏ธ ็ณป็ปŸๆžถๆž„

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    zhilinainovel                        โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”‚
โ”‚  โ”‚  ๆ•ฐๆฎ้‡‡้›†ๅฑ‚  โ”‚  โ”‚  ๅˆ†ๆžๅผ•ๆ“Ž    โ”‚  โ”‚  ๅˆ›ไฝœๅผ•ๆ“Ž    โ”‚     โ”‚
โ”‚  โ”‚             โ”‚  โ”‚             โ”‚  โ”‚             โ”‚      โ”‚
โ”‚  โ”‚ ๆŽ’่กŒๆฆœๆŠ“ๅ–   โ”‚  โ”‚ ้ฃŽๆ ผๅŸบๅ› ๆๅ– โ”‚  โ”‚ ็ด ๆ็”Ÿๆˆ     โ”‚      โ”‚
โ”‚  โ”‚ ๅ†…ๅฎน่งฃๆž     โ”‚  โ”‚ ็ˆฝ็‚นๅˆ†ๆž     โ”‚  โ”‚ ๅฏน่ฏ็”Ÿๆˆ     โ”‚     โ”‚
โ”‚  โ”‚ ็ซ ่Š‚ๅ…ฅๅบ“     โ”‚  โ”‚ ไบบ่ฎพๆ‹†่งฃ     โ”‚  โ”‚ ๆƒ…่Š‚ๆž„ๅปบ     โ”‚     โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                      ๅŸบๅ› ๅบ“ (SQLite)                     โ”‚
โ”‚  โ”œโ”€โ”€ ้ข˜ๆๅŸบๅ› ๏ผˆ็Ž„ๅนป/้ƒฝๅธ‚/ๆ‚ฌ็–‘/็ง‘ๅนป...๏ผ‰                    โ”‚
โ”‚  โ”œโ”€โ”€ ้ฃŽๆ ผๅŸบๅ› ๏ผˆๆ–‡็ฌ”/่Š‚ๅฅ/ๆƒ…็ปชๆ›ฒ็บฟ๏ผ‰                        โ”‚
โ”‚  โ”œโ”€โ”€ ็ˆฝ็‚นๅŸบๅ› ๏ผˆๆ‰“่„ธ/้€†่ขญ/็”œๅฎ ...๏ผ‰                         โ”‚
โ”‚  โ””โ”€โ”€ ้‡‘ๅฅๅบ“                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“‚ ็›ฎๅฝ•็ป“ๆž„

zhilinainovel/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ crawler/          # ๆ•ฐๆฎ้‡‡้›†
โ”‚   โ”‚   โ”œโ”€โ”€ ranking.py    # ๆŽ’่กŒๆฆœๆŠ“ๅ–
โ”‚   โ”‚   โ””โ”€โ”€ parser.py     # ๅ†…ๅฎน่งฃๆž
โ”‚   โ”œโ”€โ”€ analyzer/         # ๅˆ†ๆžๅผ•ๆ“Ž
โ”‚   โ”‚   โ”œโ”€โ”€ gene.py       # ๅŸบๅ› ๆๅ–
โ”‚   โ”‚   โ”œโ”€โ”€ sentiment.py  # ๆƒ…็ปชๅˆ†ๆž
โ”‚   โ”‚   โ””โ”€โ”€ plot.py       # ๆƒ…่Š‚ๅˆ†ๆž
โ”‚   โ”œโ”€โ”€ generator/        # ๅˆ›ไฝœๅผ•ๆ“Ž
โ”‚   โ”‚   โ”œโ”€โ”€ story.py      # ๆ•…ไบ‹็”Ÿๆˆ
โ”‚   โ”‚   โ”œโ”€โ”€ dialogue.py   # ๅฏน่ฏ็”Ÿๆˆ
โ”‚   โ”‚   โ””โ”€โ”€ outline.py    # ๅคง็บฒ็”Ÿๆˆ
โ”‚   โ”œโ”€โ”€ database/         # ๅŸบๅ› ๅบ“
โ”‚   โ”‚   โ””โ”€โ”€ db.py
โ”‚   โ”œโ”€โ”€ scheduler/        # ๅฎšๆ—ถไปปๅŠก
โ”‚   โ”‚   โ””โ”€โ”€ cron.py
โ”‚   โ””โ”€โ”€ api/              # APIๆœๅŠก
โ”‚       โ””โ”€โ”€ main.py
โ”œโ”€โ”€ prompts/              # ๆ็คบ่ฏๆจกๆฟ
โ”‚   โ”œโ”€โ”€ analyze.md
โ”‚   โ”œโ”€โ”€ generate.md
โ”‚   โ””โ”€โ”€ gene.md
โ”œโ”€โ”€ templates/             # ๅฐ่ฏดๆจกๆฟ
โ”œโ”€โ”€ docker/
โ”‚   โ”œโ”€โ”€ Dockerfile
โ”‚   โ””โ”€โ”€ docker-compose.yml
โ””โ”€โ”€ README.md

๐Ÿ› ๏ธ ๆŠ€ๆœฏๆ ˆ

  • Python 3.11+
  • API: OpenAI / MiniMax
  • ๆ•ฐๆฎๅบ“: SQLite๏ผˆๆœฌๅœฐๅŸบๅ› ๅบ“๏ผ‰
  • Web: FastAPI
  • ๅฎšๆ—ถไปปๅŠก: APScheduler
  • ๆ•ฐๆฎ้‡‡้›†: requests + BeautifulSoup
  • Docker

๐Ÿ“ฆ ๅŠŸ่ƒฝๆจกๅ—

1. ๆ•ฐๆฎ้‡‡้›†ๆจกๅ—

  • ่ตท็‚นไธญๆ–‡็ฝ‘ๆŽ’่กŒๆฆœ
  • ็•ช่Œ„ๅฐ่ฏดๆŽ’่กŒๆฆœ
  • ไธƒ็Œซๅฐ่ฏดๆŽ’่กŒๆฆœ
  • ็ซ ่Š‚ๅ†…ๅฎน่งฃๆž

2. ๅˆ†ๆžๅผ•ๆ“Ž

  • ้ข˜ๆ่ฏ†ๅˆซ
  • ไบบ่ฎพๆๅ–๏ผˆไธป่ง’/้…่ง’ๆ€งๆ ผ๏ผ‰
  • ็ˆฝ็‚นๅˆ†ๆž๏ผˆๆ‰“่„ธ/้€†่ขญ/็”œๅฎ /ๆ‚ฌ็–‘...๏ผ‰
  • ๆƒ…็ปชๆ›ฒ็บฟๅˆ†ๆž
  • ้‡‘ๅฅๆๅ–

3. ้ฃŽๆ ผๅŸบๅ› ๅบ“

  • ็Ž„ๅนปๅŸบๅ› ๏ผšๅ‡็บงไฝ“็ณปใ€ๅŠŸๆณ•่ฎพๅฎšใ€ไธ–็•Œ่ง‚
  • ้ƒฝๅธ‚ๅŸบๅ› ๏ผš่Œๅœบใ€่ฑช้—จใ€็”œๅฎ 
  • ๆ‚ฌ็–‘ๅŸบๅ› ๏ผš็บฟ็ดขๅŸ‹่ฎพใ€ๆฐ›ๅ›ด่ฅ้€ 
  • ็ง‘ๅนปๅŸบๅ› ๏ผš่ฎพๅฎšไธฅ่ฐจใ€ๆƒณ่ฑกๅŠ›

4. ๅˆ›ไฝœๅผ•ๆ“Ž

  • ๅคง็บฒ็”Ÿๆˆ
  • ็ซ ่Š‚็ปญๅ†™
  • ๅฏน่ฏๆถฆ่‰ฒ
  • ็ด ๆๆŽจ่

๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹

# 1. ๅ…‹้š†้กน็›ฎ
git clone https://github.com/dingzhilin1990/zhilinainovel.git
cd zhilinainovel

# 2. ๅฎ‰่ฃ…ไพ่ต–
pip install -r requirements.txt

# 3. ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cp .env.example .env
# ็ผ–่พ‘ .env ๅกซๅ…ฅ API Key

# 4. ๅฏๅŠจๆœๅŠก
python src/api/main.py

# 5. Docker ้ƒจ็ฝฒ
docker-compose up -d

โš™๏ธ ็Žฏๅขƒๅ˜้‡

# .env
OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=https://api.minimax.chat/v1
MODEL=MiniMax-M2.5

# ๅฏ้€‰้…็ฝฎ
DATABASE_PATH=./data/genes.db
LOG_LEVEL=INFO

๐Ÿ“ก API ๆŽฅๅฃ

ๆŽฅๅฃ ๆ–นๆณ• ่ฏดๆ˜Ž
/api/analyze POST ๅˆ†ๆžๅฐ่ฏดๅ†…ๅฎน๏ผŒๆๅ–ๅŸบๅ› 
/api/generate/story POST ็”Ÿๆˆๆ•…ไบ‹ๅคง็บฒ
/api/generate/chapter POST ็ปญๅ†™็ซ ่Š‚
/api/genes GET ่Žทๅ–ๅŸบๅ› ๅบ“
/api/genes/:type GET ่Žทๅ–็‰นๅฎš็ฑปๅž‹ๅŸบๅ› 

ๅŠŸ่ƒฝ

  • ๐Ÿงฌ ๅ‘ๅธƒๅŸบๅ›  - ๅฐ†ๅˆ†ๆžๅ‡บ็š„ไผ˜่ดจๅŸบๅ› ๅ‘ๅธƒๅˆฐๅธ‚ๅœบ
  • ๐Ÿ“ฅ ่Žทๅ–ๅŸบๅ›  - ไปŽๅธ‚ๅœบ่Žทๅ–ๅ…ถไป–ไฝœ่€…็š„ไผ˜่ดจๅŸบๅ› 
  • ๐Ÿ’ฐ ่ตšๅ–็งฏๅˆ† - ๅŸบๅ› ่ขซๅค็”จๅฏ่Žทๅพ—็งฏๅˆ†ๅฅ–ๅŠฑ
  • ๐Ÿ”ฅ ้ข†ๅ–่ต้‡‘ - ๅฎŒๆˆๅ†™ไฝœ็›ธๅ…ณไปปๅŠก่Žทๅพ—ๅฅ–ๅŠฑ

ๅ‘ๅธƒๅฐ่ฏดๅŸบๅ› 

gene = create_novel_gene("้ƒฝๅธ‚", ["่Œๅœบ", "็”œๅฎ "], "็”Ÿๆดปๆต") capsule = create_novel_capsule("้ƒฝๅธ‚", "่ฏทๅ†™ไธ€ไธช้ƒฝๅธ‚็ˆฑๆƒ…ๆ•…ไบ‹...") result = client.publish_bundle(gene, capsule, evolution_event)

่Žทๅ–ไผ˜่ดจๅŸบๅ› 

assets = client.fetch_assets("Capsule", 10)


## ๐Ÿ” ๅฎ‰ๅ…จๆณจๆ„

- API Key ้œ€ๅฆฅๅ–„ไฟ็ฎก๏ผŒๅˆ‡ๅ‹ฟๆไบคๅˆฐไป“ๅบ“
- ็ˆฌ่™ซ้œ€้ตๅฎˆ็›ฎๆ ‡็ฝ‘็ซ™ robots.txt
- ๅฐŠ้‡็‰ˆๆƒ๏ผŒไป…ไพ›ๅญฆไน ไบคๆตไฝฟ็”จ

About

๐Ÿ“– ๆ™บๆž—AIๅฐ่ฏด็”Ÿๆˆ็ณป็ปŸ โ€” ๅŸบไบŽ MiniMax ๅคงๆจกๅž‹็š„ๅคšๅœบๆ™ฏ AI ๅฐ่ฏดๅˆ›ไฝœๅนณๅฐ๏ผŒๆ”ฏๆŒ Docker ไธ€้”ฎ้ƒจ็ฝฒ

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages