Skip to content

Commit

Permalink
Merge pull request #151 from dai-motoki/issue-139-add-mygrimoire-to-g…
Browse files Browse the repository at this point in the history
…itignore

Issue 139 add mygrimoire to gitignore
  • Loading branch information
dai-motoki authored Jul 2, 2024
2 parents 7a4578a + 0218d8b commit ccd78cb
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 11 deletions.
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -162,10 +162,14 @@ cython_debug/
.DS_Store
generated/*
requirements/*
requirements2/*
gomi/*
past_md_files/*

zoltraak-dev/
assets/videos/480p15/partial_movie_files/

SourceSageAssets
SourceSageAssets

mygrimoire/*
!mygrimoire/
4 changes: 4 additions & 0 deletions pypi_update.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# pip install wheel
python setup.py sdist bdist_wheel
twine upload dist/grimo-1.2.6*
# git add . && git commit -m "Release v1.2.6" && git push && git tag v1.2.6 && git push --tags
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

setup(
name="zoltraak",
version="0.1.29",
version="0.1.31",
packages=find_packages(),
# package_dir={'': '.'}, # ここでベースディレクトリを指定
install_requires=[
Expand Down
13 changes: 11 additions & 2 deletions zoltraak/gencode.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import subprocess
import zoltraak
import zoltraak.llms.claude as claude
import zoltraak.llms.gemini as gemini
from zoltraak.utils.prompt_import import load_prompt
from zoltraak.llms.claude import generate_response
class TargetCodeGenerator:
Expand Down Expand Up @@ -97,7 +98,7 @@ def load_prompt_and_generate_code(self, create_domain_grimoire, variables):
プロンプトの読み込みとコード生成を行うメソッド
"""
prompt = self.load_prompt_with_variables(create_domain_grimoire, variables) # 領域術式(要件定義書)からプロンプトを読み込み、変数を埋め込む
# print(prompt)
print(prompt)
code = self.generate_code_with_claude(prompt) # Claudeを使用してコードを生成
# print(code)

Expand Down Expand Up @@ -174,8 +175,16 @@ def generate_code_with_claude(self, prompt):
"""
Claudeを使用してコードを生成するメソッド
"""
# print("geminiを使用してコードを生成します")
# code = gemini.generate_response(
# "gemini-1.5-pro"
# , prompt, 8192, 1
# )
code = claude.generate_response(
"claude-3-haiku-20240307", prompt, 4000, 0.3
# "claude-3-haiku-20240307"
# "claude-3-opus-20240229"
"claude-3-5-sonnet-20240620"
, prompt, 4000, 0.3
)
code = code.replace("```python", "").replace("```", "")
return code
Expand Down
6 changes: 3 additions & 3 deletions zoltraak/grimoires/architect/architect_claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ from zoltraak.utils.process_text import `normal`
以下参考、ただしメインファイルはプログラムを詳細に記載する
```
files = [
('dirname', 'filename', '〜〜のプログラムを記載して下さい。という末尾で終了すること'),
('dirname', 'filename', 'fileのの拡張子の形式で、〜〜のプログラムを記載して下さい。という末尾で終了すること'),
]
```
全てのpromptに`要件定義ファイル`を読み込みモードで取得した内容を入れて、ファイル名と必要なプロンプトを記載
Expand All @@ -29,8 +29,8 @@ from zoltraak.utils.process_text import `normal`
filesリストの要素を順にループ。各要素は (ディレクトリ名, ファイル名, プロンプト) のタプル
モジュール記載忘れないように
全てのファイルは`generate_response(model, prompt, max_tokens, temperature)`をもちいてfor文で然るべき内容を記載
- モデル名を指定: "claude-3-haiku-20240307"
<!-- - モデル名を指定: "claude-3-opus-20240229" -->
<!-- - モデル名を指定: "claude-3-haiku-20240307" -->
- モデル名を指定: "claude-3-5-sonnet-20240620"
- プロンプト: readme_content + 改行 + "上記の内容をもとにして" + prompt
- 最大トークン数を指定: 1000
- 温度パラメータを指定: 0.7
Expand Down
4 changes: 4 additions & 0 deletions zoltraak/grimoires/compiler/dev_obj.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@
## 3. クラス図
システムを構成するクラスとそれらの関係を図示してください。各クラスには、以下の情報を含めてください:
クラス図は、関係性も含めてASCII文字で描いてください。
日本語で記述
- **クラス名**
- **属性(フィールド)**
- **操作(メソッド)**
- **関連するクラスとの関係**(継承、コンポジション、集約など)

## 4. クラスの詳細
各クラスについて、以下の情報を提供してください:
日本語で記述
- **クラス名**
- **説明**
- **属性(フィールド)の詳細**(名前、型、アクセス修飾子)
Expand All @@ -30,9 +32,11 @@

## 4. ユースケース
システムの主要なユースケースを列挙し、各ユースケースに関連するクラスとメソッドを指定してください。
日本語で記述
## 5. シーケンス図
システムの主要な機能について、オブジェクト間の相互作用をシーケンス図で表現してください。各シーケンス図には、以下の情報を含めてください:
ユースケースごとに図をASCII文字で描いてください。
日本語で記述
- **関連するオブジェクト**
- **オブジェクト間のメッセージ(メソッド呼び出し)**
- **メッセージの順序**
Expand Down
34 changes: 30 additions & 4 deletions zoltraak/grimoires/compiler/dev_pypi.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,16 @@
Pythonパッケージの標準的なディレクトリ構成と、各ディレクトリ・ファイルの役割について説明してください。
マークダウン形式

多言語翻訳のi18nice[YAML]についてもディレクトリ構成に含めること
CICDはカスタマージャーニーを詳細に記載

```
project/
├── .github/workflows/
│ ├── ci.yml # GitHub ActionsによるCIワークフローの設定ファイル
CICDはカスタマージャーニーを詳細に記載
│ └── cd.yml # GitHub ActionsによるCDワークフローの設定ファイル
CICDはカスタマージャーニーを詳細に記載
├── package/
├── tests/
├── docs/
Expand All @@ -24,14 +32,22 @@ project/
├── requirements.txt # パッケージが依存する外部ライブラリを記載するファイル
├── Dockerfile # Dockerイメージのビルド手順を記述するファイル
├── docker-compose.yml # 複数のDockerコンテナを定義・実行するための設定ファイル
├── .github/workflows/
│ ├── ci.yml # GitHub ActionsによるCIワークフローの設定ファイル
│ └── cd.yml # GitHub ActionsによるCDワークフローの設定ファイル
└── app.py # Streamlit/Gradioを使用したWebアプリケーションのエントリーポイント
├── .gitignore # Gitで追跡しないファイルやディレクトリを指定するファイル
└── app.py # Streamlit/Gradioを使用したWebアプリケーションのエントリーポイント
└── pypi_update.sh # PyPIへのパッケージアップロードを自動化するスクリプト
```

```pypi_update.sh # PyPIへのパッケージアップロードを自動化するスクリプト
pip install wheel
python setup.py sdist bdist_wheel
twine upload dist/grimo-1.3.46*
git add . && git commit -m "Release v1.3.46" && git push && git tag v1.3.46 && git push --tags

```

## 3. setup.pyの書き方
setup.pyファイルの役割と、記述すべき主要な項目について以下を参考に具体的に説明してください。
pypiにおけるsetup.pyファイルの役割と、記述すべき主要な項目について以下を参考に具体的に説明してください。
以下はあくまで一般的な例です。
- `name`: パッケージ名
- `version`: パッケージのバージョン
Expand All @@ -43,6 +59,16 @@ setup.pyファイルの役割と、記述すべき主要な項目について以
- `packages`: パッケージに含めるPythonモジュールを指定
- `install_requires`: パッケージが依存する外部ライブラリを指定

また、pypiへのアップロード方法も記載
pip install wheel
pip install --upgrade setuptools wheel


python setup.py sdist bdist_wheel
twine upload dist/package_name



## 4. __init__.pyの役割
記述すべき主要な項目について以下を参考に具体的に説明してください。
- パッケージの初期化処理を行う
Expand Down
54 changes: 54 additions & 0 deletions zoltraak/llms/gemini.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
"""
Google AI Python SDKをインストールする
$ pip install google-generativeai
詳細は以下のガイドを参照してください:
https://ai.google.dev/gemini-api/docs/get-started/python
"""

import os
import google.generativeai as genai

genai.configure(api_key=os.environ["GEMINI_API_KEY"])

def generate_response(model_name="gemini-1.5-pro", prompt="helloworld", max_tokens=8192, temperature=1):
"""
Google Generative AIを使用してプロンプトに対する応答を生成する関数。
Args:
model_name (str): 使用するモデルの名前。
prompt (str): 応答を生成するためのプロンプト。
max_tokens (int): 応答の最大トークン数。
temperature (float): 応答の多様性を制御する温度パラメータ。
Returns:
str: 生成された応答テキスト。
"""
# モデルの設定
generation_config = {
"temperature": temperature,
"top_p": 0.95,
"top_k": 64,
"max_output_tokens": max_tokens,
"response_mime_type": "text/plain",
}

model = genai.GenerativeModel(
model_name=model_name,
generation_config=generation_config,
# safety_settings = Adjust safety settings
# See https://ai.google.dev/gemini-api/docs/safety-settings
)

chat_session = model.start_chat(
history=[]
)

response = chat_session.send_message(prompt)

return response.text

# 使用例
response_text = generate_response("gemini-1.5-pro", "prompt", 8192, 1)
print(response_text)

0 comments on commit ccd78cb

Please sign in to comment.